check_feature(['feature_time_sheet','feature_trackers']); $access->check_permission_either(['tiki_p_view_trackers', 'tiki_p_create_tracker_items']); global $user, $prefs, $tiki_p_admin; $auto_query_args = [ 'all', 'profile', 'page', 'list' ]; $trackerId = (int)TikiLib::lib('trk')->get_tracker_by_name('Time sheet'); $smarty->assign("tiki_p_admin", $tiki_p_admin); $smarty->assign("timeSheetProfileLoaded", $trackerId > 0 ? true : false); $projectList = Tracker_Query::tracker("Project list")->byName()->query(); if (isset($_REQUEST['all'])) { //all views all sheet items $smarty->assign("all", true); $timeSheet = Tracker_Query::tracker("Time sheet") ->byName() ->query(); } else {//views only your items $smarty->assign("all", false); $timeSheet = Tracker_Query::tracker("Time sheet") ->byName() ->filter(["field" => "Done by", "value" => $user]) ->query(); } if (isset($projectList)) { if (isset($_REQUEST['save'])) { echo json_encode( $timeSheetNewInputs = Tracker_Query::tracker("Time sheet") ->byName() ->queryInput() ); die; } $smarty->assign("projectList", $projectList); $smarty->assign("timeSheet", $timeSheet); } TikiLib::lib("sheet")->setup_jquery_sheet(); $headerlib = TikiLib::lib("header") ->add_cssfile("vendor_bundled/vendor/jquery/jtrack/css/jtrack.css") ->add_jsfile("vendor_bundled/vendor/jquery/jtrack/js/domcached-0.1-jquery.js") ->add_jsfile("vendor_bundled/vendor/jquery/jtrack/js/jtrack.js") ->add_jq_onready( "jTask.init(); $.timesheetSpreadsheet = function() { var table = $('').attr('title', tr('Local Cache (Not Committed)')); table.append(''); var rowI = 1; for (var namespace in $.DOMCached.getStorage()) { var row = $('').appendTo(table); row.append(''); row.append(''); row.append(''); rowI++; } var row = $('').appendTo(table); row.append(''); row.append('
SummaryEstimateTime Spent
' + namespace + '' + $.DOMCached.get('estimate', namespace) + '
Totals'); row.append(''); $('#timesheetSpreadsheet').siblings().remove(); var jS = $('#timesheetSpreadsheet').getSheet(); if (jS) { $('#timesheetSpreadsheet') .off('visible') .visible(function() { jS.openSheet(table); }); } else { $('#timesheetSpreadsheet') .visible(function() { $(this).sheet({ buildSheet: table, editable: false, height: $('#jtrack-holder').height() }); }); } }; $('.jtrack-create,.jtrack-update,.jtrack-remove,.jtrack-remove-all,.jtrack-cancel,.jtrack-power,#jtrack-button-remove,#jtrack-button-remove-all,#jtrack-button-create,#jtrack-button-update').on('click', function() { $.timesheetSpreadsheet(); }); $.timesheetSpreadsheet(); $('#timeSheetSaved').visible(function() { $(this).sheet({ buildSheet: true, editable: false, height: $('#jtrack-holder').height() }); }); $('#timeSheetCommit').click(function() { $('#timeSheetTabs').tikiModal(tr('Committing...')); var stack = []; $.getJSON('tiki-timesheet.php?save', function(inputs) { for (var namespace in $.DOMCached.getStorage()) { var summary = namespace + '', time = $.DOMCached.get('timer', summary) / 60; stack.push(summary); var form = $('
').submit(function() { var fields = ''; $.each(form.serializeArray(), function() { fields += '&fields[' + this.name + ']=' + this.value; }); $.post('tiki-ajax_services.php?controller=tracker&trackerId=$trackerId&action=insert_item' + fields,function() { $.DOMCached.deleteNamespace(namespace); stack.pop(); if (stack.length == 0) { document.location = document.location + ''; } }) .error(function() { $('#timeSheetTabs').tikiModal(); alert(tr('Could not save')); }); return false; }); var input = { 'Summary': $(inputs['Summary']), 'Description': $(inputs['Description']), 'Amount of time spent': $(inputs['Amount of time spent']), 'Done by': $(inputs['Done by']) }; input['Summary'].val(summary); input['Amount of time spent'].val(time); input['Done by'].val('" . addslashes($user) . "'); form.append(input['Summary']); form.append(input['Description']); form.append(input['Amount of time spent']); form.append(input['Done by']); form.submit(); } }); return false; }); $('#timeSheetTabs') .width($('#timeSheetTabs').parent().width()) .tabs();" ); $smarty->assign('mid', 'tiki-timesheet.tpl'); // use tiki_full to include include CSS and JavaScript $smarty->display("tiki.tpl");