my $stmS = "SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT from LOG WHERE";
my $stmE = " ORDER BY DATE DESC;";
my $stmD = "";
-if ( !$rs_dat_to ) {
- $rs_dat_to = 'now';
+my $sm_reset_all;
+
+
+my $lang = Date::Language->new($LANGUAGE);
+my $today = DateTime->now;
+$today->set_time_zone($TIME_ZONE);
+
+
+
+if ( !$rs_dat_to && $rs_dat_from ) {
+ my $dur = $today;
+ $dur->add(months => 1);
+ $rs_dat_to = DateTime::Format::SQLite->parse_datetime( $dur );
}
if ( $rs_dat_from && $rs_dat_to ) {
$stmD =qq( DATE BETWEEN date('$rs_dat_from') AND date('$rs_dat_to') );
}
-
+#Toggle if search deployed.
my $toggle = "";
-if ( $rs_keys || $rs_cat_idx || $stmD ) { $toggle = 1; }
+if ( $rs_keys || $rs_cat_idx || $stmD || $prm_vc > 0) { $toggle = 1; }
$session->expire($SESSN_EXPR);
my $rv;
my $st;
-my $lang = Date::Language->new($LANGUAGE);
-my $today = DateTime->now;
-$today->set_time_zone($TIME_ZONE);
-
my $stmtCat = "SELECT * FROM CAT;";
my $stmt =
"SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT, RTF FROM LOG ORDER BY DATE DESC, rowid DESC;";
while ( my @row = $st->fetchrow_array() ) {
if ( $row[0] == $c_sel ) {
- $cats =
- $cats
- . '<option selected value="'
- . $row[0] . '">'
- . $row[1]
- . '</option>\n';
+ $cats .= '<option selected value="'. $row[0] . '">'. $row[1]. '</option>\n';
}
else {
- $cats =
- $cats
- . '<option value="'
- . $row[0] . '">'
- . $row[1]
- . '</option>\n';
+ $cats .= '<option value="'. $row[0] . '">'. $row[1]. '</option>\n';
}
if ( $row[0] == $prm_vc ) {
- $cats_v =
- $cats_v
- . '<option selected value="'
- . $row[0] . '">'
- . $row[1]
- . '</option>\n';
+ $cats_v .= '<option selected value="'. $row[0] . '">'. $row[1]. '</option>\n';
}
else {
- $cats_v =
- $cats_v
- . '<option value="'
- . $row[0] . '">'
- . $row[1]
- . '</option>\n';
+ $cats_v .= '<option value="'. $row[0] . '">'. $row[1]. '</option>\n';
}
$hshCats{ $row[0] } = $row[1];
$desc{ $row[0] } = $row[2];
}
-$cats = $cats . '</select>';
+$cats .= '</select>';
my $cat_descriptions = "";
for my $key ( keys %desc ) {
</tr>);
if (defined $prm_vc) { #view category form selection
- $rs_cat_idx = $prm_vc;
+ $rs_cat_idx = $prm_vc;
}
-if ($rs_keys) {
+if ($rs_keys && $rs_keys ne '*') {
my @keywords = split / /, $rs_keys;
if ($rs_cat_idx) {
my $log = $row[3];
my $am = &cam($row[4]);
my $rtf = $row[5];
+
if($ct eq 'Expense'){
$exp += $row[4];
}else{
$dtf = $lang->time2str( "%d %b %Y", $dt->epoch, $TIME_ZONE);
}
+ if($rtf > 0){
+ $log .= qq(<hr><button id="btnRTF" onClick="return loadRTF(true, $id);">Show Document</button>);
+ }
$tbl .= qq(<tr class="r$tfId">
<td width="15%">$dtf<input id="y$id" type="hidden" value="$dty"/></td>
}
$tbl .=
-qq(<tr class="r0"><td colspan="2">[Show All -> <a id="menu_close" href="#" onclick="return showAll();"><span class="ui-icon ui-icon-heart"></span></a>]
+qq(<tr class="r0"><td colspan="2">[Show Again The Hidden By -> <a id="menu_close" href="#" onclick="return showAll();"><span class="ui-icon ui-icon-heart"></span></a>]
<a href="#top">↟</a></td>
<td colspan="4" align="right">
<input type="hidden" name="datediff" id="datediff" value="0"/>
<td><input type="submit" value="Search"/></td></tr>
</form>
</TABLE>);
-my $COLLAPSED_LOG = 's';
+
my ($sp1,$sp2);
$sp1 = '<span class="ui-icon ui-icon-heart" style="float:right;"></span>';
-$sp2 = qq(<span class="ui-icon ui-icon-circle-triangle-$COLLAPSED_LOG" style="float:right;"></span>);
+$sp2 = qq(<span class="ui-icon ui-icon-circle-triangle-s" style="float:right;"></span>);
my $frm = qq(<a name="top"></a>
</td>
<td align="right">
<div style="float: right;"><button id="btn_srch" onclick="toggleSearch(); return false;">Show Search</button>
- <input id="log_submit" type="submit" onclick="saveRTF(0, 'store');" value="Submit"/></div>
+ <input id="log_submit" type="submit" onclick="saveRTF(-1, 'store');" value="Submit"/></div>
</td>
</tr>
<tr class="collpsd"><td colspan="3"></td></tr>
</tr>
<tr class="collpsd"><td align="right"><b>View by Date:</b></td>
<td align="left">
- From: <input name="v_from" type="text" size="16"/></td><td align="left">
- To: <input name="v_to" type="text" size="16"/>
+ From: <input name="v_from" type="text" size="16" value="$rs_dat_from"/></td><td align="left">
+ To: <input name="v_to" type="text" size="16" value="$rs_dat_to"/>
<td align="left"><button id="btn_dat" onclick="viewByDate(this);">View</button></td>
</tr>
<tr class="collpsd"><td align="right"><b>Keywords:</b></td>
<input id="rs_keys" name="keywords" type="text" size="60" value="$rs_keys"/></td>
<td align="left"><input type="submit" value="Search" align="left"></td></tr>);
-if ( $rs_keys || $rs_cat_idx || $stmD ) {
+
+if ( ($rs_keys && $rs_keys ne '*') || $rs_cat_idx || $stmD ) {
+ $sm_reset_all = '<a class="a_" onclick="resetView();">Reset View</a><hr>';
$srh .= '<tr class="collpsd"><td align="left" colspan="3"></td>
- <td><button onClick="resetView()" stule="align:left">Reset Whole View</button></td></tr>';
+ <td align="left"><button onClick="resetView()">Reset Whole View</button></td></tr>';
}
$srh .= '</table></form>';
my $quill = &quill($cgi->param('submit_is_edit'));
+
#
#Page printout from here!
#
+
print qq(<div id="menu" title="To close this menu click on its heart, and wait.">
<div class="hdr" style="marging=0;padding:0px;">
<a id="to_top" href="#top" title="Go to top of page."><span class="ui-icon ui-icon-arrowthick-1-n"></span></a>
<a class="a_" onclick="deleteSelected(); return false;">Delete</a><hr>
<a class="a_" onclick="toggleSearch(this); return false;">Search</a><hr>
<a class="a_" onclick="showAll(); return false;">Show All <span class="ui-icon ui-icon-heart"></a><hr>
+$sm_reset_all
<br>
<a class="a_" href="login_ctr.cgi?logout=bye">LOGOUT</a>
</div>
my $edit_mode = $cgi->param('submit_is_edit');
my $view_mode = $cgi->param('submit_is_view');
my $view_all = $cgi->param('rs_all');
- my $is_rtf = $cgi->param('rtf');
+ my $is_rtf = $cgi->param('rtf');
my $rtf = 0;
$rtf = 1 if $is_rtf=="on";
. $log
. "', AMMOUNT='"
. $am
+ . "', RTF='"
+ . $rtf
. "' WHERE rowid="
. $edit_mode . ";";
my $st = $db->prepare($stm);
}
$stmt =
-'SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT from LOG where rowid <= "'
+'SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT, RTF from LOG where rowid <= "'
. $rs_cur
. '" ORDER BY DATE DESC;'
. $rs_page;
var _collpsd_toggle = false;
var _collpsd_toggle2 = false;
-var _doc_toggle = false;
+
function loadedBody(toggle) {
var ea_v = $("#a" + row); //amount
var tag = $("#g" + row); //orig. tagged log text.
var log = $("#v" + row); //log
+ var rtf = $("#r" + row); //RTF doc
+ var isRTF = (rtf.val()>0?true:false);
+ if(!isRTF){
+ $('#rtf_doc').hide();
+ $('#tbl_doc').hide();
+ $('#toolbar-container').hide();
+ }
+
+
$("html, body").animate({ scrollTop: 0 }, "slow");
if (tag.length) {
$("#el").val(decodeToHTMLText(tag.val()));
}
$("#ed").val(ed_v.val() + " " + et_v.html());
$("#am").val(ea_v.html());
+ $("#RTF").prop('checked', isRTF);
+
+ if(isRTF){
+ loadRTF(false, row);
+ }
//Select category
var ec_v = $("#c" + row).text();
}
-
function selectAllLogs() {
var chks = document.getElementsByName("chk");
for (var i = 0, n = chks.length; i < n; i++) {
}
-function saveRTF() {
- if (RTF_SET) {
- $.post('json.pl?m=1', { doc: JSON.stringify(QUILL.getContents()) });
- }
-}
function toggleSearch() {
$("html, body").animate({ scrollTop: 0 }, "slow");
}
function resetView() {
- var f = $("#frm_srch");
- f.keywords.value = "";
- $("#idx_cat").value(0);
+ $("#frm_srch input").val("");
+ $("#idx_cat").val(0);
$('#vc>option[value="0"]').prop('selected', true);
+
+ $("#frm_srch").submit();
}
function updateSelCategory(sel) {
}
function toggleDoc() {
- if (!_collpsd_toggle) {
- $("#rtf_doc").hide();
- _doc_toggle = true;
- } else {
- $("#rtf_doc").show();
- _doc_toggle = false;
- }
+ $("#rtf_doc").toggle();
}
function toggleLog() {
$("#div_log").show();
$("#div_srh").show();
$("#tbl_doc").show();
- _doc_toggle = false;
_collpsd_toggle = false;
_collpsd_toggle2 = false;
$("#btn_srch").text("Hide Search");
function saveRTF(id, action) {
// alert(JSON.stringify(QUILL.getContents()));
- //Disabled on new log entry. Save and edit, obtains id. For now. @2019-07-20
- //if (id > 0) {
- $.post('json.cgi', {action:action, id:id, doc: JSON.stringify(QUILL.getContents()) }, saveRTFResult);
- //}
+
+ if (id == -1) {
+ id = $("#submit_is_edit").val();
+ }
+ $.post('json.cgi', {action:'store', id:id, doc: JSON.stringify(QUILL.getContents()) }, saveRTFResult);
+
}
function saveRTFResult(result) {
console.log("Result->" + result);
var obj = JSON.parse(result);
alert(obj.response);
+}
+
+function loadRTF(showFullPage, id){
+ $.post('json.cgi', {action:'load', id:id}, loadRTFResult);
+ if(showFullPage){
+ //show under entry the document
+ }
+
+ //var json = "[{'insert': 'Loading Document...', 'attributes': { 'bold': true }}, {'insert': '\n'}]";
+ QUILL.setText('Loading Document...\n');
+ $("#rtf_doc").show();
+ $('#tbl_doc').show();
+ $('#toolbar-container').show();
+
+ return false;
+}
+
+function loadRTFResult(result) {
+ console.log("Result->" + result);
+ var obj = JSON.parse(result);
+ QUILL.setContents(obj);
+ //alert(obj.response);
}
\ No newline at end of file