Пример #1
0
 function render()
 {
     /* tabs */
     $id = $this->id();
     if (!$id) {
         $id = 'nts' . hc_random();
     }
     $tabs = HC_Html_Factory::widget('list')->add_attr('class', array('nav'))->add_attr('class', array('nav-tabs'))->add_attr('class', array('hc-tab-links'))->add_attr('id', $id);
     $my_tabs = $this->tabs();
     reset($my_tabs);
     foreach ($my_tabs as $key => $tab_array) {
         list($tab_label, $tab_content) = $tab_array;
         $tabs->add_item($key, HC_Html_Factory::widget('titled', 'a')->add_attr('href', '#' . $key)->add_attr('class', 'tab-toggler')->add_attr('data-toggle-tab', $key)->add_child($tab_label));
     }
     $active = $this->active();
     $tabs->add_item_attr($active, 'class', 'active');
     /* content */
     $content = HC_Html_Factory::element('div')->add_attr('class', 'hc-tab-content')->add_attr('style', 'overflow: visible;');
     reset($my_tabs);
     foreach ($my_tabs as $key => $tab_array) {
         list($tab_label, $tab_content) = $tab_array;
         $tab = HC_Html_Factory::element('div')->add_attr('class', 'hc-tab-pane')->add_attr('id', $key)->add_attr('data-tab-id', $key);
         if ($active == $key) {
             $tab->add_attr('class', 'active');
         }
         $tab->add_child($tab_content);
         $content->add_child($tab);
     }
     /* javascript */
     /* out */
     $out = HC_Html_Factory::widget('list')->add_attr('class', array('list-unstyled'))->add_attr('class', array('hc-tabs'));
     $out->add_item($tabs);
     $out->add_item($content);
     return $out->render();
 }
Пример #2
0
 function render()
 {
     $folded = array();
     $items = $this->items();
     foreach ($items as $item) {
         list($item, $folding_key) = $item;
         if (!isset($folded[$folding_key])) {
             $folded[$folding_key] = array();
         }
         $folded[$folding_key][] = $item;
     }
     $out = HC_Html_Factory::element('ul')->add_attr('class', 'list-unstyled')->add_attr('class', 'collapse-panel');
     $attr = $this->attr();
     foreach ($attr as $k => $v) {
         $out->add_attr($k, $v);
     }
     reset($folded);
     foreach ($folded as $fk => $items) {
         $collapser = HC_Html_Factory::element('a')->add_attr('href', '#')->add_attr('class', 'hc-collapse-next')->add_attr('class', 'display-block')->add_child('HAHA');
         $out->add_child(HC_Html_Factory::element('li')->add_child($collapser));
         $subout = HC_Html_Factory::widget('list');
         foreach ($items as $item) {
             $subout->add_item($item);
         }
         $out->add_child(HC_Html_Factory::element('li')->add_attr('class', 'collapse')->add_child($subout));
     }
     return $out->render();
 }
Пример #3
0
 function render()
 {
     $wrap = HC_Html_Factory::widget('list')->add_attr('class', array('list-inline', 'list-separated'));
     $wrap->add_item($this->fields['start']);
     $wrap->add_item(' - ');
     $wrap->add_item($this->fields['end']);
     return $this->decorate($wrap->render());
 }
Пример #4
0
 function render()
 {
     $model = $this->model();
     $start_link = $this->start_link();
     if (!$start_link) {
         // $start_link = 'availability';
         $start_link = 'admin/users/zoom/index/id/' . $model->user_id . '/tab/availability/_pass';
     }
     $href = HC_Lib::link($start_link . '/zoom/index', array('id' => $model->id));
     $nolink = $this->nolink();
     $new_window = $this->new_window();
     $wide = $this->wide();
     $a_link = HC_Html_Factory::widget('titled', 'a')->add_attr('href', $href);
     if (!$new_window) {
         $a_link->add_attr('class', 'hc-flatmodal-loader');
     } else {
         $a_link->add_attr('target', '_blank');
         $a_link->add_attr('class', 'hc-parent-loader');
     }
     if ($wide === 'mini') {
         $out = HC_Html_Factory::element('div');
         if (!$nolink) {
             $title = clone $a_link;
             $title->add_child($model->present_title(HC_PRESENTER::VIEW_HTML_ICON));
         } else {
             $title = $model->present_title(HC_PRESENTER::VIEW_HTML_ICON);
         }
         $out->add_child($title);
     } elseif ($wide) {
         $out = HC_Html_Factory::widget('grid');
         if (!$nolink) {
             $present_title = clone $a_link;
             $present_title->add_child($model->present_title());
         } else {
             $present_title = $model->present_title();
         }
         if (!$nolink) {
             $present_date = clone $a_link;
             $present_date->add_child($model->present_date());
         } else {
             $present_date = $model->present_date();
         }
         $out->add_item($present_title, 6);
         $out->add_item($present_date, 6);
     } else {
         $out = HC_Html_Factory::element('div');
         if (!$nolink) {
             $title = clone $a_link;
             $title->add_child($model->present_title());
         } else {
             $title = $model->present_title(HC_PRESENTER::VIEW_HTML_ICON);
         }
         $out->add_child($title);
         $out->add_attr('class', array('text-smaller'))->add_attr('class', array('text-muted'));
     }
     $out->add_attr('class', 'hc-common-link-parent')->add_attr('class', 'hc-no-underline');
     return $out->render();
 }
