From: <rob...@us...> - 2011-01-20 21:58:38
|
Revision: 32050 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=32050&view=rev Author: robertplummer Date: 2011-01-20 21:58:31 +0000 (Thu, 20 Jan 2011) Log Message: ----------- [FIX] Fixed sheet history to load correctly after moving all sheet required files [ADD] ajax edit for standard sheet, it is AWESOME! Modified Paths: -------------- trunk/lib/sheet/grid.php trunk/templates/tiki-view_sheets.tpl trunk/tiki-history_sheets.php trunk/tiki-view_sheets.php Modified: trunk/lib/sheet/grid.php =================================================================== --- trunk/lib/sheet/grid.php 2011-01-20 20:53:29 UTC (rev 32049) +++ trunk/lib/sheet/grid.php 2011-01-20 21:58:31 UTC (rev 32050) @@ -2301,7 +2301,7 @@ $headerlib->add_jsfile( 'lib/jquery/jquery.sheet/plugins/g.raphael-min.js', 'external' ); $headerlib->add_jq_onready( ' // override saveSheet on jQuery.sheet for tiki specific export - $.sheet.saveSheet = function( url, redirect ) { + $.sheet.saveSheet = function( url, redirect, fn ) { $( $.sheet.instance ).each( function( i ){ if (typeof redirect === "undefined") { redirect = false; } // not set to 0 by default in case AJAX has caused a spurious one to appear @@ -2324,6 +2324,11 @@ beforeSend: function() { window.showFeedback("Saving", 10000); }, success: function(data) { setDirty(false); + if (fn) { + if($.isFunction(fn)) { + fn(); + } + } window.showFeedback(data, 2000, redirect); } }); @@ -2433,18 +2438,43 @@ colMargin: 20, //beefed up colMargin because the default size was too small for font height: $(window).height() * 0.8 }; - - $.sheet.after = function(o) { - window.toggleFullScreen = function(areaname) { - o.sheetInstance.toggleFullScreen(); - }; - if (jqueryTiki.ui) { - if (typeof ajaxLoadingShow === "function") { - ajaxLoadingHide(); - } - } + $.sheet.manageState = function(tikiSheet, toggleEdit, parse) { + if (toggleEdit) { + $.get("tiki-view_sheets.php?sheetId=" + tikiSheet.id + "&sheetonly=y&parse=" + parse, function (o) { + tikiSheet.sheetInstance.saveSheet = function(){}; + tikiSheet.sheetInstance.toggleState(o); + $.sheet.manageState(tikiSheet); + }); + } else { + if (tikiSheet.sheetInstance.s.editable) { + $("#jSheetControls").show(); + $("#saveState").show(); + $("#editState").hide(); + } else { + $("#jSheetControls").hide(); + $("#saveState").hide(); + $("#editState").show(); + } + } }; + + window.toggleFullScreen = function(areaname) { + tikiSheet.sheetInstance.toggleFullScreen(); + }; + + window.showFeedback = function(message, delay, redirect) { + if (typeof delay == "undefined") { delay = 5000; } + if (typeof redirect == "undefined") { redirect = false; } + $fbsp = $("#feedback span"); + $fbsp.html(message).show(); + window.setTimeout( function () { $fbsp.fadeOut("slow", function () { $fbsp.html(" "); }); }, delay); + // if called from save button via saveSheet:success, then exit edit page mode + if (redirect) { + window.setTimeout( function () { $fbsp.html("Redirecting...").show(); }, 1000); + window.setTimeout( function () { window.location.replace(window.location.href.replace("parse=edit", "parse=y")); }, 1500); + } + }; ' ); $this->setupJQuerySheetFiles = true; } Modified: trunk/templates/tiki-view_sheets.tpl =================================================================== --- trunk/templates/tiki-view_sheets.tpl 2011-01-20 20:53:29 UTC (rev 32049) +++ trunk/templates/tiki-view_sheets.tpl 2011-01-20 21:58:31 UTC (rev 32050) @@ -15,56 +15,57 @@ <div id="feedback" style="height: 1.5em; margin-left: .2em"><span></span></div> <div class="navbar"> - {if $tiki_p_view_sheet eq 'y' || $tiki_p_admin eq 'y'} - {button href="tiki-sheets.php" _text="{tr}List Sheets{/tr}"} - {/if} - - {if $objectperms->edit_sheet} - {if $editconflict eq 'y'} - {assign var="uWarning" value="<br />{tr}Already being edited by{/tr} $semUser"} - {else} - {assign var="uWarning" value=""} + <span id="saveState"> + {button _id="save_button" _text="{tr}Save{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _class="" _title="{tr}Tiki Sheet{/tr} | {tr}Save current spreadsheet{/tr}"} + {button _id="cancel_button" _text="{tr}Cancel{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _class="" _title="{tr}Tiki Sheet{/tr} | {tr}Cancel editing current spreadsheet{/tr}"} + </span> + <span id="editState"> + {button _id="edit_button" _text="{tr}Edit{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" parse="edit" _class="" _title="{tr}New jQuery.sheet based editing{/tr}"} + + {if $tiki_p_view_sheet eq 'y' || $tiki_p_admin eq 'y'} + {button href="tiki-sheets.php" _text="{tr}List Sheets{/tr}"} {/if} - {if $editReload} - {button _id="edit_button" _text="{tr}Edit{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _class="" parse="edit" editSheet="y" _auto_args="*" _title="{tr}New jQuery.sheet based editing{/tr}"|cat:$uWarning} - {else} - {button _id="save_button" _text="{tr}Save{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _class="" _title="{tr}Tiki Sheet{/tr} | {tr}Save current spreadsheet{/tr}"} - {button _id="edit_button" _text="{tr}Edit{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _class="" _title="{tr}New jQuery.sheet based editing{/tr}"|cat:$uWarning} + + {if $objectperms->edit_sheet} + {if $editconflict eq 'y'} + {assign var="uWarning" value="<br />{tr}Already being edited by{/tr} $semUser"} + {else} + {assign var="uWarning" value=""} + {/if} + {jq notonready=true}var editSheetButtonLabel2="{tr}Cancel{/tr}";{/jq} + {if $prefs.feature_contribution eq 'y'} {include file='contribution.tpl'} {/if} {/if} - {/if} + + {if $parseValues eq 'y'} + {if $editReload eq 'y'} + {button parse="n" _text="{tr}No parse{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _auto_args="*"} + {else} + {button parse="y" _text="{tr}Parse{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _auto_args="*"} + {/if} + {/if} - {if $parseValues eq 'y'} - {if $smarty.request.parse eq 'y'} - {button parse="n" _text="{tr}No parse{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _auto_args="*"} - {else} - {button parse="y" _text="{tr}Parse{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _auto_args="*"} + {if $objectperms->view_sheet_history} + {button href="tiki-history_sheets.php?sheetId=$sheetId" _text="{tr}History{/tr}"} {/if} - {/if} - {if $smarty.request.simple eq 'y'} - {button simple="n" _text="{tr}Spreadsheet{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _auto_args="*"} - {else} - {button simple="y" _text="{tr}Simple{/tr}" _htmlelement="role_main" _template="tiki-view_sheets.tpl" sheetId="$sheetId" _auto_args="*"} - {/if} + + {if $objectperms->view_sheet} + {button href="tiki-export_sheet.php?sheetId=$sheetId" _text="{tr}Export{/tr}"} + {/if} + + {if $objectperms->edit_sheet} + {button href="tiki-import_sheet.php?sheetId=$sheetId" _text="{tr}Import{/tr}"} + {/if} + + {if $chart_enabled eq 'y'} + {button href="tiki-graph_sheet.php?sheetId=$sheetId" _text="{tr}Graph{/tr}"} + {/if} + </span> +</div> - {if $objectperms->view_sheet_history} - {button href="tiki-history_sheets.php?sheetId=$sheetId" _text="{tr}History{/tr}"} - {/if} - - {if $objectperms->view_sheet} - {button href="tiki-export_sheet.php?sheetId=$sheetId" _text="{tr}Export{/tr}"} - {/if} - - {if $objectperms->edit_sheet} - {button href="tiki-import_sheet.php?sheetId=$sheetId" _text="{tr}Import{/tr}"} - {/if} - - {if $chart_enabled eq 'y'} - {button href="tiki-graph_sheet.php?sheetId=$sheetId" _text="{tr}Graph{/tr}"} - {/if} - +<div id="sheetTools" style="display: none;"> + <div style="text-align: left;">{toolbars area_id="jSheetControls_formula_0"}</div> </div> -<div id="sheetTools" style="display: none;"><div style="text-align: left;">{toolbars area_id="jSheetControls_formula_0"}</div></div> Modified: trunk/tiki-history_sheets.php =================================================================== --- trunk/tiki-history_sheets.php 2011-01-20 20:53:29 UTC (rev 32049) +++ trunk/tiki-history_sheets.php 2011-01-20 21:58:31 UTC (rev 32050) @@ -82,19 +82,17 @@ $smarty->assign( 'grid_content', diffSheetsAsHTML($_REQUEST["sheetId"], $dates) ); $headerlib->add_jq_onready(" - if (typeof ajaxLoadingShow == 'function') { - ajaxLoadingShow('role_main'); - } + $.sheet.tikiOptions = $.extend($.sheet.tikiOptions, { + editable: false, + fnPaneScroll: $.sheet.paneScrollLocker, + fnSwitchSheet: $.sheet.switchSheetLocker + }); - setTimeout (function () { - $('div.tiki_sheet').tiki('sheet', '',{ - editable: false, - fnPaneScroll: $.sheet.paneScrollLocker, - fnSwitchSheet: $.sheet.switchSheetLocker, - height: 400 - }); - setValuesForCompareSheet('$sheetIndexes[0]','$sheetIndexes[1]'); - }, 500); + $('div.tiki_sheet').each(function() { + $(this).sheet($.sheet.tikiOptions); + }); + + setValuesForCompareSheet('$sheetIndexes[0]','$sheetIndexes[1]'); ", 500); if ( $tiki_sheet_div_style) { Modified: trunk/tiki-view_sheets.php =================================================================== --- trunk/tiki-view_sheets.php 2011-01-20 20:53:29 UTC (rev 32049) +++ trunk/tiki-view_sheets.php 2011-01-20 21:58:31 UTC (rev 32050) @@ -44,10 +44,6 @@ } $smarty->assign('objectperms', $objectperms); -if (!isset($_REQUEST['parse'])) { - $_REQUEST['parse'] = 'y'; -} - if (isset($_REQUEST['height'])) { $tiki_sheet_div_style .= 'height:'.$_REQUEST['height'].';'; } @@ -56,32 +52,20 @@ $smarty->assign('tiki_sheet_div_style', $tiki_sheet_div_style); } -if ($objectperms->edit_sheet && $_REQUEST['parse'] == 'edit') { // edit button clicked in parse mode - $_REQUEST['parse'] = 'n'; - $headerlib->add_jq_onready(' - if (typeof ajaxLoadingShow == "function") { - ajaxLoadingShow("role_main"); - } - setTimeout (function () { $("#edit_button").click(); }, 500); - ', 500); -} else if (!isset($_REQUEST['simple']) || $_REQUEST['simple'] == 'n') { - $headerlib->add_jq_onready(' - if (typeof ajaxLoadingShow == "function") { - ajaxLoadingShow("role_main"); - } - - setTimeout (function () { - $.extend($.sheet.tikiOptions, { - editable: false - }); - - $.sheet.after( - $("div.tiki_sheet").sheet($.sheet.tikiOptions) - ); - - }, 500); - ', 500); +if (!isset($_REQUEST['parse'])) { + $_REQUEST['parse'] = 'y'; } +if (isset($_REQUEST['parse'])) { + switch($_REQUEST['parse']) { + case 'edit': + $smarty->assign('edit', true); + break; + case 'y': + $smarty->assign('editReload', 'y'); + break; + } +} + $smarty->assign('sheetId', $_REQUEST["sheetId"]); $smarty->assign('chart_enabled', (function_exists('imagepng') || function_exists('pdf_new')) ? 'y' : 'n'); $smarty->assign('title', $info['title']); @@ -94,7 +78,7 @@ $smarty->display("error.tpl"); die; } -if ($_SERVER['REQUEST_METHOD'] == 'POST' && !isset($_POST['xjxfun'])) { +if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!$objectperms->edit_sheet && $tiki_p_admin != 'y') { $smarty->assign('msg', tra('Permission denied')); $smarty->display("error.tpl"); @@ -178,10 +162,20 @@ $smarty->assign('read_date', $date); $handler->setReadDate($date); $grid->import($handler); + + //ensure that sheet isn't being edited, then parse values if needed + $grid->parseValues = ($grid->parseValues && $_REQUEST['parse'] != 'edit' ? true : false); + $tableHtml[$i] = $grid->getTableHtml( true, $date ); $i++; } + if (isset($_REQUEST['sheetonly']) && $_REQUEST['sheetonly'] == 'y') { + foreach( $tableHtml as $table ) { + echo $table; + } + die; + } $smarty->assign('grid_content', $tableHtml); $handler = new TikiSheetDatabaseHandler($_REQUEST["sheetId"]); $grid->import($handler); @@ -191,75 +185,32 @@ $contributionItemId = $_REQUEST['sheetId']; include_once ('contribution.php'); } -// need to be in non-parsed mode to edit the sheet -if ($_REQUEST['parse'] == 'y') { - $smarty->assign('editReload', true); -} else { - $smarty->assign('editReload', false); - $headerlib->add_jq_onready(' - $("#edit_button").click( function () { - var $a = $(this).find("a"); - if ($a.text() != editSheetButtonLabel2) { - $.sheet.after( - $("div.tiki_sheet") - .sheet($.sheet.tikiOptions) - ); - - $a.attr("temp", $a.text()); - $a.text(editSheetButtonLabel2); - $("#edit_button").parent().find(".button:not(#edit_button), .rbox").hide(); - $("#save_button").show(); - } else { - var isDirty = false; - $($.sheet.instance).each( function(i){ - if (this.isDirty) { - isDirty = true; - } - }); - - if (!isDirty ? true : confirm("Are you sure you want to finish editing? All unsaved changes will be lost.")) { - window.location.replace(window.location.href.replace("parse=edit", "parse=y")); - } - } + +$headerlib->add_jq_onready(' + $.sheet.tikiOptions = $.extend($.sheet.tikiOptions, { + editable: ("'. $_REQUEST['parse'].'" == "edit" ? true : false) + }); + + var tikiSheet = $("div.tiki_sheet").sheet($.sheet.tikiOptions); + tikiSheet.id = "'.$_REQUEST['sheetId'].'"; + + $.sheet.manageState(tikiSheet); + + $("#edit_button a") + .click(function() { + $.sheet.manageState(tikiSheet, "y", "edit"); return false; }); - - $("#save_button").click( function () { - $($.sheet.instance).each( function(i){ - this.evt.cellEditDone(); + + $("#save_button a") + .click( function () { + $.sheet.saveSheet("tiki-view_sheets.php?sheetId=" + tikiSheet.id, false, function() { + $.sheet.manageState(tikiSheet, "y", ""); }); - $.sheet.saveSheet("tiki-view_sheets.php?sheetId='.$_REQUEST['sheetId'].'", true); - return false; - }).hide(); - - window.showFeedback = function(message, delay, redirect) { - if (typeof delay == "undefined") { delay = 5000; } - if (typeof redirect == "undefined") { redirect = false; } - $fbsp = $("#feedback span"); - $fbsp.html(message).show(); - window.setTimeout( function () { $fbsp.fadeOut("slow", function () { $fbsp.html(" "); }); }, delay); - // if called from save button via saveSheet:success, then exit edit page mode - if (redirect) { - window.setTimeout( function () { $fbsp.html("Redirecting...").show(); }, 1000); - window.setTimeout( function () { window.location.replace(window.location.href.replace("parse=edit", "parse=y")); }, 1500); - } - }; - - window.setEditable = function(isEditable) { - $.sheet.instance[0].s.editable = isEditable; - if (isEditable) { - $("#save_button").show(); - //$("#edit_button a").click( function () { window.location.replace(window.location.href); return false; } ); - } else { - setTimeout( function(){ $("#jSheetControls").hide(); }, 200); - $("#save_button").hide(); - $("#edit_button a").click( function () { window.location.replace(window.location.href); return false; } ); - } - }; + }); '); -} $smarty->assign('parseValues', $grid->parseValues); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |