Module:Mooc/Template/Overview

local inheritance = require("Module:Inheritance"); local UnitTemplate = require("Module:Mooc/Template/Unit"); local Template = inheritance.extend(UnitTemplate);

Template.PATH = 'Mooc/Overview';

function Template:loadPageContent(mooc, index, templateParams) local item = index["item"]; index["navigation"] = item; local templateParams = item:getParams; self:loadSectionNavigation(item, templateParams);

-- administration templateParams['baseUrl'] = mooc:getBaseUrl; templateParams['indexUrl'] = mooc:getIndexUrl; -- content templateParams['title'] = mooc:getBaseUrl; -- children self:loadChildren(item, templateParams); -- navigation self:loadNavigation(index, templateParams); end

function Template:loadSectionNavigation(item, templateParams) local url = item:getUrl; local nNav = mw.html.create('div'):attr('id', 'item-navigation'):addClass('border-box'); nNav:node(self:renderSectionLink(url, 'lessons')); nNav:node(self:renderSectionLink(url, 'discussion')); templateParams['sectionNavigation'] = tostring(nNav); end

function Template:loadChildren(item, templateParams) local children = item:getChildren; local container = mw.html.create('div'); container:addClass('children'); if children ~= nil then local i = 0; for _,v in ipairs(children) do			i = i + 1; container:node(self:renderChildLesson(v, i)); end end

-- button create child container:node(self:renderCreateLessonLink); container:node(self:renderCreateLessonBox); templateParams['children'] = tostring(container); end

function Template:renderChildLesson(lesson, numLesson) local children = lesson:getChildren; local container = mw.html.create('div'):addClass('lesson'); -- lesson title container:tag('div'):addClass('title'):wikitext( .. tostring(numLesson) .. '. ' .. lesson:getName .. ); -- associated units local nChildren = container:tag('div'):addClass('children'); if children ~= nil then for _,v in ipairs(children) do			nChildren:node(self:renderChildUnit(v)); end end return container; end

function Template:renderCreateLessonLink local node = mw.html.create('div'); node:attr('id', 'addLesson'):addClass('child'):css('display', 'none'); local video = node:tag('div'); video:addClass('video'); local img = video:tag('div'):wikitext(''); local title = node:tag('div'); title:addClass('title'); title:wikitext('new lesson'); return node; end

function Template:renderCreateLessonBox local modal = mw.html.create('div'); modal:attr('id', 'modal-add-lesson-addLesson'):addClass('modal-box'):css('display', 'none'); return modal; end

return Template;