# HG changeset patch # User John@Yosemite-PC # Date 1331353100 18000 # Node ID 3fedb912c0882552128455bc3ca42aaee5d80705 # Parent cdca1f2ae605d5b726f23abb759e494bb9733cc9 Rename a list diff -r cdca1f2ae605 -r 3fedb912c088 Core.lua --- a/Core.lua Fri Mar 09 23:02:25 2012 -0500 +++ b/Core.lua Fri Mar 09 23:18:20 2012 -0500 @@ -136,6 +136,12 @@ return end bsk:TrimLists(param[2]) + elseif param[1] == "rename" then + if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then + bsk:printtable(param) + return + end + bsk:RenameList(param[2],param[3]) elseif param[1] == "selfdestruct" then bsk:SelfDestruct() end diff -r cdca1f2ae605 -r 3fedb912c088 Lists.lua --- a/Lists.lua Fri Mar 09 23:02:25 2012 -0500 +++ b/Lists.lua Fri Mar 09 23:18:20 2012 -0500 @@ -13,7 +13,6 @@ -- TODO: organize working state data a little more carefully - hard to keep -- track of all the arrays that are floating out there -- TODO: delete list --- TODO: rename list -- TODO: remove player from list -- TODO: (meta) remove player from all lists -- TODO: remove person (actually kinda tricky without casuality problems) @@ -222,6 +221,8 @@ function bsk:ProcessChange(change) if change.action == "AddPerson" then bsk:DoAddPerson(change) + elseif change.action == "RenameList" then + bsk:DoRenameList(change) elseif change.action == "CreateList" then bsk:DoCreateList(change) elseif change.action == "AddToListEnd" then @@ -452,6 +453,25 @@ end end +function bsk:DoRenameList(change) + bsk.lists[change.arg.listIndex].name = change.arg.name + bsk.lists[change.arg.listIndex].time = change.time + return true +end + +function bsk:RenameList(listName,newListName) + -- require admin + local listIndex = bsk:GetListIndex(listName) + local change = {action="RenameList",arg={listIndex=listIndex,name=newListName}} + bsk:StartChange(change) + if bsk:DoRenameList(change) then + bsk:CommitChange(change) + end +end + +--}}} +-- Higher order actions (ie calls other standard actions){{{ + function bsk:TrimLists(time) if not bsk:CheckListCausality() then self:Print("Unable to trim changelist due to violated causality") @@ -486,8 +506,6 @@ bsk:CreateWorkingStateFromChanges(bsk.db.profile.changes) end ---}}} --- Higher order actions (ie calls other standard actions){{{ function bsk:AddMissingPersons() bsk:PopulateRaidList() local t = {}