Completed
Push — master ( 95506d...0f93c5 )
by Jonathan
07:55
created
src/Webtrees/Constants.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -14,17 +14,17 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class Constants {
16 16
     
17
-    const LIB_NAMESPACE = __NAMESPACE__;
17
+	const LIB_NAMESPACE = __NAMESPACE__;
18 18
 	
19
-    /** Internal name of the Certificates Module
20
-     * @var string
21
-     */
22
-    const MODULE_MAJ_CERTIF_NAME = 'myartjaub_certificates';
19
+	/** Internal name of the Certificates Module
20
+	 * @var string
21
+	 */
22
+	const MODULE_MAJ_CERTIF_NAME = 'myartjaub_certificates';
23 23
     
24
-    /** Internal name of the GeoDispersion Module
25
-     * @var string
26
-     */
27
-    const MODULE_MAJ_GEODISP_NAME = 'myartjaub_geodispersion';
24
+	/** Internal name of the GeoDispersion Module
25
+	 * @var string
26
+	 */
27
+	const MODULE_MAJ_GEODISP_NAME = 'myartjaub_geodispersion';
28 28
     
29 29
 	/** Internal name of the Hooks Module
30 30
 	 * @var string
@@ -61,7 +61,7 @@  discard block
 block discarded – undo
61 61
 	 * @return string $WT_RAPHAEL_JS_URL
62 62
 	 */
63 63
 	public static function WT_RAPHAEL_JS_URL() {
64
-	    return WT_STATIC_URL . 'packages/raphael-2.1.4/raphael-min.js';
64
+		return WT_STATIC_URL . 'packages/raphael-2.1.4/raphael-min.js';
65 65
 	}
66 66
 		
67 67
 }
68 68
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/ModuleMenuItemInterface.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -15,11 +15,11 @@
 block discarded – undo
15 15
  */
16 16
 interface ModuleMenuItemInterface
17 17
 {
18
-    /**
19
-     * Returns a menu item for the module.
20
-     * 
21
-     * @param \Fisharebest\Webtrees\Tree|null $tree
22
-     * @param mixed $reference
23
-     */
24
-    public function getMenu(\Fisharebest\Webtrees\Tree $tree, $reference);
18
+	/**
19
+	 * Returns a menu item for the module.
20
+	 * 
21
+	 * @param \Fisharebest\Webtrees\Tree|null $tree
22
+	 * @param mixed $reference
23
+	 */
24
+	public function getMenu(\Fisharebest\Webtrees\Tree $tree, $reference);
25 25
 }
26 26
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/TaskController.php 1 patch
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -35,25 +35,25 @@  discard block
 block discarded – undo
35 35
  */
36 36
 class TaskController extends MvcController
