['fas fa-circle-dot has-text-success', "new"],
'in_progress' => ['fas fa-circle-play has-text-link', "reload"],
'on_hold' => ['fas fa-pause-circle has-text-warning',"pause"],
'completed' => ['fas fa-check has-text-danger', "check"]
];
static public $status_names = [
'open' => 'Open',
'in_progress' => 'In Progress',
'on_hold' => 'On Hold',
'completed' => 'Completed'
];
static public $priority_icons = [
'Low' => ['fas fa-circle-down',"green"],
'Medium' => ['fas fa-circle-dot', "yellow"],
'High' => ['fas fa-circle-up', "red"]
];
static public $priority_colors = [
'Low' => 'success',
'Medium' => 'warning',
'High' => 'danger',
'' => 'info'
];
static public function icons($node){
// debug_print($node);
$required = ['type', 'path'];
$check = self::checkAttributes($node, $required);
if(!is_null($check)){
return sprintf('
%s
', $check);
}
$attr = $node['@attrib'];
$type = $attr['type'];
$path = $attr['path'];
$selected = $attr['selected'];
switch($attr['type']){
case 'status-selector':
// $selected = Base::instance()->get('GET.status') ?: null;
return 'renderStatusSelector(
Base::instance()->get("GET.status") ?: null, "'.$path.'"); ?>';
return self::renderStatusSelector($selected, $path);
default:
return 'unknown icon selector type
';
}
$tpl = Template::instance();
$f3 = Base::instance();
$context = $f3->hive();
$inner = $tpl->token($node[0], $context);
return '';
}
private static function checkAttributes($node, array $required){
if(isset($node['@attrib'])){
$attr = $node['@attrib'];
$errors = [];
foreach($required as $key){
if(empty($attr[$key])){
$errors[] = "Error: '$key' is missing.";
}
}
return empty($errors) ? null : implode(" ", $errors);
}
return "Error: '@attrib' is missing";
}
public static function renderStatusSelector($current_status, $path)
{
$output = '';
return $output;
}
static function do_the_switch($type, $value){
if($value !== null) {
$value = str_replace(' ', '_', strtolower($value));
}
$icon_class = '';
switch(strtolower($type)){
case 'status':
$icon_class = IconsHelper::$status_icons[$value] ?? ['fas fa-question-circle has-text-info', "🔲"];
break;
case 'priority':
$icon_class = IconsHelper::$priority_icons[$value] ?? ['fas fa-question-circle', "🔲"];
$icon_color = IconsHelper::$priority_colors[$value] ?? 'info';
break;
default:
$icon_class = 'fas fa-question-circle';
}
if($type == 'priority'){
// return ''
return '
';
} else {
return '';
}
return ''.$icon_class[1].'';
}
}
\Template::instance()->extend('icons', 'IconsHelper::icons');