Пример #5
0
    function render()
    {
        $name = $this->name();
        $value = $this->value();
        $id = 'nts-' . $name;
        $t = HC_Lib::time();
        $t->setNow();
        $t->setStartDay();
        if ($value) {
            $t->modify('+' . $value . ' seconds');
            // $value = $t->formatTime();
        }
        $out = HC_Html_Factory::widget('container');
        /* hidden field to store our value */
        $hidden = HC_Html_Factory::input('hidden')->set_name($name)->set_value($value)->set_id($id);
        $out->add_item($hidden);
        /* text field to display */
        $display_name = $name . '_display';
        $display_id = 'nts-' . $display_name;
        $text = HC_Html_Factory::input('text')->set_name($display_name)->set_id($display_id)->add_attr('size', 7);
        if (strlen($value)) {
            $display_value = $t->formatTime();
            $text->set_value($display_value);
        }
        $out->add_item($text);
        $time_format = $t->timeFormat();
        $script = HC_Html_Factory::element('script');
        $script->add_attr('language', 'JavaScript');
        $js_code = <<<EOT

jQuery("#{$display_id}").timepicker(
{
\t'appendTo' : '#nts',
\t'timeFormat' :'{$time_format}',
\t'step' : 5,
}
);

jQuery("#{$display_id}").on('change', function(){
\tvar dbTime = jQuery(this).timepicker('getSecondsFromMidnight');
\tjQuery('#{$id}').val( dbTime );
});

EOT;
        $script->add_child($js_code);
        $out->add_item($script);
        $return = $this->decorate($out->render());
        return $return;
    }
 function details($model, $vlevel = HC_PRESENTER::VIEW_HTML)
 {
     $conflicting_one = HC_App::model('availability');
     $conflicting_one->where('id', $model->details)->get();
     switch ($vlevel) {
         case HC_PRESENTER::VIEW_HTML:
             $return = HC_Html_Factory::widget('availability_view')->set_new_window(TRUE)->set_wide(TRUE);
             $return->set_model($conflicting_one);
             break;
         case HC_PRESENTER::VIEW_TEXT:
         case HC_PRESENTER::VIEW_RAW:
             $return = $conflicting_one->present_details($vlevel);
             break;
     }
     return $return;
 }
Пример #7
0
 function render()
 {
     $out = HC_Html_Factory::element('div')->add_attr('class', 'alert')->add_attr('class', 'display-block');
     $attr = $this->attr();
     foreach ($attr as $k => $v) {
         $out->add_attr($k, $v);
     }
     $items = $this->items();
     if (count($items) > 1) {
         $list = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled');
         $list->set_items($items);
         $out->add_child($list);
     } else {
         $out->add_child($items);
     }
     return $out->render();
 }
Пример #8
0
 function render()
 {
     $name = $this->name();
     $value = $this->value();
     $id = 'nts-' . $name;
     $t = HC_Lib::time();
     $value ? $t->setDateDb($value) : $t->setNow();
     $value = $t->formatDate_Db();
     $out = HC_Html_Factory::widget('container');
     /* hidden field to store our value */
     $hidden = HC_Html_Factory::input('hidden')->set_name($name)->set_value($value)->set_id($id);
     $out->add_item($hidden);
     /* text field to display */
     $display_name = $name . '_display';
     $display_id = 'nts-' . $display_name;
     $datepicker_format = $t->formatToDatepicker();
     $display_value = $t->formatDate();
     $text = HC_Html_Factory::input('text')->set_name($display_name)->set_value($display_value)->set_id($display_id)->add_attr('data-date-format', $datepicker_format)->add_attr('data-date-week-start', $t->weekStartsOn)->add_attr('style', 'width: 8em')->add_attr('class', 'hc-datepicker');
     $out->add_item($text);
     $return = $this->decorate($out->render());
     return $return;
 }
Пример #9
0
 function render()
 {
     $name = $this->name();
     $value = $this->value();
     $id = 'nts-' . $name;
     $t = HC_Lib::time();
     $t->setNow();
     $t->setStartDay();
     if ($value) {
         $t->modify('+' . $value . ' seconds');
         // $value = $t->formatTime();
     }
     $out = HC_Html_Factory::widget('container');
     /* hidden field to store our value */
     $hidden = HC_Html_Factory::input('hidden')->set_name($name)->set_value($value)->set_id($id);
     $attr = $this->attr();
     foreach ($attr as $k => $v) {
         if (!in_array($k, array('disabled', 'readonly'))) {
             continue;
         }
         $hidden->add_attr($k, $v);
     }
     $out->add_item($hidden);
     /* text field to display */
     $display_name = $name . '_display';
     $display_id = 'nts-' . $display_name;
     $text = HC_Html_Factory::input('text')->set_name($display_name)->set_id($display_id)->add_attr('size', 7)->add_attr('class', 'hc-timepicker');
     if (strlen($value)) {
         $display_value = $t->formatTime();
         $text->set_value($display_value);
     }
     foreach ($attr as $k => $v) {
         $text->add_attr($k, $v);
     }
     $out->add_item($text);
     $return = $this->decorate($out->render());
     return $return;
 }
Пример #10
0
		</div>
	<?php 
    }
    ?>
	</div>
<?php 
}
?>

<?php 
if ($error) {
    ?>
	<div>
	<?php 
    $danger = HC_Html_Factory::widget('alert')->add_attr('class', 'alert-danger')->set_items($error);
    echo $danger->render();
    ?>
	</div>
<?php 
}
?>