37 37
 {    
38
-    /**
39
-     * Tasks Provider
40
-     * @var TaskProviderInterface $provider
41
-     */
42
-    protected $provider;    
38
+	/**
39
+	 * Tasks Provider
40
+	 * @var TaskProviderInterface $provider
41
+	 */
42
+	protected $provider;    
43 43
     
44
-    /**
45
-     * Constructor for Admin Config controller
46
-     * @param AbstractModule $module
47
-     */
48
-    public function __construct(AbstractModule $module) {
49
-        parent::__construct($module);
44
+	/**
45
+	 * Constructor for Admin Config controller
46
+	 * @param AbstractModule $module
47
+	 */
48
+	public function __construct(AbstractModule $module) {
49
+		parent::__construct($module);
50 50
         
51
-        $this->provider = $this->module->getProvider();
52
-    }    
51
+		$this->provider = $this->module->getProvider();
52
+	}    
53 53
     
54
-    /**
55
-     * Pages
56
-     */        
54
+	/**
55
+	 * Pages
56
+	 */        
57 57
 	
58 58
 	/**
59 59
 	 * Task@trigger
@@ -77,35 +77,35 @@  discard block
 block discarded – undo
77 77
 	/**
78 78
 	 * Task@setStatus
79 79
 	 */
80
-    public function setStatus() {          
81
-        $controller = new JsonController();
80
+	public function setStatus() {          
81
+		$controller = new JsonController();
82 82
         
83
-        $task_name = Filter::get('task');
84
-        $task = $this->provider->getTask($task_name, false);
83
+		$task_name = Filter::get('task');
84
+		$task = $this->provider->getTask($task_name, false);
85 85
         
86
-        $controller->restrictAccess(
87
-            true // Filter::checkCsrf()   -- Cannot use CSRF on a GET request (modules can only work with GET requests)
88
-            &&  Auth::isAdmin() 
89
-            && $task
90
-        );
86
+		$controller->restrictAccess(
87
+			true // Filter::checkCsrf()   -- Cannot use CSRF on a GET request (modules can only work with GET requests)
88
+			&&  Auth::isAdmin() 
89
+			&& $task
90
+		);
91 91
         
92
-        $status = Filter::getBool('status');
93
-        $res = array('task' => $task->getName() , 'error' => null);
94
-        try{
95
-            $this->provider->setTaskStatus($task, $status);
96
-            $res['status'] = $status;
92
+		$status = Filter::getBool('status');
93
+		$res = array('task' => $task->getName() , 'error' => null);
94
+		try{
95
+			$this->provider->setTaskStatus($task, $status);
96
+			$res['status'] = $status;
97 97
 			Log::addConfigurationLog('Module '.$this->module->getName().' : Admin Task "'.$task->getName().'" has been '. ($status ? 'enabled' : 'disabled') .'.');
98
-        }
99
-        catch (\Exception $ex) {
100
-            $res['error'] = $ex->getMessage();
98
+		}
99
+		catch (\Exception $ex) {
100
+			$res['error'] = $ex->getMessage();
101 101
 			Log::addErrorLog('Module '.$this->module->getName().' : Admin Task "'.$task->getName().'" could not be ' . ($status ? 'enabled' : 'disabled') .'. Error: '. $ex->getMessage());
102
-        }
102
+		}
103 103
         
104
-        $controller->pageHeader();
105
-        if($res['error']) http_response_code(500);
104
+		$controller->pageHeader();
105
+		if($res['error']) http_response_code(500);
106 106
         
107
-        echo \Zend_Json::encode($res);
108
-    }
107
+		echo \Zend_Json::encode($res);
108
+	}
109 109
 	
110 110
 	/**
111 111
 	 * Task@edit
@@ -113,15 +113,15 @@  discard block
 block discarded – undo
113 113
 	public function edit() {
114 114
 		global $WT_TREE;
115 115
         		
116
-        $task_name = Filter::get('task');
117
-        $task = $this->provider->getTask($task_name, false);
116
+		$task_name = Filter::get('task');
117
+		$task = $this->provider->getTask($task_name, false);
118 118
 		
119
-        Theme::theme(new AdministrationTheme)->init($WT_TREE);
120
-        $controller = new PageController();        
121
-        $controller
122
-            ->restrictAccess(Auth::isAdmin() && $task)
119
+		Theme::theme(new AdministrationTheme)->init($WT_TREE);
120
+		$controller = new PageController();        
121
+		$controller
122
+			->restrictAccess(Auth::isAdmin() && $task)
123 123
 			->setPageTitle(I18N::translate('Edit the administrative task'))
124
-            ->addInlineJavascript('
124
+			->addInlineJavascript('
125 125
                 function toggleRemainingOccurrences() {
126 126
                     if($("input:radio[name=\'is_limited\']:checked").val() == 1) {
127 127
                         $("#nb_occurences").show();
@@ -134,39 +134,39 @@  discard block
 block discarded – undo
134 134
                 $("[name=\'is_limited\']").on("change", toggleRemainingOccurrences);
135 135
                 toggleRemainingOccurrences();
136 136
             ')
137
-        ;
137
+		;
138 138
         
139 139
         
140
-        $data = new ViewBag();        
141
-        $data->set('title', $controller->getPageTitle());
140
+		$data = new ViewBag();        
141
+		$data->set('title', $controller->getPageTitle());
142 142
 		$data->set('admin_config_url', 'module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig&ged=' . $WT_TREE->getNameUrl());
143
-        $data->set('module_title', $this->module->getTitle());
143
+		$data->set('module_title', $this->module->getTitle());
144 144
 		$data->set('save_url', 'module.php?mod=' . $this->module->getName() . '&mod_action=Task@save&ged=' . $WT_TREE->getNameUrl());
145 145
 		$data->set('task', $task);
146 146
 		    
147
-        ViewFactory::make('TaskEdit', $this, $controller, $data)->render();	
147
+		ViewFactory::make('TaskEdit', $this, $controller, $data)->render();	
148 148
 	}	
149 149
 	
150 150
 	/**
151 151
 	 * Task@save
152 152
 	 */
153 153
 	public function save() {		
154
-        $tmp_contrl = new PageController();
154
+		$tmp_contrl = new PageController();
155 155
 				
156
-        $tmp_contrl->restrictAccess(
157
-            Auth::isAdmin() 
158
-            && Filter::checkCsrf()
159
-         );
156
+		$tmp_contrl->restrictAccess(
157
+			Auth::isAdmin() 
158
+			&& Filter::checkCsrf()
159
+		 );
160 160
         
161 161
 		$task_name      = Filter::post('task');
162
-        $frequency    	= Filter::postInteger('frequency');
163
-        $is_limited  	= Filter::postInteger('is_limited', 0, 1);
164
-        $nb_occur       = Filter::postInteger('nb_occur');
162
+		$frequency    	= Filter::postInteger('frequency');
163
+		$is_limited  	= Filter::postInteger('is_limited', 0, 1);
164
+		$nb_occur       = Filter::postInteger('nb_occur');
165 165
 				
166 166
 		$task = $this->provider->getTask($task_name, false);
167 167
         
168
-        $success = false; 
169
-        if($task) {
168
+		$success = false; 
169
+		if($task) {
170 170
 			$task->setFrequency($frequency);
171 171
 			if($is_limited == 1) {
172 172
 				$task->setRemainingOccurrences($nb_occur);
@@ -198,13 +198,13 @@  discard block
 block discarded – undo
198 198
 				Log::addConfigurationLog('Module '.$this->module->getName().' : AdminTask “'. $task->getName() .'” could not be updated. See error log.');
199 199
 			}
200 200
 			
201
-        }
201
+		}
202 202
         
203
-        $redirection_url = 'module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig';
204
-        if(!$success) {
203
+		$redirection_url = 'module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig';
204
+		if(!$success) {
205 205
 			$redirection_url = 'module.php?mod=' . $this->module->getName() . '&mod_action=Task@edit&task='. $task->getName();
206
-        }        
207
-        header('Location: ' . WT_BASE_URL . $redirection_url);
206
+		}        
207
+		header('Location: ' . WT_BASE_URL . $redirection_url);
208 208
 	}
209 209
      
210 210
 }
211 211
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/Model/AbstractTask.php 1 patch
Indentation   +195 added lines, -195 removed lines patch added patch discarded remove patch
@@ -21,254 +21,254 @@
 block discarded – undo
21 21
  */
