Changes

Undo revision 311448 by Totaku (talk)
Line 4: Line 4:  
-- Remi_Scarlet
 
-- Remi_Scarlet
 
-- I fucking hate lua.
 
-- I fucking hate lua.
 +
 +
-- 10/24/15 Added colorful blue button thing
 +
-- 5/5/16 Added multiple start location support
    
local remiLib = require("Module:RemiLib")
 
local remiLib = require("Module:RemiLib")
    
function p.renderBranchingTable(graph, collapsed)
 
function p.renderBranchingTable(graph, collapsed)
 +
 +
    local uniqueID = remiLib.timeHash(graph)
 +
    local classString = "mw-customtoggle-" .. tostring(uniqueID)
 +
    local idString = "mw-customcollapsible-" .. tostring(uniqueID)
 +
   
 +
    local button = mw.html.create('div')
 +
    button
 +
    :addClass(classString)
 +
    :addClass("globalbutton")
 +
    :wikitext("Show/Hide Branching Rules")
 +
 
     local body = mw.html.create("table")
 
     local body = mw.html.create("table")
 
     body
 
     body
 +
        :addClass("mw-collapsible")
 
         :addClass("wikitable")
 
         :addClass("wikitable")
         :addClass("mw-collapsible")
+
         :addClass("mw-collapsed")
 +
        :attr("id",idString)
 
         :css("width","300px")
 
         :css("width","300px")
    if collapsed then
  −
        body:addClass("mw-collapsed")
  −
    end
   
          
 
          
 
     local titleRow = mw.html.create("tr")
 
     local titleRow = mw.html.create("tr")
Line 57: Line 70:  
     -- toTable is a table of all the to's
 
     -- toTable is a table of all the to's
 
     --
 
     --
     local possibleStarts = remiLib.mergeArrays({"START"},remiLib.uppercase)
+
     local possibleNodes = remiLib.mergeArrays({"START", "START-1", "START-2",
     for _,from in pairs(possibleStarts) do
+
        "START-3", "START-4", "START-5"}
 +
      ,remiLib.uppercase)
 +
    -- 5/5/16
 +
    -- Since multiple start paths are possible (Eg, starting from two different places)
 +
    -- adding the ability to specify multiple start points. Assuming no more than 5 start points ever lol.
 +
    -- Yeah yeah I get that it's bad code design. Shut up, I don't care enough to put more than 5 minutes of thought into this.
 +
     for _,from in pairs(possibleNodes) do
 
         if graph[from] ~= nil then
 
         if graph[from] ~= nil then
 
             local toTable = graph[from]
 
             local toTable = graph[from]
Line 72: Line 91:  
             -- instance of the "to" node connecting to a "from" node
 
             -- instance of the "to" node connecting to a "from" node
 
             local isFirstTo = true
 
             local isFirstTo = true
             for _,toNode in pairs(remiLib.uppercase) do
+
             for _,toNode in pairs(possibleNodes) do
 
                 if toTable[toNode] ~= nil then
 
                 if toTable[toNode] ~= nil then
 
                     if not isFirstTo then
 
                     if not isFirstTo then
Line 94: Line 113:  
         end
 
         end
 
     end
 
     end
     return tostring(body)
+
     return tostring(button) .. "\n" .. tostring(body)
 
end  
 
end  
   Line 110: Line 129:  
         -- second val in split is "to" as above
 
         -- second val in split is "to" as above
 
         -- first and third should be length 1 cuz they should be singular letters
 
         -- first and third should be length 1 cuz they should be singular letters
         if #split == 3 and string.lower(split[2]) == "to" and (#split[1] == 1 or string.lower(split[1]) == "start") and #split[3] == 1 then
+
         if #split == 3 and  
 +
          string.lower(split[2]) == "to" and  
 +
          (#split[1] == 1 or (string.find(string.lower(split[1]),"start") ~= nil)) and  
 +
          (#split[3] == 1 or (string.find(string.lower(split[3]),"start") ~= nil))then
 
             local from = string.upper(split[1])
 
             local from = string.upper(split[1])
 
             local to = string.upper(split[3])
 
             local to = string.upper(split[3])
             if (remiLib.valid(from,remiLib.letters) or string.lower(from) == "start")and remiLib.valid(to,remiLib.letters) then
+
             if (remiLib.valid(from,remiLib.letters) or (string.find(string.lower(split[1]),"start") ~= nil)) and  
 +
              (remiLib.valid(to,remiLib.letters) or (string.find(string.lower(split[3]),"start") ~= nil))then
 
                 if mapGraph[from] == nil then
 
                 if mapGraph[from] == nil then
 
                     mapGraph[from] = {}
 
                     mapGraph[from] = {}
Line 121: Line 144:  
         end
 
         end
 
     end
 
     end
 +
    --local html = remiLib.dictConcat(table.getKeys(mapGraph["START-4"]),"|")
 
     local html = p.renderBranchingTable(mapGraph,collapsed)
 
     local html = p.renderBranchingTable(mapGraph,collapsed)
  
advmod, cssedit, Moderators, oversight, prechecked, Account Reviewers
18,532

edits