2022-05-15 08:11:56 +00:00
var Layout = require ( "Layout" ) ;
var homework = require ( "Storage" ) . readJSON ( "homework.txt" , "r" ) ;
var mainCheckHomeworkMenu ;
2022-05-15 10:29:11 +00:00
var nhwmn = { // New homework Menu
"" : {
"title" : "New HW Subject:"
}
} ;
function newHomeworkMenu ( ) {
E . showMessage ( "Getting subjects..." ) ;
2022-05-26 18:59:38 +00:00
var rawsubjects = require ( "Storage" ) . read ( "homework.subjects.txt" ) ; // This code reads out the subjects list and removes the newline character at the end
2022-05-15 10:29:11 +00:00
var splitsubjects = rawsubjects . split ( "," ) ;
var lastItem = splitsubjects [ splitsubjects . length - 1 ] ;
var thiscurrentsubject ;
var command ;
lastItem = lastItem . slice ( 0 , - 1 ) ;
splitsubjects [ splitsubjects . length - 1 ] = lastItem ;
for ( let i = 0 ; i < splitsubjects . length ; i ++ ) { // loop through array and add to menu
thiscurrentsubject = splitsubjects [ i ] ;
command = addNewHomework ( thiscurrentsubject ) ;
nhwmn [ splitsubjects [ i ] ] = addNewHomework . bind ( null , thiscurrentsubject ) ;
}
nhwmn [ "Back" ] = function ( ) { E . showMenu ( mainMenu ) ; } ;
console . log ( nhwmn ) ;
E . showMenu ( nhwmn ) ;
}
2022-05-15 08:11:56 +00:00
var mode = "mainmenu" ;
var statusmsg ;
var mainMenu = {
"" : {
title : "--Main Menu--"
} ,
"New Homework" : function ( ) {
2022-05-15 10:29:11 +00:00
newHomeworkMenu ( ) ;
2022-05-15 08:11:56 +00:00
mode = "newhomework" ;
} ,
"Check Homework" : function ( ) {
checkUnfinishedHomeworkAssembler ( ) ;
} ,
"Reset Homework" : function ( ) {
E . showPrompt ( "Are you sure you want to delete homework.txt?" , {
buttons : {
"No" : false ,
"Yes" : true
}
} ) . then ( function ( v ) {
if ( v ) {
require ( "Storage" ) . write ( "homework.txt" , '{"homework":[]}' ) ;
homework = require ( "Storage" ) . readJSON ( "homework.txt" , "r" ) ;
E . showMenu ( mainMenu ) ;
} else {
E . showMenu ( mainMenu ) ;
}
} ) ;
} ,
} ;
function checkUnfinishedHomeworkAssembler ( ) {
homework = require ( "Storage" ) . readJSON ( "homework.txt" , "r" ) ;
var hwcount = Object . keys ( homework . homework ) . length ;
mainCheckHomeworkMenu = {
'' : {
2022-05-15 12:26:51 +00:00
'title' : 'Unfinished HW:'
2022-05-15 08:11:56 +00:00
}
} ;
// This code snippet gets the unfinished HW and puts it in mainCheckHomeworkMenu
2022-05-15 12:26:51 +00:00
// btw mainCheckHomeworkMenu displays all the homework, when tapping on it you get more details with checkPreciseHomework function
2022-05-15 08:11:56 +00:00
for ( var i = 0 ; i < hwcount ; ++ i ) {
if ( homework . homework [ i ] . done === false ) {
var currentsubject = i ; //attempting to pass i
2022-05-15 10:29:11 +00:00
mainCheckHomeworkMenu [ homework . homework [ i ] . subject ] = checkPreciseHomework . bind ( null , currentsubject ) ;
2022-05-15 08:11:56 +00:00
}
}
mainCheckHomeworkMenu [ "See Archived HW" ] = function ( ) {
checkFinishedHomeworkAssembler ( ) ;
} ;
mainCheckHomeworkMenu [ "Back to Main Menu" ] = function ( ) {
mode = "mainmenu" ;
E . showMenu ( mainMenu ) ;
} ;
2022-05-15 10:29:11 +00:00
console . log ( mainCheckHomeworkMenu ) ;
2022-05-15 08:11:56 +00:00
E . showMenu ( mainCheckHomeworkMenu ) ;
}
function checkFinishedHomeworkAssembler ( ) {
homework = require ( "Storage" ) . readJSON ( "homework.txt" , "r" ) ;
var hwcount = Object . keys ( homework . homework ) . length ;
mainCheckHomeworkMenu = {
'' : {
2022-05-15 12:26:51 +00:00
'title' : 'Archived HW:'
2022-05-15 08:11:56 +00:00
}
} ;
2022-05-15 10:29:11 +00:00
2022-05-15 08:11:56 +00:00
// This code snippet gets the unfinished HW and puts it in mainCheckHomeworkMenu
// btw mainCheckHomeworkMenu displays all the homework, when tapping on it you get more details with checkPreciseHomework function (currently being written)
for ( var i = 0 ; i < hwcount ; ++ i ) {
if ( homework . homework [ i ] . done === true ) {
var currentsubject = i ; //attempting to pass i
2022-05-15 10:29:11 +00:00
mainCheckHomeworkMenu [ homework . homework [ i ] . subject ] = checkPreciseHomework . bind ( null , currentsubject ) ;
2022-05-15 08:11:56 +00:00
}
}
mainCheckHomeworkMenu [ "Back" ] = function ( ) {
mode = "mainmenu" ;
E . showMenu ( mainMenu ) ;
} ;
E . showMenu ( mainCheckHomeworkMenu ) ;
}
function checkPreciseHomework ( subjectnum ) { // P A I N
homework = require ( "Storage" ) . read ( "homework.txt" , "r" ) ;
homework = JSON . parse ( homework ) ;
var subject = homework . homework [ subjectnum ] . subject ;
var task = homework . homework [ subjectnum ] . task ;
var taskmsg = "Task: " + homework . homework [ subjectnum ] . task ;
if ( homework . homework [ subjectnum ] . done === false ) {
statusmsg = "Status: Unfinished" ;
} else {
statusmsg = "Status: Finished" ;
}
var datetimerecieved = homework . homework [ subjectnum ] . datetimerecievehw ;
var datetimerecievedmsg = "Recieved: " + homework . homework [ subjectnum ] . datetimerecievehw ;
var checkPreciseHomeworkMenu = {
'' : {
'title' : subject
} ,
} ;
checkPreciseHomeworkMenu [ subject ] = function ( ) { } ,
checkPreciseHomeworkMenu [ taskmsg ] = function ( ) { } ,
checkPreciseHomeworkMenu [ statusmsg ] = function ( ) {
status = "Status: Finished" ;
var d = new Date ( ) ;
var currenttime = require ( "locale" ) . time ( d , 1 ) ;
var currentdate = require ( "locale" ) . date ( d ) ;
var datetime = ( currenttime + " " + currentdate ) ;
delete homework . homework [ subjectnum ] ;
homework . homework . push ( {
subject : subject ,
task : task ,
done : true ,
datetimerecievehw : datetimerecieved ,
datetimehwdone : datetime
} ) ;
require ( "Storage" ) . write ( "homework.txt" , JSON . stringify ( homework ) ) ;
checkUnfinishedHomeworkAssembler ( ) ;
} ,
checkPreciseHomeworkMenu [ datetimerecievedmsg ] = function ( ) { } ,
checkPreciseHomeworkMenu [ "Back" ] = function ( ) {
checkUnfinishedHomeworkAssembler ( ) ;
} ,
E . showMenu ( checkPreciseHomeworkMenu ) ;
}
function pushHomework ( subject , status , datetimehwdone ) {
homework = require ( "Storage" ) . readJSON ( "homework.txt" , "r" ) ;
}
function addNewHomework ( subject ) { // Pass subject
2022-05-15 10:29:11 +00:00
console . log ( subject ) ;
2022-05-15 08:11:56 +00:00
require ( "textinput" ) . input ( ) . then ( result => {
if ( result === "" ) {
mode = "newhomework" ;
2022-05-15 10:29:11 +00:00
newHomeworkMenu ( ) ;
2022-05-15 08:11:56 +00:00
} else {
var d = new Date ( ) ;
// update time and date
var currenttime = require ( "locale" ) . time ( d , 1 ) ;
var currentdate = require ( "locale" ) . date ( d ) ;
var datetime = ( currenttime + " " + currentdate ) ;
homework . homework . push ( {
subject : subject ,
task : result ,
done : false ,
datetimerecievehw : datetime
} ) ; // TODO: when HW is done, add datetimeendhw !!!
2022-05-15 10:29:11 +00:00
console . log ( "subject is" + subject ) ;
2022-05-15 08:11:56 +00:00
//homework.homework[subject] = result;
require ( "Storage" ) . write ( "homework.txt" , JSON . stringify ( homework ) ) ;
E . showMenu ( mainMenu ) ;
}
} ) ;
}
function main ( ) { // why does this still exist
if ( mode === "mainmenu" ) {
E . showMenu ( mainMenu ) ;
} else if ( mode === "newhomework" ) {
2022-05-15 10:29:11 +00:00
newHomeworkMenu ( )
2022-05-15 08:11:56 +00:00
}
}
g . clear ( ) ;
Bangle . loadWidgets ( ) ;
Bangle . drawWidgets ( ) ;
main ( ) ;
//loop = setInterval(main, 1);