22 22
 abstract class AbstractTask {
23 23
     
24
-    /**
25
-     * Time out for runnign tasks, in seconds. Default 5 min
26
-     * @var int TASK_TIME_OUT
27
-     */
28
-    const TASK_TIME_OUT = 300;
24
+	/**
25
+	 * Time out for runnign tasks, in seconds. Default 5 min
26
+	 * @var int TASK_TIME_OUT
27
+	 */
28
+	const TASK_TIME_OUT = 300;
29 29
               
30
-    /**
31
-     * Task provider
32
-     * @var TaskProviderInterface $provider
33
-     */
30
+	/**
31
+	 * Task provider
32
+	 * @var TaskProviderInterface $provider
33
+	 */
34 34
 	protected $provider;
35 35
 			
36 36
 	/**
37 37
 	 * Task name
38 38
 	 * @var string $name
39 39
 	 */
40
-    protected $name;
40
+	protected $name;
41 41
     
42
-    /**
43
-     * Status of the task
44
-     * @var bool $is_enabled
45
-     */
46
-    protected $is_enabled;
42
+	/**
43
+	 * Status of the task
44
+	 * @var bool $is_enabled
45
+	 */
46
+	protected $is_enabled;
47 47
     
48
-    /**
49
-     * Last updated date
50
-     * @var \DateTime $last_updated
51
-     */
52
-    protected $last_updated;
48
+	/**
49
+	 * Last updated date
50
+	 * @var \DateTime $last_updated
51
+	 */
52
+	protected $last_updated;
53 53
     
54
-    /**
55
-     * Last run result
56
-     * @var bool $last_result
57
-     */
58
-    protected $last_result;
54
+	/**
55
+	 * Last run result
56
+	 * @var bool $last_result
57
+	 */
58
+	protected $last_result;
59 59
     
60
-    /**
61
-     * Task run frequency
62
-     * @var int $frequency
63
-     */
64
-    protected $frequency;
60
+	/**
61
+	 * Task run frequency
62
+	 * @var int $frequency
63
+	 */
64
+	protected $frequency;
65 65
     
66
-    /**
67
-     * Task remaining runs
68
-     * @var int $nb_occurrences
69
-     */
70
-    protected $nb_occurrences;
66
+	/**
67
+	 * Task remaining runs
68
+	 * @var int $nb_occurrences
69
+	 */
70
+	protected $nb_occurrences;
71 71
     
72
-    /**
73
-     * Current running status of the task
74
-     * @var bool $is_running
75
-     */
76
-    protected $is_running;
72
+	/**
73
+	 * Current running status of the task
74
+	 * @var bool $is_running
75
+	 */
76
+	protected $is_running;
77 77
     
78
-    /**
79
-     * Constructor for the Admin task class
78
+	/**
79
+	 * Constructor for the Admin task class
80 80
 	 *
81 81
 	 * @param string $file Filename containing the task object
82 82
 	 * @param TaskProviderInterface $provider Provider for tasks
83
-     */
84
-    public function __construct($file, TaskProviderInterface $provider = null){
85
-        $this->name = trim(basename($file, '.php'));
83
+	 */
84
+	public function __construct($file, TaskProviderInterface $provider = null){
85
+		$this->name = trim(basename($file, '.php'));
86 86
 		$this->provider = $provider;
87
-    }
87
+	}
88 88
     
89
-    /**
90
-     * Get the provider.
91
-     *
92
-     * @return TaskProviderInterface 
93
-     */
94
-    public function getProvider(){
95
-        return $this->provider;
96
-    }
89
+	/**
90
+	 * Get the provider.
91
+	 *
92
+	 * @return TaskProviderInterface 
93
+	 */
94
+	public function getProvider(){
95
+		return $this->provider;
96
+	}
97 97
     
98
-    /**
99
-     * Set the provider.
100
-     *
101
-     * @param TaskProviderInterface $provider
102
-     * @return self Enable method-chaining
103
-     */
104
-    public function setProvider(TaskProviderInterface $provider){
105
-        $this->provider = $provider;
106
-        return $this;
107
-    }
98
+	/**
99
+	 * Set the provider.
100
+	 *
101
+	 * @param TaskProviderInterface $provider
102
+	 * @return self Enable method-chaining
103
+	 */
104
+	public function setProvider(TaskProviderInterface $provider){
105
+		$this->provider = $provider;
106
+		return $this;
107
+	}
108 108
     
109
-    /**
110
-     * Set parameters of the Task
111
-     *
112
-     * @param bool $is_enabled Status of the task
113
-     * @param \DateTime $lastupdated Time of the last task run
114
-     * @param bool $last_result Result of the last run, true for success, false for failure
115
-     * @param int $frequency Frequency of execution in minutes
116
-     * @param int $nb_occur Number of remaining occurrences, 0 for tasks not limited
117
-     * @param bool $is_running Indicates if the task is currently running
118
-     */
119
-    public function setParameters($is_enabled, \DateTime $last_updated, $last_result, $frequency, $nb_occur, $is_running){
120
-        $this->is_enabled = $is_enabled;
121
-        $this->last_updated = $last_updated;
122
-        $this->last_result = $last_result;
123
-        $this->frequency = $frequency;
124
-        $this->nb_occurrences = $nb_occur;
125
-        $this->is_running = $is_running;
126
-    }
109
+	/**
110
+	 * Set parameters of the Task
111
+	 *
112
+	 * @param bool $is_enabled Status of the task
113
+	 * @param \DateTime $lastupdated Time of the last task run
114
+	 * @param bool $last_result Result of the last run, true for success, false for failure
115
+	 * @param int $frequency Frequency of execution in minutes
116
+	 * @param int $nb_occur Number of remaining occurrences, 0 for tasks not limited
117
+	 * @param bool $is_running Indicates if the task is currently running
118
+	 */
119
+	public function setParameters($is_enabled, \DateTime $last_updated, $last_result, $frequency, $nb_occur, $is_running){
120
+		$this->is_enabled = $is_enabled;
121
+		$this->last_updated = $last_updated;
122
+		$this->last_result = $last_result;
123
+		$this->frequency = $frequency;
124
+		$this->nb_occurrences = $nb_occur;
125
+		$this->is_running = $is_running;
126
+	}
127 127
     
128
-    /**
129
-     * Get the name of the task
130
-     *
131
-     * @return string
132
-     */
133
-    public function getName(){
134
-        return $this->name;
135
-    }
128
+	/**
129
+	 * Get the name of the task
130
+	 *
131
+	 * @return string
132
+	 */
133
+	public function getName(){
134
+		return $this->name;
135
+	}
136 136
     
137 137
     
138
-    /**
139
-     * Return the status of the task in a boolean way
140
-     *
141
-     * @return boolean True if enabled
142
-     */
143
-    public function isEnabled(){
144
-        return $this->is_enabled;
145
-    }
138
+	/**
139
+	 * Return the status of the task in a boolean way
140
+	 *
141
+	 * @return boolean True if enabled
142
+	 */
143
+	public function isEnabled(){
144
+		return $this->is_enabled;
145
+	}
146 146
     
147
-    /**
148
-     * Get the last updated time.
149
-     *
150
-     * @return \DateTime
151
-     */
152
-    public function getLastUpdated(){
153
-        return $this->last_updated;
154
-    }
147
+	/**
148
+	 * Get the last updated time.
149
+	 *
150
+	 * @return \DateTime
151
+	 */
152
+	public function getLastUpdated(){
153
+		return $this->last_updated;
154
+	}
155 155
     
156
-    /**
157
-     * Check if the last result has been successful.
158
-     *
159
-     * @return bool
160
-     */
161
-    public function isLastRunSuccess(){
162
-        return $this->last_result;
163
-    }
156
+	/**
157
+	 * Check if the last result has been successful.
158
+	 *
159
+	 * @return bool
160
+	 */
161
+	public function isLastRunSuccess(){
162
+		return $this->last_result;
163
+	}
164 164
     
165
-    /**
166
-     * Get the task frequency.
167
-     *
168
-     * @return int
169
-     */
170
-    public function getFrequency(){
171
-        return $this->frequency;
172
-    }
165
+	/**
166
+	 * Get the task frequency.
167
+	 *
168
+	 * @return int
169
+	 */
170
+	public function getFrequency(){
171
+		return $this->frequency;
172
+	}
173 173
 	
174 174
 	/**
175
-     * Set the task frequency.
176
-     *
175
+	 * Set the task frequency.
176
+	 *
177 177
 	 * @param int $frequency
178
-     * @return self Enable method-chaining
179
-     */
180
-    public function setFrequency($frequency){
181
-        $this->frequency = $frequency;
178
+	 * @return self Enable method-chaining
179
+	 */
180
+	public function setFrequency($frequency){
181
+		$this->frequency = $frequency;
182 182
 		return $this;
183
-    }
183
+	}
184 184
     
185
-    /**
186
-     * Get the number of remaining occurrences.
187
-     *
188
-     * @return int
189
-     */
190
-    public function getRemainingOccurrences(){
191
-        return $this->nb_occurrences;
192
-    }
185
+	/**
186
+	 * Get the number of remaining occurrences.
187
+	 *
188
+	 * @return int
189
+	 */
190
+	public function getRemainingOccurrences(){
191
+		return $this->nb_occurrences;
192
+	}
193 193
 	
194 194
 	/**
195
-     * Set the number of remaining occurrences.
196
-     *
195
+	 * Set the number of remaining occurrences.
196
+	 *
197 197
 	 * @param int $nb_occur
198
-     * @return self Enable method-chaining
199
-     */
200
-    public function setRemainingOccurrences($nb_occur){
201
-        $this->nb_occurrences = $nb_occur;
198
+	 * @return self Enable method-chaining
199
+	 */
200
+	public function setRemainingOccurrences($nb_occur){
201
+		$this->nb_occurrences = $nb_occur;
202 202
 		return $this;
203
-    }
203
+	}
204 204
     
205
-    /**
206
-     * Check if the task if running.
207
-     *
208
-     * @return bool
209
-     */
210
-    public function isRunning(){
211
-        return $this->is_running;
212
-    }
205
+	/**
206
+	 * Check if the task if running.
207
+	 *
208
+	 * @return bool
209
+	 */
210
+	public function isRunning(){
211
+		return $this->is_running;
212
+	}
213 213
     
214 214
     
215
-    /**
216
-     * Return the name to display for the task
217
-     *
218
-     * @return string Title for the task
219
-     */
220
-    abstract public function getTitle();
215
+	/**
216
+	 * Return the name to display for the task
217
+	 *
218
+	 * @return string Title for the task
219
+	 */
220
+	abstract public function getTitle();
221 221
     
222
-    /**
223
-     * Return the default frequency for the execution of the task
224
-     *
225
-     * @return int Frequency for the execution of the task
226
-     */
227
-    abstract public function getDefaultFrequency();
222
+	/**
223
+	 * Return the default frequency for the execution of the task
224
+	 *
225
+	 * @return int Frequency for the execution of the task
226
+	 */
227
+	abstract public function getDefaultFrequency();
228 228
     
229
-    /**
230
-     * Execute the task's actions
231
-     */
232
-    abstract protected function executeSteps();
229
+	/**
230
+	 * Execute the task's actions
231
+	 */
232
+	abstract protected function executeSteps();
233 233
     
234 234
 	/**
235 235
 	 * Persist task state into database.
236 236
 	 * @return bool
237 237
 	 */
238 238
 	public function save() {
239
-	    if(!$this->provider) throw new \Exception('The task has not been initialised with a provider.');
239
+		if(!$this->provider) throw new \Exception('The task has not been initialised with a provider.');
240 240
 		return $this->provider->updateTask($this);
241 241
 	}
242 242
 	
243
-    /**
244
-     * Execute the task, default skeleton
245
-     *
246
-     */
247
-    public function execute(){
243
+	/**
244
+	 * Execute the task, default skeleton
245
+	 *
246
+	 */
247
+	public function execute(){
248 248
     
249
-        if($this->last_updated->add(new \DateInterval('PT'.self::TASK_TIME_OUT.'S')) < new \DateTime())
250
-            $this->is_running = false;
249
+		if($this->last_updated->add(new \DateInterval('PT'.self::TASK_TIME_OUT.'S')) < new \DateTime())
250
+			$this->is_running = false;
251 251
     
252
-        if(!$this->is_running){  //TODO put in place a time_out for running...
253
-            //TODO Log the executions in the logs
254
-            $this->last_result = false;
255
-            $this->is_running = true;
256
-            $this->save();
252
+		if(!$this->is_running){  //TODO put in place a time_out for running...
253
+			//TODO Log the executions in the logs
254
+			$this->last_result = false;
255
+			$this->is_running = true;
256
+			$this->save();
257 257
     
258
-            Log::addDebugLog('Start execution of Admin task: '.$this->getTitle());
259
-            $this->last_result = $this->executeSteps();
260
-            if($this->last_result){
261
-                $this->last_updated = new \DateTime();
262
-                if($this->nb_occurrences > 0){
263
-                    $this->nb_occurrences--;
264
-                    if($this->nb_occurrences == 0) $this->is_enabled = false;
265
-                }
266
-            }
267
-            $this->is_running = false;
268
-            $this->save();
269
-            Log::addDebugLog('Execution completed for Admin task: '.$this->getTitle().' - '.($this->last_result ? 'Success' : 'Failure'));
270
-        }
271
-    }
258
+			Log::addDebugLog('Start execution of Admin task: '.$this->getTitle());
259
+			$this->last_result = $this->executeSteps();
260
+			if($this->last_result){
261
+				$this->last_updated = new \DateTime();
262
+				if($this->nb_occurrences > 0){
263
+					$this->nb_occurrences--;
264
+					if($this->nb_occurrences == 0) $this->is_enabled = false;
265
+				}
266
+			}
267
+			$this->is_running = false;
268
+			$this->save();
269
+			Log::addDebugLog('Execution completed for Admin task: '.$this->getTitle().' - '.($this->last_result ? 'Success' : 'Failure'));
270
+		}
271
+	}
272 272
     
273 273
     
274 274
 }
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/Model/ConfigurableTaskInterface.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -15,11 +15,11 @@
 block discarded – undo
