Passed
Push — master ( 213516...f477f5 )
by Jean-Christophe
04:14
created

MessagesTrait   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Test Coverage

Coverage 51.85%

Importance

Changes 0
Metric Value
wmc 7
eloc 24
dl 0
loc 41
ccs 14
cts 27
cp 0.5185
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A _showConfMessage() 0 2 1
A showConfMessage() 0 11 1
A showSimpleMessage() 0 13 4
A _showSimpleMessage() 0 2 1
1
<?php
2
3
namespace Ubiquity\controllers\semantic;
4
5
use Ajax\semantic\html\elements\HtmlButton;
6
use Ubiquity\utils\base\UString;
7
use Ajax\semantic\html\elements\HtmlDivider;
8
use Ajax\semantic\html\base\HtmlSemDoubleElement;
9
use Ajax\semantic\html\collections\HtmlMessage;
10
use Ubiquity\controllers\crud\CRUDMessage;
11
use Ubiquity\controllers\admin\viewers\ModelViewer;
12
13
/**
14
 * @author jc
15
 * @property \Ajax\php\ubiquity\JsUtils $jquery
16
 *
17
 */
18
trait MessagesTrait {
19
	
20
	/**
21
	 * @return ModelViewer
22
	 */
23
	abstract public function _getModelViewer();
24
	
25 1
	protected function _showSimpleMessage(CRUDMessage $message,$staticName=null):HtmlMessage{
26 1
		return $this->showSimpleMessage($message->getMessage(), $message->getType(),$message->getTitle(),$message->getIcon(),$message->getTimeout(),$staticName);
27
	}
28
	
29 7
	public function showSimpleMessage($content, $type, $title=null,$icon = "info", $timeout = NULL, $staticName = null): HtmlMessage {
30 7
		$semantic = $this->jquery->semantic ();
31 7
		if (! isset ( $staticName ))
32 3
			$staticName = "msg-" . rand ( 0, 50 );
33 7
		$message = $semantic->htmlMessage ( $staticName, $content, $type );
34 7
		if(isset($title)){
35 5
			$message->addHeader($title);
36
		}
37 7
		$message->setIcon ( $icon );
38 7
		$message->setDismissable ();
39 7
		if (isset ( $timeout ))
40 2
			$message->setTimeout ( 3000 );
41 7
		return $message;
42
	}
43
	
44
	protected function _showConfMessage(CRUDMessage $message,$url, $responseElement, $data, $attributes = NULL):HtmlMessage {
45
		return $this->showConfMessage($message->getMessage(), $message->getType(), $message->getTitle(),$message->getIcon(),$url, $responseElement, $data,$attributes);
46
	}
47
	
48
	public function showConfMessage($content, $type, $title,$icon,$url, $responseElement, $data, $attributes = NULL):HtmlMessage {
49
		$messageDlg = $this->showSimpleMessage ( $content, $type,$title, $icon );
50
		$btOkay = new HtmlButton( "bt-okay", "Confirm", "negative" );
51
		$btOkay->addIcon ( "check circle" );
52
		$btOkay->postOnClick ( $url, "{data:'" . $data . "'}", $responseElement, $attributes );
53
		$btCancel = new HtmlButton ( "bt-cancel-" . UString::cleanAttribute ( $url ), "Cancel" );
54
		$btCancel->addIcon ( "remove circle outline" );
55
		$btCancel->onClick ( $messageDlg->jsHide () );
56
		$messageDlg->addContent ( [ new HtmlDivider( "" ),new HtmlSemDoubleElement( "", "div", "", [ $btOkay->floatRight (),$btCancel->floatRight () ] ) ] );
57
		$this->_getModelViewer()->onConfirmButtons($btOkay, $btCancel);
58
		return $messageDlg;
59
	}
60
}
61
62