<?php 
if (isset($debug_message) && $debug_message) {
    if (!is_array($debug_message)) {
        $debug_message = array($debug_message);
    }
    $debug_message = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated')->add_attr('class', 'list-bordered')->set_items($debug_message);
    $debug = HC_Html_Factory::widget('alert')->add_attr('class', 'alert-warning-o')->set_items($debug_message);
    echo $debug->render();
}
Пример #11
0
<?php

$t = HC_Lib::time();
$out = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated');
foreach ($entries as $e) {
    $view = HC_Html_Factory::widget('availability_view');
    $view->set_model($e);
    if (isset($state['wide'])) {
        $view->set_wide($state['wide']);
    }
    $view->set_start_link('availability');
    $out->add_item($view);
    /*
    	$out->add_item(
    		HC_Html_Factory::widget('titled', 'span')
    			->add_child( $e->present_title() )
    			->add_attr('class', 'text-success')
    			->add_attr('class', 'text-smaller')
    		);
    */
}
echo $out->render();
Пример #12
0
<?php

$this->layout->set_partial('header', HC_Html::page_header(HC_Html_Factory::element('h2')->add_child(HCM::__('Log In'))));
$app_conf = HC_App::app_conf();
if ($app_conf->get('login_with') == 'username') {
    $identity_label = HCM::__('Username');
} else {
    $identity_label = HCM::__('Email');
}
$display_form = HC_Html_Factory::widget('form')->add_attr('action', HC_Lib::link('auth/login')->url())->add_attr('class', 'form-horizontal')->add_attr('class', 'form-condensed');
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_label($identity_label)->set_content($form->input('identity')->add_attr('placeholder', $identity_label))->set_error($form->input('identity')->error()));
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Password'))->set_content($form->input('password')->add_attr('placeholder', HCM::__('Password')))->set_error($form->input('password')->error()));
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_content(HC_Html_Factory::element('input')->add_attr('type', 'submit')->add_attr('class', array('btn', 'btn-default'))->add_attr('title', HCM::__('Log In'))->add_attr('value', HCM::__('Log In'))));
$out = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated');
$out->add_item($display_form);
$out->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link('auth/forgot_password'))->add_child(HCM::__('Lost your password?')));
echo $out->render();
Пример #13
0
<?php