15 15
  */
16 16
 interface ConfigurableTaskInterface {
17 17
     
18
-    /**
19
-     * Returns the HTML code to display the specific task configuration.
20
-     * 
21
-     * @return string HTML code
22
-     */
18
+	/**
19
+	 * Returns the HTML code to display the specific task configuration.
20
+	 * 
21
+	 * @return string HTML code
22
+	 */
23 23
 	function htmlConfigForm();
24 24
 	
25 25
 	/**
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/Model/TaskProviderInterface.php 1 patch
Indentation   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -37,47 +37,47 @@
 block discarded – undo
37 37
 	 */
38 38
 	public function setTaskStatus(AbstractTask $task, $status);
39 39
 		
40
-    /**
41
-     * Update an Admin Task in the database.
42
-     * 
43
-     * @param AbstractTask $task Task to update
44
-     * @return bool
45
-     */
46
-    function updateTask(AbstractTask $task);    
40
+	/**
41
+	 * Update an Admin Task in the database.
42
+	 * 
43
+	 * @param AbstractTask $task Task to update
44
+	 * @return bool
45
+	 */
46
+	function updateTask(AbstractTask $task);    
47 47
     
48
-    /**
49
-     * Delete the task from the database, in a transactional manner.
50
-     *
51
-     * @param string $task_name Task to delete
52
-     */
53
-    public function deleteTask($task_name);
48
+	/**
49
+	 * Delete the task from the database, in a transactional manner.
50
+	 *
51
+	 * @param string $task_name Task to delete
52
+	 */
53
+	public function deleteTask($task_name);
54 54
     
55 55
 
56
-    /**
57
-     * Returns the number of Admin Tasks (active and inactive).
58
-     *
59
-     * @return int
60
-     */
61
-    public function getTasksCount();
56
+	/**
57
+	 * Returns the number of Admin Tasks (active and inactive).
58
+	 *
59
+	 * @return int
60
+	 */
61
+	public function getTasksCount();
62 62
     
63
-    /**
64
-     * Return the list of Admin Tasks matching specified criterias.
65
-     *
66
-     * @param string $search Search criteria in analysis description
67
-     * @param array $order_by Columns to order by
68
-     * @param int $start Offset to start with (for pagination)
69
-     * @param int|null $limit Max number of items to return (for pagination)
70
-     * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\GeoAnalysis[]
71
-     */
72
-    function getFilteredTasksList($search = null, $order_by = null, $start = 0, $limit = null);
63
+	/**
64
+	 * Return the list of Admin Tasks matching specified criterias.
65
+	 *
66
+	 * @param string $search Search criteria in analysis description
67
+	 * @param array $order_by Columns to order by
68
+	 * @param int $start Offset to start with (for pagination)
69
+	 * @param int|null $limit Max number of items to return (for pagination)
70
+	 * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\GeoAnalysis[]
71
+	 */
72
+	function getFilteredTasksList($search = null, $order_by = null, $start = 0, $limit = null);
73 73
     
74
-    /**
75
-     * Returns the list of tasks that are currently meant to run.
76
-     * Tasks to run can be forced, or can be limited to only one.
77
-     * 
78
-     * @param string|null $force Force the enabled tasks to run.
79
-     * @param string|null $task_name Name of the specific task to run
80
-     */
74
+	/**
75
+	 * Returns the list of tasks that are currently meant to run.
76
+	 * Tasks to run can be forced, or can be limited to only one.
77
+	 * 
78
+	 * @param string|null $force Force the enabled tasks to run.
79
+	 * @param string|null $task_name Name of the specific task to run
80
+	 */
81 81
 	function getTasksToRun($force = false, $task_name = null);
82 82
 		
83 83
 	/**
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/Model/TaskProvider.php 1 patch
Indentation   +147 added lines, -147 removed lines patch added patch discarded remove patch
@@ -20,32 +20,32 @@  discard block
 block discarded – undo
20 20
  */
21 21
 class TaskProvider implements TaskProviderInterface {
22 22
     
23
-    /**
24
-     * Root path of thr folder containing the tasks
25
-     * @var string $root_path
26
-     */
27
-    protected $root_path;
23
+	/**
24
+	 * Root path of thr folder containing the tasks
25
+	 * @var string $root_path
26
+	 */
27
+	protected $root_path;
28 28
 	    
29
-    /**
30
-     * Constructor for the Task provider
31
-     * @param string $root_path
32
-     */
33
-    public function __construct($root_path) {
34
-        $this->root_path = $root_path;
29
+	/**
30
+	 * Constructor for the Task provider
31
+	 * @param string $root_path
32
+	 */
33
+	public function __construct($root_path) {
34
+		$this->root_path = $root_path;
35 35
 		$this->all_tasks = null;
36
-    }
36
+	}
37 37
 	
38
-    /**
39
-     * Load a task object from a file.
40
-     * 
41
-     * @param string $task_name Name of the task to load.
42
-     */
38
+	/**
39
+	 * Load a task object from a file.
40
+	 * 
41
+	 * @param string $task_name Name of the task to load.
42
+	 */
43 43
 	protected function loadTask($task_name) {
44 44
 		try {
45 45
 			if (file_exists($this->root_path . $task_name .'.php')) {
46 46
 				$task = include $this->root_path . $task_name .'.php';
47 47
 				if($task instanceof AbstractTask) {
48
-				    $task->setProvider($this);
48
+					$task->setProvider($this);
49 49
 					return $task;
50 50
 				}
51 51
 			}
@@ -55,22 +55,22 @@  discard block
 block discarded – undo
55 55
 		return null;
56 56
 	}
57 57
 	
58
-    /**
59
-     * Creates and returns a Task object from a data row.
60
-     * The row data is expected to be an array with the indexes:
61
-     *  - majat_name: task name
62
-     *  - majat_status: task status
63
-     *  - majat_last_run: last run time
64
-     *  - majat_last_result: last run result
65
-     *  - majat_frequency: run frequency
66
-     *  - majat_nb_occur: remaining running occurrences
67
-     *  - majat_running: is task running
68
-     *
69
-     * @param array $row
70
-     * @return AbstractTask|null
71
-     */
72
-    protected function loadTaskFromRow($row) {
73
-        $task = $this->loadTask($row['majat_name']);
58
+	/**
59
+	 * Creates and returns a Task object from a data row.
60
+	 * The row data is expected to be an array with the indexes:
61
+	 *  - majat_name: task name
62
+	 *  - majat_status: task status
63
+	 *  - majat_last_run: last run time
64
+	 *  - majat_last_result: last run result
65
+	 *  - majat_frequency: run frequency
66
+	 *  - majat_nb_occur: remaining running occurrences
67
+	 *  - majat_running: is task running
68
+	 *
69
+	 * @param array $row
70
+	 * @return AbstractTask|null
71
+	 */
72
+	protected function loadTaskFromRow($row) {
73
+		$task = $this->loadTask($row['majat_name']);
74 74
         
75 75
 		if($task) {
76 76
 			$task->setParameters(
@@ -85,99 +85,99 @@  discard block
 block discarded – undo
85 85
 			return $task;
86 86
 		}
87 87
 		else {
88
-		    $this->deleteTask($row['majat_name']);
88
+			$this->deleteTask($row['majat_name']);
89 89
 		}
90 90
 		return null;
91
-    }
91
+	}
92 92
     
93
-    /**
94
-     * {@inheritDoc}
95
-     * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getTask()
96
-     */
97
-    public function getTask($task_name, $only_enabled = true) {
98
-        $args = array (
99
-            'task_name' => $task_name
100
-        );
93
+	/**
94
+	 * {@inheritDoc}
95
+	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getTask()
96
+	 */
97
+	public function getTask($task_name, $only_enabled = true) {
98
+		$args = array (
99
+			'task_name' => $task_name
100
+		);
101 101
     
102
-        $sql = 'SELECT majat_name, majat_status, majat_last_run, majat_last_result, majat_frequency, majat_nb_occur, majat_running' .
103
-            ' FROM `##maj_admintasks`' .
104
-            ' WHERE majat_name = :task_name';
105
-        if($only_enabled) {
106
-            $sql .= ' AND majat_status = :status';
107
-            $args['status'] = 'enabled';
108
-        }
102
+		$sql = 'SELECT majat_name, majat_status, majat_last_run, majat_last_result, majat_frequency, majat_nb_occur, majat_running' .
103
+			' FROM `##maj_admintasks`' .
104
+			' WHERE majat_name = :task_name';
105
+		if($only_enabled) {
106
+			$sql .= ' AND majat_status = :status';
107
+			$args['status'] = 'enabled';
108
+		}
109 109
     
110
-        $task_array = Database::prepare($sql)->execute($args)->fetchOneRow(\PDO::FETCH_ASSOC);
110
+		$task_array = Database::prepare($sql)->execute($args)->fetchOneRow(\PDO::FETCH_ASSOC);
111 111
     
112
-        if($task_array) {
113
-            return $this->loadTaskFromRow($task_array);
114
-        }
112
+		if($task_array) {
113
+			return $this->loadTaskFromRow($task_array);
114
+		}
115 115
     
116
-        return null;
117
-    }
116
+		return null;
117
+	}
118 118
     
119 119
 	/**
120 120
 	 * {@inheritDoc}
121 121
 	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::setTaskStatus()
122 122
 	 */
123
-    public function setTaskStatus(AbstractTask $task, $status) {
124
-        Database::prepare(
125
-            'UPDATE `##maj_admintasks`'.
126
-            ' SET majat_status = :status'.
127
-            ' WHERE majat_name = :name'
128
-        )->execute(array(
129
-                'name' => $task->getName(),
123
+	public function setTaskStatus(AbstractTask $task, $status) {
124
+		Database::prepare(
125
+			'UPDATE `##maj_admintasks`'.
126
+			' SET majat_status = :status'.
127
+			' WHERE majat_name = :name'
128
+		)->execute(array(
129
+				'name' => $task->getName(),
130 130
 				'status' => $status ? 'enabled' : 'disabled'
131
-        ));
132
-    }
131
+		));
132
+	}
133 133
 	
134 134
    /**
135 135
     * {@inheritDoc}
136 136
     * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::updateTask()
137 137
     */
138
-    public function updateTask(AbstractTask $task) {        
139
-        try{
140
-            Database::prepare(
141
-                'UPDATE `##maj_admintasks`'.
142
-                ' SET majat_status = :status,'.
143
-                ' majat_last_run = :last_run,'.
144
-                ' majat_last_result = :last_result,'.
145
-                ' majat_frequency = :frequency,'.
146
-                ' majat_nb_occur = :nb_occurrences,'.
147
-                ' majat_running = :is_running'.
148
-                ' WHERE majat_name = :name'
149
-                )->execute(array(
150
-                    'name' => $task->getName(),
151
-                    'status' => $task->isEnabled() ? 'enabled' : 'disabled',
152
-                    'last_run' => $task->getLastUpdated()->format('Y-m-d H:i:s'),
153
-                    'last_result' =>  $task->isLastRunSuccess() ? 1 : 0,
154
-                    'frequency' => $task->getFrequency(),
155
-                    'nb_occurrences' => $task->getRemainingOccurrences(),
156
-                    'is_running' => $task->isRunning() ? 1 : 0
157
-                ));
158
-            return true;
159
-        }
160
-        catch (\Exception $ex) {
161
-            Log::addErrorLog(sprintf('Error while updating the Admin Task %s. Exception: %s', $task->getName(), $ex->getMessage()));
162
-            return false;
163
-        }        
164
-    }
138
+	public function updateTask(AbstractTask $task) {        
139
+		try{
140
+			Database::prepare(
141
+				'UPDATE `##maj_admintasks`'.
142
+				' SET majat_status = :status,'.
143
+				' majat_last_run = :last_run,'.
144
+				' majat_last_result = :last_result,'.
145
+				' majat_frequency = :frequency,'.
146
+				' majat_nb_occur = :nb_occurrences,'.
147
+				' majat_running = :is_running'.
148
+				' WHERE majat_name = :name'
149
+				)->execute(array(
150
+					'name' => $task->getName(),
151
+					'status' => $task->isEnabled() ? 'enabled' : 'disabled',
152
+					'last_run' => $task->getLastUpdated()->format('Y-m-d H:i:s'),
153
+					'last_result' =>  $task->isLastRunSuccess() ? 1 : 0,
154
+					'frequency' => $task->getFrequency(),
155
+					'nb_occurrences' => $task->getRemainingOccurrences(),
156
+					'is_running' => $task->isRunning() ? 1 : 0
157
+				));
158
+			return true;
159
+		}
160
+		catch (\Exception $ex) {
161
+			Log::addErrorLog(sprintf('Error while updating the Admin Task %s. Exception: %s', $task->getName(), $ex->getMessage()));
162
+			return false;
163
+		}        
164
+	}
165 165
 	
166 166
 	/**
167 167
 	 * {@inheritDoc}
168 168
 	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getTasksCount()
169 169
 	 */
170
-    public function getTasksCount() {
171
-        return Database::prepare(
172
-            'SELECT COUNT(majat_name)' .
173
-            ' FROM `##maj_admintasks`'
174
-            )->execute()->fetchOne();
175
-    }
170
+	public function getTasksCount() {
171
+		return Database::prepare(
172
+			'SELECT COUNT(majat_name)' .
173
+			' FROM `##maj_admintasks`'
174
+			)->execute()->fetchOne();
175
+	}
176 176
 	
177
-    /**
178
-     * {@inheritDoc}
179
-     * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getTasksToRun()
180
-     */
177
+	/**
178
+	 * {@inheritDoc}
179
+	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getTasksToRun()
180
+	 */
181 181
 	public function getTasksToRun($force = false, $task_name = null) 
182 182
 	{
183 183
 		$res = array();
@@ -206,12 +206,12 @@  discard block
 block discarded – undo
206 206
 		$data = Database::prepare($sql)->execute($args)->fetchAll(\PDO::FETCH_ASSOC);
207 207
 		
208 208
 		foreach($data as $task_row) {
209
-            $task = $this->loadTaskFromRow($task_row);
209
+			$task = $this->loadTaskFromRow($task_row);
210 210
 			if($task)
211 211
 			{
212 212
 				$res[] = $task;
213 213
 			} 
214
-        }
214
+		}
215 215
 		
216 216
 		return $res;	
217 217
 	}
@@ -220,69 +220,69 @@  discard block
 block discarded – undo
220 220
 	 * {@inheritDoc}
221 221
 	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getFilteredTasksList()
222 222
 	 */
223
-    public function getFilteredTasksList($search = null, $order_by = null, $start = 0, $limit = null){
224
-        $res = array();
223
+	public function getFilteredTasksList($search = null, $order_by = null, $start = 0, $limit = null){
224
+		$res = array();
225 225
             
226
-        $sql = 'SELECT majat_name, majat_status, majat_last_run, majat_last_result, majat_frequency, majat_nb_occur, majat_running' .
227
-            ' FROM `##maj_admintasks`';
226
+		$sql = 'SELECT majat_name, majat_status, majat_last_run, majat_last_result, majat_frequency, majat_nb_occur, majat_running' .
227
+			' FROM `##maj_admintasks`';
228 228
         
229
-        $args = array();
229
+		$args = array();
230 230
                 
231
-        if ($order_by) {
232
-            $sql .= ' ORDER BY ';
233
-            $i = 0;
234
-            foreach ($order_by as $key => $value) {
235
-                if ($i > 0) {
236
-                    $sql .= ',';
237
-                }
231
+		if ($order_by) {
232
+			$sql .= ' ORDER BY ';
233
+			$i = 0;
234
+			foreach ($order_by as $key => $value) {
235
+				if ($i > 0) {
236
+					$sql .= ',';
237
+				}
238 238
                 
239
-                switch ($value['dir']) {
240
-                    case 'asc':
241
-                        $sql .= $value['column'] . ' ASC ';
242
-                        break;
243
-                    case 'desc':
244
-                        $sql .= $value['column'] . ' DESC ';
245
-                        break;
246
-                }
247
-                $i++;
248
-            }
249
-        } else {
250
-            $sql .= ' ORDER BY majat_name ASC';
251
-        }
239
+				switch ($value['dir']) {
240
+					case 'asc':
241
+						$sql .= $value['column'] . ' ASC ';
242
+						break;
243
+					case 'desc':
244
+						$sql .= $value['column'] . ' DESC ';
245
+						break;
246
+				}
247
+				$i++;
248
+			}
249
+		} else {
250
+			$sql .= ' ORDER BY majat_name ASC';
251
+		}
252 252
         
253
-        if ($limit) {
254
-            $sql .= ' LIMIT :limit OFFSET :offset';
255
-            $args['limit']  = $limit;
256
-            $args['offset'] = $start;
257
-        }
253
+		if ($limit) {
254
+			$sql .= ' LIMIT :limit OFFSET :offset';
255
+			$args['limit']  = $limit;
256
+			$args['offset'] = $start;
257
+		}
258 258
             
259
-        $data = Database::prepare($sql)->execute($args)->fetchAll(\PDO::FETCH_ASSOC);
259
+		$data = Database::prepare($sql)->execute($args)->fetchAll(\PDO::FETCH_ASSOC);
260 260
 
261
-        foreach($data as $ga) {
262
-            $task = $this->loadTaskFromRow($ga);
261
+		foreach($data as $ga) {
262
+			$task = $this->loadTaskFromRow($ga);
263 263
 			if($task && (empty($search) || ($search && strpos($task->getTitle(), $search) !== false)))
264 264
 			{
265 265
 				$res[] = $task;
266 266
 			}
267
-        }
267
+		}
268 268
 		
269
-        return $res;
270
-    }
269
+		return $res;
270
+	}
271 271
 	
272 272
 	
273
-    /**
274
-     * {inhericDoc}
275
-     * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getInstalledTasks()
276
-     */
273
+	/**
274
+	 * {inhericDoc}
275
+	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface::getInstalledTasks()
276
+	 */
277 277
 	public function getInstalledTasks() {
278 278
 		$tasks=array();
279 279
 		$dir=opendir($this->root_path);
280 280
 		while (($file=readdir($dir))!==false){ 
281 281
 			try {
282
-			    if($file == '.' || $file == '..') continue;
282
+				if($file == '.' || $file == '..') continue;
283 283
 				$task = include $this->root_path . $file;
284 284
 				if($task ) {
285
-				    $task->setProvider($this);
285
+					$task->setProvider($this);
286 286
 					Database::prepare(
287 287
 						'INSERT IGNORE INTO `##maj_admintasks`'.
288 288
 						' (majat_name, majat_status, majat_frequency)'.
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/Tasks/HealthCheckEmailTask.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -29,11 +29,11 @@  discard block
 block discarded – undo
29 29
  */
30 30
 class HealthCheckEmailTask extends AbstractTask implements ConfigurableTaskInterface {
31 31
     
32
-    /**
33
-     * {@inheritDoc}
34
-     * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::getTitle()
35
-     */
36
-    public function getTitle() {
32
+	/**
33
+	 * {@inheritDoc}
34
+	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::getTitle()
35
+	 */
36
+	public function getTitle() {
37 37
 		return I18N::translate('Healthcheck Email');
38 38
 	}
39 39
 	
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 	 * {@inheritDoc}
42 42
 	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::getDefaultFrequency()
43 43
 	 */
44
-    public function getDefaultFrequency() {
44
+	public function getDefaultFrequency() {
45 45
 		return 10080;  // = 1 week = 7 * 24 * 60 min
46 46
 	}
47 47
     
@@ -49,7 +49,7 @@  discard block
 block discarded – undo
49 49
 	 * {@inheritDoc}
50 50
 	 * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::executeSteps()
51 51
 	 */
52
-    protected function executeSteps() {
52
+	protected function executeSteps() {
53 53
 	
54 54
 		$res = false;		
55 55
 		
@@ -63,14 +63,14 @@  discard block
 block discarded – undo
63 63
 		$interval = max($this->frequency, $interval_sincelast);
64 64
 		$nbdays = ceil($interval / (24 * 60));
65 65
 				
66
-        // Check for updates
67
-        $latest_version_txt = Functions::fetchLatestVersion();
68
-        if (preg_match('/^[0-9.]+\|[0-9.]+\|/', $latest_version_txt)) {
69
-        	list($latest_version, $earliest_version, $download_url) = explode('|', $latest_version_txt);
70
-        } else {
71
-        	// Cannot determine the latest version
72
-        	list($latest_version, $earliest_version, $download_url) = explode('|', '||');
73
-        }
66
+		// Check for updates
67
+		$latest_version_txt = Functions::fetchLatestVersion();
68
+		if (preg_match('/^[0-9.]+\|[0-9.]+\|/', $latest_version_txt)) {
69
+			list($latest_version, $earliest_version, $download_url) = explode('|', $latest_version_txt);
70
+		} else {
71
+			// Cannot determine the latest version
72
+			list($latest_version, $earliest_version, $download_url) = explode('|', '||');
73
+		}
74 74
 		
75 75
 		// Users statistics
76 76
 		$warnusers = 0;
@@ -213,15 +213,15 @@  discard block
 block discarded – undo
213 213
 		$html = '
214 214
 			<div class="form-group">
215 215
     			<label class="control-label col-sm-3"> '.
216
-    				I18N::translate('Enable healthcheck emails for') .
217
-    			'</label>
216
+					I18N::translate('Enable healthcheck emails for') .
217
+				'</label>
218 218
     			<div class="col-sm-9">';
219 219
 
220 220
 		foreach(Tree::getAll() as $tree){
221 221
 			if(Auth::isManager($tree)){	
222
-			    $html .= '<div class="form-group row">
222
+				$html .= '<div class="form-group row">
223 223
 			        <span class="col-sm-3 control-label">' .
224
-			             $tree->getTitle() .
224
+						 $tree->getTitle() .
225 225
 					'</span>
226 226
 					 <div class="col-sm-2">';
227 227
 				$html .= FunctionsEdit::editFieldYesNo('HEALTHCHECK_ENABLED_' . $tree->getTreeId(), $tree->getPreference('MAJ_AT_'.$this->getName().'_ENABLED', 1), 'class="radio-inline"');
@@ -230,8 +230,8 @@  discard block
 block discarded – undo
230 230
 		}
231 231
 		
232 232
 		$html .= '	<p class="small text-muted">'.
233
-    					I18N::translate('Enable the health check emails for each of the selected trees.') .
234
-    				'</p>
233
+						I18N::translate('Enable the health check emails for each of the selected trees.') .
234
+					'</p>
235 235
     			</div>
236 236
     		</div>';
237 237
 			
Please login to merge, or discard this patch.
src/Webtrees/Module/AdminTasks/Schema/Migration0.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -24,16 +24,16 @@
 block discarded – undo
24 24
 	 */
25 25
 	public function upgrade() {
26 26
 		Database::exec(
27
-		    'CREATE TABLE IF NOT EXISTS `##maj_admintasks` ('.
28
-		    ' majat_name 		    VARCHAR(32)                      NOT NULL,'.
29
-		    ' majat_status          ENUM(\'enabled\',\'disabled\') 	 NOT NULL DEFAULT \'disabled\','.
30
-		    ' majat_last_run 		DATETIME 					     NOT NULL DEFAULT \'2000-01-01 00:00:00\','.
31
-		    ' majat_last_result 	TINYINT(1)					     NOT NULL DEFAULT 1,'.		// 0 for error, 1 for success
32
-		    ' majat_frequency		INTEGER						     NOT NULL DEFAULT 10080,'.	// In min, Default every week
33
-		    ' majat_nb_occur	 	SMALLINT					     NOT NULL DEFAULT 0,'.
34
-		    ' majat_running 		TINYINT(1)					     NOT NULL DEFAULT 0,'.
35
-		    ' PRIMARY KEY (majat_name)'.
36
-		    ') COLLATE utf8_unicode_ci ENGINE=InnoDB'
27
+			'CREATE TABLE IF NOT EXISTS `##maj_admintasks` ('.
28
+			' majat_name 		    VARCHAR(32)                      NOT NULL,'.
29
+			' majat_status          ENUM(\'enabled\',\'disabled\') 	 NOT NULL DEFAULT \'disabled\','.
30
+			' majat_last_run 		DATETIME 					     NOT NULL DEFAULT \'2000-01-01 00:00:00\','.
31
+			' majat_last_result 	TINYINT(1)					     NOT NULL DEFAULT 1,'.		// 0 for error, 1 for success
32
+			' majat_frequency		INTEGER						     NOT NULL DEFAULT 10080,'.	// In min, Default every week
33
+			' majat_nb_occur	 	SMALLINT					     NOT NULL DEFAULT 0,'.
34
+			' majat_running 		TINYINT(1)					     NOT NULL DEFAULT 0,'.
35
+			' PRIMARY KEY (majat_name)'.
36
+			') COLLATE utf8_unicode_ci ENGINE=InnoDB'
37 37
 		);
38 38
 	}
39 39
 }
Please login to merge, or discard this patch.