/client/proc/mentor_memo()
set name = "Mentor Memos"
set category = "Server"
if(!check_rights(0))
return
if(!SSdbcore.IsConnected())
to_chat(src, "Failed to establish database connection.", confidential = TRUE)
return
var/memotask = input(usr,"Choose task.","Memo") in list("Show","Write","Edit","Remove")
if(!memotask)
return
mentor_memo_output(memotask)
/client/proc/show_mentor_memo()
set name = "Show Memos"
set category = "Mentor"
if(!is_mentor())
return
if(!SSdbcore.IsConnected())
to_chat(src, "Failed to establish database connection.", confidential = TRUE)
return
mentor_memo_output("Show")
/client/proc/mentor_memo_output(task)
if(!task)
return
if(!SSdbcore.IsConnected())
to_chat(src, "Failed to establish database connection.", confidential = TRUE)
return
switch(task)
if("Write")
var/datum/db_query/query_memocheck = SSdbcore.NewQuery({"
SELECT ckey FROM [format_table_name("mentor_memo")] WHERE ckey = :ckey
"}, list("ckey" = ckey))
if(!query_memocheck.Execute())
var/err = query_memocheck.ErrorMsg()
qdel(query_memocheck)
log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n")
return
if(query_memocheck.NextRow())
qdel(query_memocheck)
to_chat(src, "You already have set a memo.")
return
qdel(query_memocheck)
var/memotext = input(src,"Write your Memo","Memo") as message
if(!memotext)
return
var/datum/db_query/query_memoadd = SSdbcore.NewQuery({"
INSERT INTO [format_table_name("mentor_memo")] (ckey, memotext, timestamp)
VALUES (:ckey, :memotext, :timestamp)
"}, list("ckey" = ckey, "memotext" = memotext, "timestamp" = SQLtime()))
if(!query_memoadd.Execute())
var/err = query_memoadd.ErrorMsg()
qdel(query_memoadd)
log_game("SQL ERROR adding new memo. Error : \[[err]\]\n")
return
log_admin("[key_name(src)] has set a mentor memo: [memotext]")
message_admins("[key_name_admin(src)] has set a mentor memo:
[memotext]")
qdel(query_memoadd)
if("Edit")
var/datum/db_query/query_memolist = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("mentor_memo")]")
if(!query_memolist.Execute())
var/err = query_memolist.ErrorMsg()
qdel(query_memolist)
log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n")
return
var/list/memolist = list()
while(query_memolist.NextRow())
var/lkey = query_memolist.item[1]
memolist += "[lkey]"
qdel(query_memolist)
if(!memolist.len)
to_chat(src, "No memos found in database.")
return
var/target_ckey = input(src, "Select whose memo to edit", "Select memo") as null|anything in memolist
if(!target_ckey)
return
var/datum/db_query/query_memofind = SSdbcore.NewQuery({"
SELECT memotext FROM [format_table_name("mentor_memo")] WHERE ckey = :target_ckey
"}, list("target_ckey" = target_ckey))
if(!query_memofind.Execute())
var/err = query_memofind.ErrorMsg()
qdel(query_memofind)
log_game("SQL ERROR obtaining memotext from memo table. Error : \[[err]\]\n")
return
if(query_memofind.NextRow())
var/old_memo = query_memofind.item[1]
qdel(query_memofind)
var/new_memo = input("Input new memo", "New Memo", "[old_memo]", null) as message
if(!new_memo)
return
var/edit_text = "Edited by [ckey] on [SQLtime()] from
[old_memo]
to
[new_memo]