if (!$count) {
    return;
}
$temp_shift = HC_App::model('shift');
$linkto = HC_Lib::link('list/index', array('filter' => 'draft'));
$title = HC_Html_Factory::widget('list')->add_attr('class', 'list-inline')->add_attr('class', 'list-separated')->add_item('title', HC_Html_Factory::widget('titled', 'a')->add_attr('href', $linkto)->add_child(HCM::__('Draft Shifts')))->add_item('count', HC_Html_Factory::element('span')->add_attr('class', 'badge')->add_child($count));
$out = HC_Html_Factory::element('div')->add_attr('class', 'alert')->add_attr('class', 'alert-default-o')->add_child($title);
//$color = Hc_lib::random_html_color( 2 );
$color = '#dff0d8';
$color1 = HC_Lib::adjust_color_brightness($color, 0);
$color2 = HC_Lib::adjust_color_brightness($color, 20);
$out->add_attr('style', "background: repeating-linear-gradient(\r\n\t\t-45deg,\r\n\t\t{$color1},\r\n\t\t{$color1} 6px,\r\n\t\t{$color2} 6px,\r\n\t\t{$color2} 12px\r\n\t\t);\r\n\t");
echo $out->render();
Пример #14
0
    $time_input = $form->input('time');
}
$display_form->add_item(HC_Html_Factory::widget('grid')->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Time'))->set_content($time_input)->set_error($form->input('time')->error()), 7)->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Date'))->set_content($form->input('date'))->set_error($form->input('date')->error()), 5));
/* STAFF */
$display_form->add_item($form->input('user'));
$staff_view = HC_Html_Factory::widget('module')->set_url('shifts/zoom/form')->pass_arg($object)->pass_arg('user')->set_self_target(TRUE)->set_skip_src(TRUE);
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Staff'))->set_content($staff_view));
/* STATUS */
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Status'))->set_content($form->input('status')->set_inline(TRUE)->add_option($object->_const('STATUS_DRAFT'), $object->set('status', $object->_const('STATUS_DRAFT'))->present_status())->add_option($object->_const('STATUS_ACTIVE'), $object->set('status', $object->_const('STATUS_ACTIVE'))->present_status())->render())->set_error($form->input('status')->error()));
/* ADD NOTE IF POSSIBLE */
$extensions = HC_App::extensions();
$more_content = $extensions->run('shifts/zoom/confirm');
if ($more_content) {
    $more_holder = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated2');
    foreach ($more_content as $mc) {
        $more_holder->add_item($mc);
    }
    $display_form->add_item($more_holder);
}
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_content($buttons)->add_attr('class', 'padded2')->add_attr('style', 'border-top: #eee 1px solid; margin-top: 1em;'));
// echo $display_form->render();
$out = HC_Html_Factory::widget('flatmodal');
$out->set_content($display_form);
/* 
$out->set_closer(
	HC_Html_Factory::element('a')
		->add_child( HC_Html::icon('arrow-left') . HCM::__('Cancel') )
		->add_attr('class', array('btn', 'btn-info-o'))
	);
*/
echo $out->render();
Пример #15
0
    } else {
        $user_title .= $user->email;
    }
    $user_title .= ']';
    $link_profile = 'auth/profile';
    $nav->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link($link_profile))->add_child($user_title));
    $auth_user = $this->auth->user();
    $acl = HC_App::acl();
    $acl_user = $acl->user();
    $ri = HC_Lib::ri();
    if ($auth_user->id != $acl_user->id) {
        if ($ri == 'wordpress') {
            if ($auth_user->level >= $auth_user->_const('LEVEL_MANAGER')) {
                $nav->add_divider();
                $app = HC_App::app();
                $admin_url = get_admin_url() . 'admin.php?page=' . $app;
                $nav->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', $admin_url)->add_child(HC_Html::icon('cogs'))->add_child(HC_Html_Factory::element('span')->add_attr('class', 'hidden-xs')->add_child(HCM::__('Admin Area'))));
            }
        }
    }
    $nav->add_divider();
    $nav->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link('auth/logout'))->add_child(HC_Html_Factory::element('span')->add_attr('class', 'hidden-xs')->add_child(HCM::__('Log Out')))->add_child(HC_Html::icon('sign-out')));
} else {
    if ($this_method != 'login') {
        $nav->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link('auth/login'))->add_child(HC_Html::icon('sign-in'))->add_child(HC_Html_Factory::element('span')->add_attr('class', 'hidden-xs')->add_child(HCM::__('Log In'))));
    } else {
        $nav->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link())->add_child(HC_Html::icon('arrow-left'))->add_child(HCM::__('Back To Start Page')));
    }
}
$out->add_child($nav);
echo $out->render();
$rid++;
/* content */
$cid = 0;
$out->set_cell($rid, $cid, '');
$out->add_cell_attr($rid, $cid, array('class' => array('cal-cell-title')));
reset($locations);
foreach ($locations as $location) {
    $entity_id = $location->id;
    if (!$current_user_id) {
        if (!(isset($has_shifts[$entity_id]) && $has_shifts[$entity_id])) {
            continue;
        }
    }
    $cid = 0;
    if ($current_user_id) {
        $title = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated');
        $title->add_item($TITLES[$entity_id]);
        $title->add_item($QUICKSTATS[$entity_id]);
    } else {
        $title = $TITLES[$entity_id];
    }
    $out->set_cell($rid, $cid, $title);
    $out->add_cell_attr($rid, $cid, array('class' => 'padded'));
    $cid++;
    reset($dates);
    foreach ($dates as $date) {
        $cell_key = $entity_id . '_' . $date;
        $date_label = $DATE_LABELS[$date];
        $date_label = HC_Html_Factory::element('div')->add_attr('class', 'visible-xs')->add_child($date_label);
        $cell_content = array($date_label, $CELLS[$cell_key]);
        if ($LINKS[$cell_key]) {
Пример #17
0
$list = $layout->partial('list');
if (!($is_module or $is_print)) {
    if ($calendar_ajax) {
        $out = HC_Html_Factory::widget('flatmodal');
        $out->set_content($list);
        $list = $out->render();
    }
    if ($filter or $control) {
        $out = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled');
        if ($filter) {
            $out->add_item('filter', $filter);
            $out->add_item_attr('filter', 'class', array('text-smaller'));
        }
        if ($control) {
            $out->add_item($control);
        }
        $out->add_item($list);
        echo $out->render();
    } else {
        echo $list;
    }
} else {
    if ($is_print) {
        /* DATE */
        $date_nav = HC_Html_Factory::widget('date_nav');
        $date_nav->set_range($state['range']);
        $date_nav->set_date($state['date']);
        echo HC_Html_Factory::element('p')->add_child($date_nav->render(TRUE));
    }
    echo $list;
}
Пример #18
0
<?php

$this_buttons = HC_Html_Factory::widget('list')->add_attr('class', array('list-unstyled'));
$this_buttons->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('class', array('btn', 'btn-default'))->add_child(HCM::__('Click Here To Pick Up The Shift'))->add_attr('href', HC_Lib::link('pickup/edit/insert/' . $object->id)));
echo $this_buttons->render();
Пример #19
0
 function render($readonly = FALSE)
 {
     if (!$readonly && !($link = $this->link())) {
         return 'HC_Html_Widget_Date_Nav: link is not set!';
     }
     $t = HC_Lib::time();
     $nav_title = $this->_nav_title($readonly);
     if ($readonly) {
         $return = HC_Html_Factory::element('span')->add_attr('class', array('btn', 'btn-default'))->add_child($nav_title);
         return $return;
     }
     switch ($this->range()) {
         case 'all':
             $t->setNow();
             $start_date = $end_date = 0;
             // $start_date = $end_date = $t->formatDate_Db();
             break;
         case 'upcoming':
             $t->setNow();
             $start_date = $end_date = 0;
             break;
         case 'custom':
             list($start_date, $end_date) = explode('_', $this->date());
             $t->setDateDb($start_date)->modify('-1 day');
             $before_date = $t->formatDate_Db();
             $t->setDateDb($end_date)->modify('+1 day');
             $after_date = $t->formatDate_Db();
             break;
         case 'day':
             $t->setDateDb($this->date());
             $start_date = $end_date = $t->formatDate_Db();
             $t->modify('-1 day');
             $before_date = $t->formatDate_Db();
             $t->setDateDb($this->date());
             $t->modify('+1 day');
             $after_date = $t->formatDate_Db();
             break;
         case 'week':
             $t->setDateDb($this->date());
             $start_date = $t->setStartWeek()->formatDate_Db();
             $end_date = $t->setEndWeek()->formatDate_Db();
             $t->setDateDb($this->date());
             $t->modify('-1 week');
             $t->setStartWeek();
             $before_date = $t->formatDate_Db();
             $t->setDateDb($this->date());
             $t->setEndWeek();
             $t->modify('+1 day');
             $after_date = $t->formatDate_Db();
             break;
         case 'month':
             $t->setDateDb($this->date());
             $start_date = $t->setStartMonth()->formatDate_Db();
             $end_date = $t->setEndMonth()->formatDate_Db();
             $month_view = $t->getMonthName() . ' ' . $t->getYear();
             $t->setDateDb($this->date());
             $t->modify('-1 month');
             $t->setStartMonth();
             $before_date = $t->formatDate_Db();
             $t->setDateDb($this->date());
             $t->setEndMonth();
             $t->modify('+1 day');
             $after_date = $t->formatDate_Db();
             break;
     }
     // $this->add_attr('class', array('nav', 'nav-pills'));
     $this->add_attr('class', array('list-inline', 'list-separated'));
     $wrap_nav_title = HC_Html_Factory::element('a')->add_attr('class', array('btn', 'btn-default'))->add_child($nav_title);
     $current_nav = HC_Html_Factory::widget('dropdown')->set_title($wrap_nav_title);
     $range_options = array();
     /* week */
     $this_params = array($this->range_param() => 'week', $this->date_param() => $start_date ? $start_date : NULL);
     $range_options['week'] = HC_Html_Factory::element('a')->add_child(HCM::__('Week'))->add_attr('href', $link->url($this_params));
     /* month */
     $this_params = array($this->range_param() => 'month', $this->date_param() => $start_date ? $start_date : NULL);
     $range_options['month'] = HC_Html_Factory::element('a')->add_child(HCM::__('Month'))->add_attr('href', $link->url($this_params));
     /* day */
     $this_params = array($this->range_param() => 'day', $this->date_param() => $start_date ? $start_date : NULL);
     $range_options['day'] = HC_Html_Factory::element('a')->add_child(HCM::__('Day'))->add_attr('href', $link->url($this_params));
     /* custom */
     $date_param = '';
     if ($start_date && $end_date) {
         $date_param = $start_date . '_' . $end_date;
     } elseif ($start_date) {
         $date_param = $start_date;
     }
     $this_params = array($this->range_param() => 'custom', $this->date_param() => $date_param ? $date_param : NULL);
     $range_options['custom'] = HC_Html_Factory::element('a')->add_child(HCM::__('Custom Range'))->add_attr('href', $link->url($this_params));
     /* upcoming */
     $this_params = array($this->range_param() => 'upcoming', $this->date_param() => NULL);
     $range_options['upcoming'] = HC_Html_Factory::element('a')->add_child(HCM::__('Upcoming'))->add_attr('href', $link->url($this_params));
     /* all */
     $this_params = array($this->range_param() => 'all', $this->date_param() => NULL);
     $range_options['all'] = HC_Html_Factory::element('a')->add_child(HCM::__('All Time'))->add_attr('href', $link->url($this_params));
     $enabled = $this->enabled();
     foreach ($range_options as $k => $v) {
         if (!in_array($k, $enabled)) {
             continue;
         }
         if ($k != $this->range()) {
             $current_nav->add_item($range_options[$k]);
         }
     }
     $this->add_item_attr('current', 'class', array('dropdown'));
     $enabled = $this->enabled();
     switch ($this->range()) {
         case 'custom':
             $this->add_item('current', $current_nav);
             /* now add form */
             if (in_array($this->range(), $enabled)) {
                 $form = HC_Lib::form()->set_input('start_date', 'date')->set_input('end_date', 'date');
                 $form->set_values(array('start_date' => $start_date, 'end_date' => $end_date));
                 $display_form = HC_Html_Factory::widget('form')->add_attr('action', $this->submit_to());
                 $display_form->add_item(HC_Html_Factory::widget('list')->add_attr('class', 'list-inline')->add_attr('class', 'list-separated')->add_item($form->input('start_date'))->add_item('-')->add_item($form->input('end_date'))->add_item(HC_Html_Factory::element('input')->add_attr('type', 'submit')->add_attr('class', array('btn', 'btn-default'))->add_attr('title', HCM::__('OK'))->add_attr('value', HCM::__('OK'))));
             } else {
                 $display_form = HC_Html_Factory::widget('list')->add_attr('class', 'list-inline')->add_attr('class', 'list-separated')->add_item($t->formatDateRange($start_date, $end_date));
             }
             $this->add_item('form', $display_form);
             break;
         case 'all':
         case 'upcoming':
             $this->add_item('current', $current_nav);
             break;
         default:
             $this->add_item('before', HC_Html_Factory::element('a')->add_attr('href', $link->url(array($this->date_param() => $before_date)))->add_attr('class', array('btn', 'btn-default'))->add_child('&lt;&lt;'));
             $this->add_item('current', $current_nav);
             $this->add_item('after', HC_Html_Factory::element('a')->add_attr('href', $link->url(array($this->date_param() => $after_date)))->add_attr('class', array('btn', 'btn-default'))->add_child('&gt;&gt;'));
             break;
     }
     $this->set_active('current');
     return parent::render();
 }
Пример #20
0
<?php

$list = HC_Html_Factory::widget('list')->add_attr('class', array('list-unstyled'));
$list->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link('shifts/zoom/index/id/' . $shift->id . '/tab/pickup'))->add_attr('class', array('hc-flatmodal-loader'))->add_attr('class', array('btn'))->add_attr('class', array('btn-success-o'))->add_attr('class', array('btn-xs'))->add_child(HCM::__('Pick Up Shift')));
echo $list->render();
Пример #21
0
if ($form) {
    $quickform_view = HC_Html_Factory::widget('module')->set_url($rootlink . '/quickform')->pass_arg(array($shifts, $this_state))->set_show_empty(TRUE)->add_attr('class', 'hc-rfr')->set_self_target(FALSE);
    foreach ($this_state as $k => $v) {
        if ($v or $v === 0) {
            $quickform_view->set_param($k, $v);
        }
    }
    $QUICKFORM = $quickform_view;
}
/* now display */
$full_out = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated');
$full_out->add_item($QUICKSTATS);
if ($QUICKFORM) {
    $full_out->add_item($QUICKFORM);
}
$out = HC_Html_Factory::widget('table')->set_engine('div');
$rid = 0;
foreach ($month_matrix as $week => $week_dates) {
    $cid = 0;
    foreach ($week_dates as $date) {
        $cell_content = NULL;
        if (isset($DATE_LABELS[$date])) {
            $cell_content = array($DATE_LABELS[$date], $CELLS[$date]);
            if ($LINKS[$date]) {
                $links = HC_Html_Factory::element('div')->add_attr('class', 'hover-visible')->add_child($LINKS[$date]);
                $cell_content[] = $links;
            }
        }
        $out->set_cell($rid, $cid, $cell_content);
        if ($cell_content === NULL) {
            $out->add_cell_attr($rid, $cid, array('class' => 'noborder'));
Пример #22
0
<?php

$header = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_item('title', HC_Html_Factory::element('h2')->add_child($object->present_title()));
/* 
$header->add_item(
	'staff',
	$object->present_user()
	);
*/
echo HC_Html::page_header($header);
Пример #23
0
<?php

$my_own = FALSE;
if (!$wrap) {
    $my_own = TRUE;
    $wrap = HC_Html_Factory::widget('list')->add_attr('class', 'list-inline')->add_attr('class', 'list-separated');
}
if ($count_fail) {
    $title = sprintf(HCM::_n('%d Conflict', '%d Conflicts', $count_fail), $count_fail);
    $item = HC_Html_Factory::element('titled', 'span')->add_attr('class', 'display-block')->add_attr('class', 'alert')->add_attr('class', 'alert-condensed2')->add_attr('class', 'alert-danger')->add_attr('class', 'text-smaller2')->add_child($title);
    $wrap->add_item($item);
}
if ($my_own) {
    if ($wrap->items()) {
        echo $wrap->render();
    }
}
Пример #24
0
<?php

$list = HC_Html_Factory::widget('list')->add_attr('class', array('list-unstyled'));
if ($shift->release_request) {
    $list->add_item(HC_Html_Factory::widget('titled', 'a')->add_attr('href', HC_Lib::link('shifts/zoom/index/id/' . $shift->id . '/tab/release'))->add_attr('class', array('hc-flatmodal-loader'))->add_attr('class', array('btn'))->add_attr('class', array('btn-xs'))->add_attr('class', array('btn-warning'))->add_child(HC_Html::icon('sign-out'))->add_child(HCM::__('Shift Release Pending')));
}
if ($list->items()) {
    echo $list->render();
}
Пример #25
0
<?php

$current_user_id = $this->auth->check();
$display_form = HC_Html_Factory::widget('form')->add_attr('action', HC_Lib::link('admin/users/update/password/' . $object->id))->add_attr('class', 'form-horizontal')->add_attr('class', 'form-condensed');
/* BUTTONS */
$buttons = HC_Html_Factory::widget('list')->add_attr('class', array('list-inline', 'list-separated'));
$buttons->add_item(HC_Html_Factory::element('input')->add_attr('type', 'submit')->add_attr('class', array('btn', 'btn-default'))->add_attr('title', HCM::__('Save'))->add_attr('value', HCM::__('Save')));
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Password'))->set_content($form->input('password')->add_attr('size', 24))->set_error($form->input('password')->error()))->add_item(HC_Html_Factory::widget('label_row')->set_label(HCM::__('Confirm Password'))->set_content($form->input('confirm_password')->add_attr('size', 24))->set_error($form->input('confirm_password')->error()));
$display_form->add_item(HC_Html_Factory::widget('label_row')->set_content($buttons));
echo $display_form->render();
Пример #26
0
 public function date($model, $vlevel = HC_PRESENTER::VIEW_HTML)
 {
     $input = HC_Html_Factory::input('recurring_date');
     $value = $input->unserialize($model->details, 'no-dates');
     $value['datestart'] = $model->date_start;
     $value['dateend'] = $model->date_end;
     $input->set_value($value);
     $dates_datails = $input->dates_details();
     switch ($vlevel) {
         case HC_PRESENTER::VIEW_HTML:
             $return = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled');
             for ($di = 0; $di < count($dates_datails); $di++) {
                 $return->add_item('dd_' . $di, $dates_datails[$di]);
                 if ($di > 0) {
                     $return->add_item_attr('dd_' . $di, 'class', 'text-muted');
                     $return->add_item_attr('dd_' . $di, 'class', 'text-smaller');
                 }
             }
             break;
         default:
             $return = join(', ', $dates_datails);
             break;
     }
     return $return;
 }
Пример #27
0
<?php

$t = HC_Lib::time();
$table = HC_Html_Factory::widget('table')->add_attr('class', 'table')->add_attr('class', 'table-striped')->add_attr('class', 'table-condensed');
$header = array();
$header[] = HCM::__('Date and Time');
if (!$user_id) {
    $header[] = HCM::__('User');
}
$header[] = 'IP';
$table->set_header($header);
foreach ($entries as $e) {
    $row = array();
    $t->setTimestamp($e->action_time);
    $this_view = '';
    $this_view .= $t->formatWeekdayShort();
    $this_view .= ', ';
    $this_view .= $t->formatDate();
    $this_view .= ' ';
    $this_view .= $t->formatTime();
    $row[] = $this_view;
    if (!$user_id) {
        $row[] = $e->user->present_title();
    }
    $row[] = $e->remote_ip;
    $table->add_row($row);
}
echo $table->render();
Пример #28
0
 public function render()
 {
     $panel = $this->panel();
     $out = HC_Html_Factory::element('ul')->add_attr('class', 'list-unstyled')->add_attr('class', 'collapse-panel');
     $attr = $this->attr();
     foreach ($attr as $k => $v) {
         $out->add_attr($k, $v);
     }
     if ($panel) {
         if (is_array($panel)) {
             foreach ($panel as $pnl) {
                 $out->add_attr('class', array('panel', 'panel-' . $pnl));
             }
         } else {
             $out->add_attr('class', array('panel', 'panel-' . $panel));
         }
     }
     if ($this->indented()) {
         $out->add_attr('class', 'list-indented');
     }
     /* build trigger */
     $title = $this->title();
     if (is_object($title) && $title->tag() == 'a') {
         $trigger = $title;
     } else {
         $full_title = $title;
         $title = strip_tags($title);
         $title = trim($title);
         $trigger = HC_Html_Factory::widget('titled', 'a')->add_child($full_title);
     }
     $trigger->add_attr('href', '#')->add_attr('class', 'hc-collapse-next')->add_attr('class', 'display-block');
     if (!$this->no_caret()) {
         $trigger->add_child(' ')->add_child(HC_Html_Factory::element('b')->add_attr('class', 'caret'));
     }
     $wrap_trigger = HC_Html_Factory::element('li')->add_child($trigger);
     if ($panel) {
         $wrap_trigger->add_attr('class', 'panel-heading');
     }
     $out->add_child($wrap_trigger);
     $content = HC_Html_Factory::element('li')->add_attr('class', 'collapse');
     if ($panel) {
         $content->add_attr('class', 'panel-collapse');
     }
     if ($this->default_in()) {
         $content->add_attr('class', 'in');
     }
     if ($panel) {
         $content->add_child(HC_Html_Factory::element('div')->add_attr('class', 'panel-body')->add_child($this->content()));
     } else {
         $content->add_child($this->content());
     }
     $out->add_child($content);
     return $out->render();
 }
Пример #29
0
<?php

$user_level = $user ? $user->level : 0;
$menu = HC_Html_Factory::widget('main_menu');
$menu->set_menu($menu_conf);
$menu->set_disabled($disabled_panels);
$menu->set_current($this_uri);
echo $menu->render($user_level . '/');
Пример #30
0
 function render()
 {
     $sh = $this->shift();
     $t = HC_Lib::time();
     $titles = array();
     $iknow = $this->iknow();
     $wide = $this->wide();
     $use_color = FALSE;
     $use_color = TRUE;
     if ($wide && $wide === 'mini') {
         $use_color = TRUE;
     }
     if (in_array($sh->type, array($sh->_const("TYPE_TIMEOFF")))) {
         $display = array('date', 'time', 'user', 'location');
     } else {
         if (!$wide or $wide === 'mini') {
             $display = array('date', 'time', 'location', 'user');
         } elseif ($wide) {
             $display = array('date', 'time', 'user', 'location');
         }
     }
     foreach ($iknow as $ik) {
         $display = HC_Lib::remove_from_array($display, $ik);
     }
     // if( in_array($sh->type, array($sh->_const("TYPE_TIMEOFF"))) ){
     // $display = HC_Lib::remove_from_array($display, 'location');
     // }
     foreach ($display as $ds) {
         $title_view = '';
         switch ($ds) {
             case 'date':
                 $title_view = $sh->present_date(HC_PRESENTER::VIEW_RAW);
                 break;
             case 'time':
                 $title_view = $sh->present_time();
                 break;
             case 'location':
                 if (in_array($sh->type, array($sh->_const("TYPE_TIMEOFF")))) {
                     $title_view = '';
                     // $title_view = HCM::__('Timeoff');
                     // $title_view = $sh->present_location();
                 } else {
                     $title_view = $sh->present_location();
                 }
                 break;
             case 'user':
                 if ($sh->type == $sh->_const('TYPE_TIMEOFF') && !in_array('time', $display)) {
                     $title_view = $sh->present_type(HC_PRESENTER::VIEW_HTML_ICON) . $sh->present_user(HC_PRESENTER::VIEW_RAW);
                 } else {
                     // $titles[] = $sh->present_user();
                     if ($sh->user_id) {
                         $title_view = $sh->present_user(HC_PRESENTER::VIEW_RAW);
                     } else {
                         $title_view = $sh->present_user();
                     }
                 }
                 break;
         }
         // if( $title_view ){
         $titles[] = $title_view;
         // }
     }
     $wrap = HC_Html_Factory::element('div')->add_attr('class', array('alert', 'display-block'))->add_attr('class', array('alert-default-o'))->add_attr('class', array('no-underline'))->add_attr('class', array('alert-condensed2'))->add_attr('class', array('text-smaller'))->add_attr('class', array('squeeze-in'));
     foreach ($sh->present_status_class() as $status_class) {
         // $wrap->add_attr('class', 'alert-' . $status_class);
     }
     /* background color depends on location */
     if ($use_color) {
         $color = $sh->location->present_color();
     } else {
         $type = $sh->type;
         switch ($type) {
             case $sh->_const('TYPE_TIMEOFF'):
                 $wrap->add_attr('class', array('alert-archive'));
                 $color = '#ddd';
                 break;
             default:
                 $wrap->add_attr('class', array('alert-success-o'));
                 $color = '#dff0d8';
                 break;
         }
     }
     if ($sh->status == $sh->_const('STATUS_DRAFT')) {
         $color1 = HC_Lib::adjust_color_brightness($color, 0);
         $color2 = HC_Lib::adjust_color_brightness($color, 20);
         // $color1 = '#fff';
         // $color2 = '#eee';
         $wrap->add_attr('style', "background: repeating-linear-gradient(\r\n\t\t\t\t\t-45deg,\r\n\t\t\t\t\t{$color1},\r\n\t\t\t\t\t{$color1} 6px,\r\n\t\t\t\t\t{$color2} 6px,\r\n\t\t\t\t\t{$color2} 12px\r\n\t\t\t\t\t);\r\n\t\t\t\t");
     } else {
         $wrap->add_attr('style', 'background-color: ' . $color . ';');
         // $wrap->add_attr('class', 'alert-success');
     }
     if (!$sh->user_id) {
         $wrap->add_attr('class', 'hc-red-triangled');
     }
     //		echo $color;
     /* ID */
     if (in_array('id', $iknow)) {
         $wrap->add_child($sh->present_id());
     }
     /* build link title */
     $nolink = $this->nolink();
     $new_window = $this->new_window();
     $a_link = HC_Html_Factory::widget('titled', 'a');
     $link_to = 'shifts/zoom/index/id/' . $sh->id;
     $a_link->add_attr('href', HC_Lib::link($link_to)->url());
     if (!$new_window) {
         $a_link->add_attr('class', 'hc-flatmodal-loader');
     } else {
         $a_link->add_attr('target', '_blank');
         $a_link->add_attr('class', 'hc-parent-loader');
     }
     if ($nolink) {
         $a_title = HC_Html_Factory::widget('titled', 'span');
     } else {
         $a_title = HC_Html_Factory::widget('titled', 'a');
     }
     $a_title = HC_Html_Factory::widget('titled', 'span');
     $a_title->add_attr('class', array('squeeze-in'));
     // $a_title->add_attr('style', 'border: red 1px solid;');
     // $a_title->add_attr('style', 'border-color: ' . $sh->location->present_color());
     if ($wide === 'mini') {
         if (!$nolink) {
             $final_ttl = clone $a_link;
             $final_ttl->add_child('&nbsp;')->add_attr('style', 'display: block;');
             $final_ttl->add_attr('title', join(' ', $titles));
         }
         $a_title->add_child($final_ttl);
     } else {
         if (count($display) > 1) {
             if ($wide) {
                 $titles2 = HC_Html_Factory::widget('grid');
                 $titles2->set_slim();
                 $grid_width = array(2 => 6, 3 => 4, 4 => 3, 5 => 2, 6 => 2);
                 $grid_width = isset($grid_width[count($display)]) ? $grid_width[count($display)] : 2;
                 for ($ti = 0; $ti < count($titles); $ti++) {
                     $ttl = $titles[$ti];
                     // next title is empty?
                     if ($ti < count($titles) - 1 && !strlen($titles[$ti + 1])) {
                         $ti++;
                         $grid_width += $grid_width;
                     }
                     $final_ttl = $ttl;
                     if (!$nolink) {
                         $final_ttl = clone $a_link;
                         $final_ttl->add_child($ttl);
                     }
                     $titles2->add_item($final_ttl, $grid_width, array('class' => 'squeeze-in'));
                 }
             } else {
                 $titles2 = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled');
                 $this_index = 0;
                 foreach ($titles as $ttl) {
                     if (!strlen($ttl)) {
                         continue;
                     }
                     $final_ttl = $ttl;
                     if (!$nolink) {
                         $final_ttl = clone $a_link;
                         $final_ttl->add_child($ttl);
                     }
                     $titles2->add_item($this_index, $final_ttl);
                     $titles2->add_item_attr($ttl, 'class', array('squeeze-in'));
                     $this_index++;
                 }
             }
             $a_title->add_attr('title', join(' ', $titles));
             $a_title->add_child($titles2);
         } else {
             $final_ttl = $titles;
             if (!$nolink) {
                 $final_ttl = clone $a_link;
                 $final_ttl->add_child($titles);
             }
             $final_ttl->add_attr('title', join(' ', $titles));
             $a_title->add_child($final_ttl);
         }
     }
     $wrap->add_child($a_title);
     /* EXTENSIONS */
     $extensions = HC_App::extensions();
     $more_content = $extensions->set_skip($iknow)->run('shifts/quickview', $sh, $wrap);
     if ($wide !== 'mini') {
         if ($more_content) {
             $more_wrap = HC_Html_Factory::widget('list')->add_attr('class', 'list-unstyled')->add_attr('class', 'list-separated')->add_attr('class', 'text-small');
             $added = 0;
             foreach ($more_content as $mck => $mc) {
                 if ($mck && in_array($mck, $iknow)) {
                     continue;
                 }
                 $more_wrap->add_item($mc);
                 $added++;
             }
             if ($added) {
                 $wrap->add_child($more_wrap);
             }
         }
     }
     /* THIS CHILDREN */
     if ($wide !== 'mini') {
         $children = $this->children();
         foreach ($children as $child) {
             $wrap->add_child($child);
         }
     }
     $wrap->add_attr('class', 'common-link-parent');
     return $wrap->render();
 }