2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# ***** BEGIN LICENSE BLOCK *****
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# This file is part of InDefero, an open source project management application.
 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-02 21:37:07 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Copyright (C) 2008-2011 Céondo Ltd and contributors.
 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								#
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# InDefero 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.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# InDefero is distributed in the hope that it will be useful,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-09 09:22:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								n # GNU General Public License for more details.
 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								#
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# You should have received a copy of the GNU General Public License
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# along with this program; if not, write to the Free Software
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# ***** END LICENSE BLOCK ***** */
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Pluf :: loadFunction ( 'Pluf_HTTP_URL_urlForView' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-15 11:31:43 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Pluf :: loadFunction ( 'Pluf_Template_dateAgo' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  Base  definition  of  a  commit . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  By  having  a  reference  in  the  database  for  each  commit ,  one  can 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  easily  generate  a  timeline  or  use  the  search  engine .  Commit  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  are  normally  always  taken  from  the  underlining  SCM . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  IDF_Commit  extends  Pluf_Model 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    public  $_model  =  __CLASS__ ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-24 14:20:33 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    public  $extra  =  null ;  /**< Extra data as IDF_Gconf object */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    function  init () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $this -> _a [ 'table' ]  =  'idf_commits' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $this -> _a [ 'model' ]  =  __CLASS__ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $this -> _a [ 'cols' ]  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             // It is mandatory to have an "id" column.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            'id'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Sequence' , 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  true , 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                            'project'  => 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Foreignkey' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'model'  =>  'IDF_Project' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'verbose'  =>  __ ( 'project' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'relate_name'  =>  'commits' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                            'author'  => 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Foreignkey' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'model'  =>  'Pluf_User' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'is_null'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'verbose'  =>  __ ( 'submitter' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'relate_name'  =>  'submitted_commit' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'help_text'  =>  'This will allow us to list the latest commits of a user in its profile.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            'origauthor'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Varchar' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'size'  =>  150 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'help_text'  =>  'As we do not necessary have the mapping between the author in the database and the scm, we store the scm author commit information here. That way we can update the author info later in the process.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            'scm_id'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Varchar' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'size'  =>  50 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'index'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'help_text'  =>  'The id of the commit. For git, it will be the SHA1 hash, for subversion it will be the revision id.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            'summary'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Varchar' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'size'  =>  250 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'verbose'  =>  __ ( 'summary' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            'fullmessage'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-15 12:16:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Text' , 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'verbose'  =>  __ ( 'changelog' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'help_text'  =>  'This is the full message of the commit.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            'creation_dtime'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'type'  =>  'Pluf_DB_Field_Datetime' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'blank'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'verbose'  =>  __ ( 'creation date' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'index'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  'help_text'  =>  'Date of creation by the scm' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    function  __toString () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  $this -> summary . ' - (' . $this -> scm_id . ')' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    function  _toIndex () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $str  =  str_repeat ( $this -> summary . ' ' ,  4 ) . ' ' . $this -> fullmessage ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  Pluf_Text :: cleanString ( html_entity_decode ( $str ,  ENT_QUOTES ,  'UTF-8' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    function  postSave ( $create = false ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        IDF_Search :: index ( $this ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $create )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            IDF_Timeline :: insert ( $this ,  $this -> get_project (), 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                                 $this -> get_author (),  $this -> creation_dtime ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 12:00:15 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    function  preDelete () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        IDF_Timeline :: remove ( $this ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        IDF_Search :: remove ( $this ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-23 17:12:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        IDF_Gconf :: dropForModel ( $this ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 12:00:15 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  Create  a  commit  from  a  simple  class  commit  info  of  a  changelog . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ param  stdClass  Commit  info 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ param  IDF_Project  Current  project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ return  IDF_Commit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    public  static  function  getOrAdd ( $change ,  $project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $sql  =  new  Pluf_SQL ( 'project=%s AND scm_id=%s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            array ( $project -> id ,  $change -> commit )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $r  =  Pluf :: factory ( 'IDF_Commit' ) -> getList ( array ( 'filter' => $sql -> gen ())); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-05 11:34:02 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  ( $r -> count ()  >  0 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-24 14:20:33 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            $r [ 0 ] -> extra  =  new  IDF_Gconf (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $r [ 0 ] -> extra -> serialize  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $r [ 0 ] -> extra -> setModel ( $r [ 0 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $r [ 0 ] -> extra -> initCache (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								            return  $r [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-09 18:03:40 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  ( ! isset ( $change -> full_message ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $change -> full_message  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-05 11:34:02 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $scm  =  IDF_Scm :: get ( $project ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        $commit  =  new  IDF_Commit (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> project  =  $project ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> scm_id  =  $change -> commit ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $commit -> summary  =  self :: toUTF8 ( $change -> title ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> fullmessage  =  self :: toUTF8 ( $change -> full_message ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-05 11:34:02 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $commit -> author  =  $scm -> findAuthor ( $change -> author ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-24 11:53:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $commit -> origauthor  =  self :: toUTF8 ( $change -> author ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> creation_dtime  =  $change -> date ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> create (); 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-24 14:20:33 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $extra  =  $scm -> getExtraProperties ( $change ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> extra  =  new  IDF_Gconf (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> extra -> serialize  =  true ;  // As we can store arrays
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $commit -> extra -> setModel ( $commit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        foreach  ( $extra  as  $key  =>  $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $commit -> extra -> setVal ( $key ,  $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-08 11:23:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $commit -> notify ( $project -> getConf ()); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        return  $commit ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  Convert  encoding  to  UTF8 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  If  an  array  is  given ,  the  encoding  is  detected  only  on  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  first  value  and  then  used  to  convert  all  the  strings . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ param  mixed  String  or  array  of  string  to  be  converted 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *  @ param  bool  Returns  the  encoding  together  with  the  converted  text  ( false ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ return  mixed  String  or  array  of  string  or  array  of  res  +  encoding 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    public  static  function  toUTF8 ( $text ,  $get_encoding = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $enc  =  'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS' ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $ref  =  $text ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( is_array ( $text ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $ref  =  $text [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( Pluf_Text_UTF8 :: check ( $ref ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  ( ! $get_encoding )  ?  $text  :  array ( $text ,  'UTF-8' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-03 10:23:49 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $encoding  =  mb_detect_encoding ( $ref ,  $enc ,  true ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  ( $encoding  ==  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $encoding  =  Pluf_Text_UTF8 :: detect_cyr_charset ( $ref ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( is_array ( $text ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            foreach  ( $text  as  $t )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                $res []  =  mb_convert_encoding ( $t ,  'UTF-8' ,  $encoding ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  ( ! $get_encoding )  ?  $res  :  array ( $res ,  $encoding ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 19:57:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            $res  =  mb_convert_encoding ( $text ,  'UTF-8' ,  $encoding ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  ( ! $get_encoding )  ?  $res  :  array ( $res ,  $encoding ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 14:18:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  Returns  the  timeline  fragment  for  the  commit . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *  @ param  Pluf_HTTP_Request 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								     *  @ return  Pluf_Template_SafeString 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    public  function  timelineFragment ( $request ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $url  =  Pluf_HTTP_URL_urlForView ( 'IDF_Views_Source::commit' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                        array ( $request -> project -> shortname , 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                                              $this -> scm_id )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-15 11:31:43 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $out  =  '<tr class="log"><td><a href="' . $url . '">' . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            Pluf_esc ( Pluf_Template_dateAgo ( $this -> creation_dtime ,  'without' )) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            '</a></td><td>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-05 12:28:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $stag  =  new  IDF_Template_ShowUser (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $user  =  $stag -> start ( $this -> get_author (),  $request ,  $this -> origauthor ,  false ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-15 11:31:43 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $tag  =  new  IDF_Template_IssueComment (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $out  .=  $tag -> start ( $this -> summary ,  $request ,  false ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( 0  &&  $this -> fullmessage )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $out  .=  '<br /><br />' . $tag -> start ( $this -> fullmessage ,  $request ,  false ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $out  .=  ' </ td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								</ tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = " extra " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< td  colspan = " 2 " > 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = " helptext right " > '.sprintf(__(' Commit & nbsp ; % s ,  by  % s '), ' < a  href = " '. $url .' "  class = " mono " > '.$this->scm_id.' </ a > ', $user).' </ div ></ td ></ tr > ' ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 15:41:51 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        return  Pluf_Template :: markSafe ( $out ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-03 15:00:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  Returns  the  feed  fragment  for  the  commit . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *  @ param  Pluf_HTTP_Request 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-03 15:00:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *  @ return  Pluf_Template_SafeString 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    public  function  feedFragment ( $request ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $url  =  Pluf :: f ( 'url_base' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            . Pluf_HTTP_URL_urlForView ( 'IDF_Views_Source::commit' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                      array ( $request -> project -> shortname , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-03 15:00:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                            $this -> scm_id )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $date  =  Pluf_Date :: gmDateToGmString ( $this -> creation_dtime ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $author  =  ( $this -> get_author ())  ? 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-09 09:22:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            $this -> get_author ()  :  $this -> origauthor ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $cproject  =  $this -> get_project (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $context  =  new  Pluf_Template_Context_Request ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                       $request , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                       array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'c'  =>  $this , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'cproject'  =>  $cproject , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'url'  =>  $url , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'date'  =>  $date , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'author'  =>  $author , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                             ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $tmpl  =  new  Pluf_Template ( 'idf/source/feedfragment.xml' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  $tmpl -> render ( $context ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-03 15:00:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-08 11:23:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  Notification  of  change  of  the  object . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ param  IDF_Conf  Current  configuration 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  @ param  bool  Creation  ( true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    public  function  notify ( $conf ,  $create = true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-10 10:11:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        // Now we add to the queue, soon we will push everything in
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // the queue, including email notifications and indexing.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // Even if the url is empty, we add to the queue as some
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // plugins may want to do something with this information in
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // an asynchronous way.
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 09:23:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $project  =  $this -> get_project (); 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-18 14:31:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $scm  =  $project -> getConf () -> getVal ( 'scm' ,  'git' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-10 10:11:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $url  =  str_replace ( array ( '%p' ,  '%r' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                           array ( $project -> shortname ,  $this -> scm_id ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                           $conf -> getVal ( 'webhook_url' ,  '' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-26 01:36:04 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // trigger a POST instead of the standard PUT if we're asked for
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $method  =  'PUT' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( Pluf :: f ( 'webhook_processing' ,  '' )  ===  'compat' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $method  =  'POST' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-10 10:11:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $payload  =  array ( 'to_send'  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                            'project'  =>  $project -> shortname , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                            'rev'  =>  $this -> scm_id , 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-18 14:31:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                            'scm'  =>  $scm , 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-10 10:11:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                            'summary'  =>  $this -> summary , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                            'fullmessage'  =>  $this -> fullmessage , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                            'author'  =>  $this -> origauthor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                            'creation_date'  =>  $this -> creation_dtime , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                            ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                         'project_id'  =>  $project -> id , 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-25 02:03:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                         'authkey'  =>  $project -> getWebHookKey (), 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-10 10:11:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                         'url'  =>  $url , 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-26 01:36:04 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                         'method'  =>  $method , 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-10 10:11:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                         ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $item  =  new  IDF_Queue (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $item -> type  =  'new_commit' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $item -> payload  =  $payload ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $item -> create (); 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-18 15:10:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( ''  ==  $conf -> getVal ( 'source_notification_email' ,  '' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $current_locale  =  Pluf_Translation :: getLocale (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $langs  =  Pluf :: f ( 'languages' ,  array ( 'en' )); 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        Pluf_Translation :: loadSetLocale ( $langs [ 0 ]); 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-18 15:10:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $context  =  new  Pluf_Template_Context ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                       array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'c'  =>  $this , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'project'  =>  $this -> get_project (), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             'url_base'  =>  Pluf :: f ( 'url_base' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                             ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $tmpl  =  new  Pluf_Template ( 'idf/source/commit-created-email.txt' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $text_email  =  $tmpl -> render ( $context ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-06 00:11:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $addresses  =  explode ( ',' ,  $conf -> getVal ( 'source_notification_email' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        foreach  ( $addresses  as  $address )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $email  =  new  Pluf_Mail ( Pluf :: f ( 'from_email' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                   $address , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                   sprintf ( __ ( 'New Commit %s - %s (%s)' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                           $this -> scm_id ,  $this -> summary , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                           $this -> get_project () -> shortname )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $email -> addTextMessage ( $text_email ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $email -> sendMail (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-18 15:10:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        Pluf_Translation :: loadSetLocale ( $current_locale ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-08 11:23:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-15 11:31:43 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}