MDL-58428 theme: Move templates from lib

This commit is contained in:
Mathew May
2019-02-26 12:56:14 +01:00
committed by Sara Arjona
parent c75aa5640f
commit b13a453d25
81 changed files with 1208 additions and 1241 deletions
+14 -19
View File
@@ -30,31 +30,26 @@
}
}
}}
<div class="{{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
<div class="action-menu {{classes}} d-inline"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#primary}}
<ul class="{{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
<div class="{{classes}} d-flex "{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#prioritise}}<li role="presentation">{{> core/action_menu_trigger }}</li>{{/prioritise}}<!--
{{#prioritise}}{{> core/action_menu_trigger }}{{/prioritise}}
-->{{#items}}<li role="presentation">{{> core/action_menu_item }}</li>{{/items}}<!--
{{#items}}
<div class="action-menu-item">
{{> core/action_menu_item }}
</div>
{{/items}}
-->{{^prioritise}}<li role="presentation">{{> core/action_menu_trigger }}</li>{{/prioritise}}
{{^prioritise}}
<div class="action-menu-trigger">
{{> core/action_menu_trigger }}
</div>
{{/prioritise}}
</ul>
</div>
{{/primary}}
{{#secondary}}
<ul class="{{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#items}}<li role="presentation">{{> core/action_menu_item }}</li>{{/items}}
</ul>
{{/secondary}}
</div>
{{#js}}
require(['core/yui'], function(Y) {
Y.use('moodle-core-actionmenu', function() {
M.core.actionmenu.init();
});
});
{{/js}}
+2 -4
View File
@@ -23,14 +23,12 @@
{
"text": "Example link text",
"showtext": true,
"url": "http://example.com/link",
"classes": "menu-action",
"instance": "1"
"url": "http://example.com/link"
}
}}
{{^disabled}}
<a href="{{url}}" class="{{classes}}" {{#attributes}}{{name}}={{#quote}}{{value}}{{/quote}} {{/attributes}}{{#showtext}}aria-labelledby="actionmenuaction-{{instance}}"{{/showtext}}>{{#icon}}{{#pix}}{{key}}, {{component}}, {{title}}{{/pix}}{{/icon}}{{#showtext}}<span class="menu-action-text" id="actionmenuaction-{{instance}}">{{{text}}}</span>{{/showtext}}</a>
{{/disabled}}
{{#disabled}}
<span class="currentlink" role="menuitem">{{#icon}}{{#pix}}{{key}}, {{component}}, {{title}}{{/pix}}{{/icon}}{{{text}}}</span>
<span class="currentlink" role="menuitem">{{#icon}}{{#pix}}{{key}},{{component}},{{title}}{{/pix}}{{/icon}}{{{text}}}</span>
{{/disabled}}
+94 -4
View File
@@ -21,10 +21,100 @@
Example context (json):
{
"text": "Example link text",
"title": "Example link title",
"url": "http://example.com/link",
"classes": "icon menu-action",
"instance": "1",
"title": "Trigger me!",
"menutrigger": true,
"triggerextraclasses": ""
"triggerextraclasses": "",
"attributes": [
{"name": "role", "value": "menuitem" },
{"name": "data-title", "value": "mymoodle,admin" }
],
"secondary": {
"classes": "menu align-tr-br",
"attributes": [
{"name": "id", "value": "action-menu-0-menu"},
{"name": "data-rel", "value": "menu-content"},
{"name": "role", "value": "menu"},
{"name": "data-align", "value": "tr-br"}
],
"items": [
{"actionmenulink":
{
"id": "action_link59ecf8394a68078",
"disabled": false,
"text": "Dashboard",
"url": "http://example.com/link",
"icon": {
"key": "i/dashboard",
"component": null,
"title": "Dashboard"
},
"classes": "icon menu-action",
"attributes": [
{"name": "role", "value": "menuitem"},
{"name": "data-title", "value": "mymoodle,admin"}
],
"instance": 1,
"showtext": true
}
},
{"actionmenufiller":
{
"id": "action_link59ecf8394a68079",
"disabled": false,
"text": "",
"url": "",
"icon": null,
"classes": "",
"attributes": [
{"name": "role", "value": "menuitem"}
]
}
}
]
}
}
}}
<a href="#" class="{{triggerextraclasses}} toggle-display {{#menutrigger}}textmenu{{/menutrigger}}" id="action-menu-toggle-{{instance}}" title="{{title}}" role="menuitem">{{{actiontext}}}{{{menutrigger}}}{{#icon}}{{#pix}}{{key}}, {{component}}, {{title}}{{/pix}}{{/icon}}{{#rawicon}}{{{.}}}{{/rawicon}}{{#menutrigger}}<b class="caret"></b>{{/menutrigger}}</a>
<div class="dropdown">
<a href="#" tabindex="0" class="{{triggerextraclasses}} dropdown-toggle icon-no-margin" id="dropdown-{{instance}}" aria-label="{{title}}" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" aria-controls="action-menu-{{instance}}-menu">
{{{actiontext}}}
{{{menutrigger}}}
{{#icon}}
{{#pix}}
{{key}},{{component}},{{title}}
{{/pix}}
{{/icon}}
{{#rawicon}}{{{.}}}{{/rawicon}}
{{#menutrigger}}
<b class="caret"></b>
{{/menutrigger}}
</a>
{{#secondary}}
<div class="dropdown-menu dropdown-menu-right {{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}} id="dropdown-menu-{{instance}}">
{{#items}}
{{#actionmenulink}}
<a href="{{url}}" class="dropdown-item {{classes}}" {{#attributes}}{{name}}={{#quote}}{{value}}{{/quote}} {{/attributes}}{{#showtext}}aria-labelledby="actionmenuaction-{{instance}}"{{/showtext}}>
{{#icon}}
{{#pix}}{{key}},{{component}},{{title}}{{/pix}}
{{/icon}}
{{#showtext}}
<span class="menu-action-text" id="actionmenuaction-{{instance}}">
{{{text}}}
</span>
{{/showtext}}
</a>
{{/actionmenulink}}
{{#actionmenufiller}}
<div class="dropdown-divider" role="presentation"><span class="filler">&nbsp;</span></div>
{{/actionmenufiller}}
{{^actionmenulink}}
{{^actionmenufiller}}
<div class="dropdown-item">{{> core/action_menu_item }}</div>
{{/actionmenufiller}}
{{/actionmenulink}}
{{/items}}
</div>
{{/secondary}}
</div>
+29 -8
View File
@@ -26,12 +26,33 @@
"homelink": "/"
}
}}
<h3>{{#str}}considereddigitalminor{{/str}}</h3>
<p class="m-b-0">{{#str}}digitalminor_desc{{/str}}</p>
<div class="p-t-1 p-b-1">
<p class="m-b-0">{{{supportname}}}</p>
<p class="m-b-0">{{{supportemail}}}</p>
</div>
<div class="backlink">
<a href="{{homelink}}">{{#str}}backtohome{{/str}}</a>
<div class="container-fluid mt-1 mt-md-5">
<div class="row justify-content-md-center">
<div class="col-md-8 push-md-2 col-xl-6 push-xl-3">
<div class="card">
<div class="card-body">
<div class="card-title text-xs-center">
{{#logourl}}
<h2><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2>{{sitename}}</h2>
{{/logourl}}
<hr>
</div>
<div class="card-title">
<h3>{{#str}}considereddigitalminor{{/str}}</h3>
</div>
<div class="p-t-1 p-b-2">
<p>{{#str}}digitalminor_desc{{/str}}</p>
<p class="m-b-0">{{{supportname}}}</p>
<p class="m-b-0">{{{supportemail}}}</p>
</div>
<div class="backlink">
<a href="{{homelink}}">{{#str}}backtohome{{/str}}</a>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -25,13 +25,40 @@
"formhtml": "(Form html would go here)"
}
}}
{{#error}}
<div class="alert alert-danger" role="alert">
{{{error}}}
<div class="container-fluid mt-1 mt-md-5">
<div class="row justify-content-md-center">
<div class="col-md-8 push-md-2 col-xl-6 push-xl-3">
<div class="card">
<div class="card-body">
<div class="card-title text-xs-center">
{{#logourl}}
<h2><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2>{{sitename}}</h2>
{{/logourl}}
<hr>
</div>
{{#error}}
<div class="alert alert-danger" role="alert" data-aria-autofocus="true">
{{{error}}}
</div>
{{/error}}
<div class="card-title">
<h3>{{#str}}agelocationverification{{/str}}</h3>
</div>
<div class="m-t-2 m-b-2">
{{{formhtml}}}
</div>
<hr>
<div class="card-title">
<h3>{{#str}}whyisthisrequired{{/str}}</h3>
</div>
<div class="m-t-1">
<p >{{#str}}explanationdigitalminor{{/str}}</p>
</div>
</div>
</div>
</div>
</div>
{{/error}}
<h3>{{#str}}agelocationverification{{/str}}</h3>
{{{formhtml}}}
<hr>
<h3>{{#str}}whyisthisrequired{{/str}}</h3>
<p >{{#str}}explanationdigitalminor{{/str}}</p>
</div>
+31 -3
View File
@@ -17,7 +17,12 @@
{{!
@template core/availability_info
Moodle template for the course or section availability information.
Renders the availability info on the course outline page.
Availability info can be displayed for activity modules or whole course
sections. Activity modules can be either hidden from students, or available
but not shown on course page (stealth), or the access can be restricted by
configured conditions. Sections can be hidden.
Classes required for JS:
* none
@@ -25,9 +30,32 @@
Data attributes required for JS:
* none
Context variables required for this template:
* classes String list of CSS classes for the wrapping element
* text HTML formatted text with the actual availability information
* ishidden Boolean flag indiciating that the item is hidden from students
* isstealth Boolean flag indicating that the item is in stealth mode
* isrestricted Boolean flag indicating that restricted access conditions apply
* isfullinfo Boolean flag indicating that the full list of restricted
access conditions is displayed (aka teacher's view).
Example context (json):
{ "classes": "", "text": "This activity is not available" }
{
"classes": "",
"text": "Not available unless: <ul><li>It is on or after <strong>8 June 2012</strong></li></ul>",
"ishidden": 0,
"isstealth": 0,
"isrestricted": 1,
"isfullinfo": 1
}
}}
{{#text}}
<div class="availabilityinfo {{classes}}">{{{text}}}</div>
<div class="availabilityinfo {{classes}}">
{{^isrestricted}}
<span class="tag tag-info">{{{text}}}</span>
{{/isrestricted}}
{{#isrestricted}}
<span class="tag tag-info">{{#str}}restricted, core{{/str}}</span> {{{text}}}
{{/isrestricted}}
</div>
{{/text}}
+2 -2
View File
@@ -70,8 +70,8 @@
</div>
<div class="submitbuttons">
<input type="submit" name="submitbutton" class="submitbutton" value={{#quote}}{{#str}}add{{/str}}{{/quote}}>
<input type="submit" name="addcancel" class="addcancel" value={{#quote}}{{#str}}cancel{{/str}}{{/quote}}>
<input type="submit" name="submitbutton" class="submitbutton btn btn-primary" value={{#quote}}{{#str}}add{{/str}}{{/quote}}>
<input type="submit" name="addcancel" class="addcancel btn btn-secondary" value={{#quote}}{{#str}}cancel{{/str}}{{/quote}}>
</div>
</form>
+4 -4
View File
@@ -41,8 +41,8 @@
}
}}
<div class="row-fluid rtl-compatible">
<div class="span4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="span4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="span4">{{$ column3 }}{{{ col3content }}}{{/ column3 }}</div>
<div class="row">
<div class="col-md-4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="col-md-4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="col-md-4">{{$ column3 }}{{{ col3content }}}{{/ column3 }}</div>
</div>
+3 -3
View File
@@ -39,7 +39,7 @@
}
}}
<div class="row-fluid rtl-compatible">
<div class="span4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="span8">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="row">
<div class="col-md-4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="col-md-8">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
</div>
+3 -3
View File
@@ -38,7 +38,7 @@
"col2content": "<div class='alert alert-success'>2. Vivamus ac orci in velit fringilla aliquam a a nisl. Cras luctus quam laoreet magna pulvinar aliquet.</div>"
}
}}
<div class="row-fluid rtl-compatible">
<div class="span8">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="span4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="row">
<div class="col-md-8">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="col-md-4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
</div>
+12 -12
View File
@@ -17,8 +17,6 @@
{{!
@template core/dataformat_selector
Template for dataformat selection and download form.
Context variables required for this template:
* label
* base
@@ -32,24 +30,26 @@
{
"base": "http://example.org/",
"name": "test",
"value": "test",
"label": "Download table data as",
"params": false,
"options": [{"label": "CSV", "name": "csv"}, {"label": "Excel", "name": "excel"}],
"submit": "Download"
"submit": "Download",
"sesskey": ""
}
}}
<form method="get" action="{{base}}" class="dataformatselector">
<div class="mdl-align">
<form method="get" action="{{base}}" class="dataformatselector m-1">
<div class="form-inline text-xs-right">
<input type="hidden" name="sesskey" value="{{sesskey}}">
<label for="downloadtype_{{name}}">{{label}}</label>
<select name="{{name}}" id="downloadtype_{{name}}">
{{#options}}
<option value="{{value}}">{{label}}</option>
{{/options}}
<label for="downloadtype_{{name}}" class="mr-1">{{label}}</label>
<select name="{{name}}" id="downloadtype_{{name}}" class="form-control">
{{#options}}
<option value="{{value}}">{{label}}</option>
{{/options}}
</select>
<input type="submit" value="{{submit}}">
<button type="submit" class="btn btn-secondary">{{submit}}</button>
{{#params}}
<input type="hidden" name="{{name}}" value="{{value}}" />
<input type="hidden" name="{{name}}" value="{{value}}">
{{/params}}
</div>
</form>
@@ -36,7 +36,7 @@
{ "inputID": 1, "suggestionsId": 2, "selectionId": 3, "downArrowId": 4, "placeholder": "Select something" }
}}
{{#showSuggestions}}
<input type="text" id="{{inputId}}" list="{{suggestionsId}}" placeholder="{{placeholder}}" role="combobox" aria-expanded="false" autocomplete="off" autocorrect="off" autocapitalize="off" aria-autocomplete="list" aria-owns="{{suggestionsId}} {{selectionId}}" {{#tags}}data-tags="1"{{/tags}}/><span class="form-autocomplete-downarrow" id="{{downArrowId}}">&#x25BC;</span>
<input type="text" id="{{inputId}}" class="form-control" list="{{suggestionsId}}" placeholder="{{placeholder}}" role="combobox" aria-expanded="false" autocomplete="off" autocorrect="off" autocapitalize="off" aria-autocomplete="list" aria-owns="{{suggestionsId}} {{selectionId}}" {{#tags}}data-tags="1"{{/tags}}/><span class="form-autocomplete-downarrow" id="{{downArrowId}}">&#x25BC;</span>
{{/showSuggestions}}
{{^showSuggestions}}
<input type="text" id="{{inputId}}" placeholder="{{placeholder}}" role="textbox" aria-owns="{{selectionId}}" {{#tags}}data-tags="1"{{/tags}}/>
@@ -37,15 +37,14 @@
{ "label": "Another item label with <strong>tags</strong>", "value": "4" }
], "noSelectionString": "No selection" }
}}
<div class="form-autocomplete-selection {{#multiple}}form-autocomplete-multiple{{/multiple}}" id="{{selectionId}}" role="list" aria-atomic="true" {{#multiple}}tabindex="0" aria-multiselectable="true"{{/multiple}}>
<div class="form-autocomplete-selection w-100 {{#multiple}}form-autocomplete-multiple{{/multiple}}" id="{{selectionId}}" role="list" aria-atomic="true" {{#multiple}}tabindex="0" aria-multiselectable="true"{{/multiple}}>
<span class="accesshide">{{#str}}selecteditems, form{{/str}}</span>
{{#items}}
<span role="listitem" data-value="{{value}}" aria-selected="true" class="label label-info" style="font-size: 100%; margin-bottom: 0.5rem;">
<span role="listitem" data-value="{{value}}" aria-selected="true" class="tag tag-info mb-3 mr-1" style="font-size: 100%">
{{#multiple}}<span aria-hidden="true">× </span>{{/multiple}}{{{label}}}
</span>
{{/items}}
{{^items}}
<span>{{noSelectionString}}</span>
<span class="mb-3 mr-1">{{noSelectionString}}</span>
{{/items}}
</div>
</div>
+6 -19
View File
@@ -1,19 +1,3 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/help_icon
@@ -33,6 +17,9 @@
}
}
}}
<span class="helptooltip">
<a href="{{url}}" title={{#quote}}{{title}}{{/quote}} aria-haspopup="true" target="_blank">{{#icon}}{{>core/pix_icon}}{{/icon}}{{#linktext}}{{.}}{{/linktext}}</a>
</span>
<a class="btn btn-link p-0" role="button"
data-container="body" data-toggle="popover"
data-placement="{{#ltr}}right{{/ltr}}{{^ltr}}left{{/ltr}}" data-content="{{text}} {{completedoclink}}"
data-html="true" tabindex="0" data-trigger="focus">
{{#pix}}help, core, {{{alt}}}{{/pix}}
</a>
+18 -12
View File
@@ -73,24 +73,30 @@
]
}
}}
<div class="initialbar {{class}}">
<span class="initialbarlabel">{{title}}</span>
{{#current}}
<a class="initialbarall page-item letter" href="{{url}}">{{all}}</a>
{{/current}}
{{^current}}
<div class="initialbarall letter page-item active">{{all}}</div>
{{/current}}
<div class="initialbar {{class}} d-flex flex-wrap justify-content-center justify-content-md-start">
<span class="initialbarlabel mr-2">{{title}}</span>
<div class="initialbargroups">
<div class="initialbargroups d-flex flex-wrap justify-content-center justify-content-md-start">
<ul class="pagination pagination-sm">
{{#current}}
<li class="initialbarall page-item">
<a class="page-link" href="{{url}}">{{all}}</a>
</li>
{{/current}}
{{^current}}
<li class="initialbarall page-item active">
<a class="page-link">{{all}}</a>
</li>
{{/current}}
</ul>
{{#group}}
<ul class="initialbargroup">
<ul class="pagination pagination-sm">
{{#letter}}
{{#selected}}
<li><span class="letter page-item active {{name}}">{{name}}</span></li>
<li class="page-item active {{name}}"><span class="page-link">{{name}}</span></li>
{{/selected}}
{{^selected}}
<li><a class="letter page-item {{name}}" href="{{url}}">{{name}}</a></li>
<li class="page-item {{name}}"><a class="page-link" href="{{url}}">{{name}}</a></li>
{{/selected}}
{{/letter}}
</ul>
+181 -120
View File
@@ -19,149 +19,210 @@
Moodle template for the login page.
Context variables required for this template:
* autofocusform: Auto focus on form ?,
* canloginasguest - Is guest login allowed?,
* canloginbyemail - Is login by email allowed?,
* cansignup - Signup allowed?,
* cookieshelpicon - cookies help icon details
* error - Any errors in the form?,
* forgotpasswordurl - Forgot password url,
* hasidentityproviders - Flag, set to true to hide identity providers,
* hasinstructions - Flag, set to true to show instructions,
* identityproviders - List of identiy providers,
* instructions - Instructions,
* instructionsformat - Format of instructions,
* loginurl - Login url,
* rememberusername - Remeber username?,
* signupurl - Signup url,
* cookieshelpiconformatted - Formatted html of cookies help icon,
* errorformatted - Formatted error,
* logourl - Flag, logo url,
* sitename - Name of site.
* logintoken - Random token to protect login request.
Example context (json):
{
"autofocusform": false,
"canloginasguest": true,
"canloginbyemail": true,
"canloginasguest": "1",
"canloginbyemail": false,
"cansignup": true,
"error": "testerror",
"errorformatted": "Test error formatted",
"forgotpasswordurl": "http://example.com/login/forgot_password.php",
"cookieshelpicon": {
"heading": "Cookies must be enabled in your browser",
"text": "<div class=\"no-overflow\">Two cookies are used on this site. Both died..</div>",
"icon": {
"attributes": [
{
"name": "class",
"value": "iconhelp"
},
{
"name": "alt",
"value": "Help with Cookies must be enabled in your browser"
},
{
"name": "title",
"value": "Help with Cookies must be enabled in your browser"
},
{
"name": "src",
"value": "http://localhost/stable_master/theme/image.php?theme=boost&component=core&image=help"
}
]
},
"linktext": null,
"title": "Help with Cookies must be enabled in your browser",
"url": "http://localhost/stable_master/help.php?component=core&identifier=cookiesenabled&lang=en",
"ltr": true
},
"error": "",
"forgotpasswordurl": "http://localhost/stable_master/login/forgot_password.php",
"hasidentityproviders": false,
"hasinstructions": true,
"identityproviders": [],
"instructions": "For full access to this site, you first need to create an account.",
"loginurl": "http://example.com/stable_master/login/index.php",
"instructionsformat": "1",
"loginurl": "http://localhost/stable_master/login/index.php",
"rememberusername": true,
"signupurl": "http://localhost/stable_master/login/signup.php",
"cookieshelpiconformatted": "",
"username": "",
"errorformatted": "",
"logourl": false,
"sitename": "Beer & Chips",
"logintoken": "randomstring"
}
}}
{{#hasinstructions}}
<div class="loginbox clearfix twocolumns">
{{/hasinstructions}}
{{^hasinstructions}}
<div class="loginbox clearfix onecolumn">
{{/hasinstructions}}
<div class="loginpanel">
{{#cansignup}}
<div class="skiplinks">
<a class="skip" href="{{signupurl}}">{{#str}} tocreatenewaccount {{/str}}</a>
</div>
{{/cansignup}}
<h2>{{#str}} login {{/str}}</h2>
<div class="subcontent loginsub">
{{#error}}
<div class="loginerrors" role="alert">
<a href="#" id="loginerrormessage" class="accesshide">{{error}}</a>
{{{errorformatted}}}
</div>
{{/error}}
<form action="{{loginurl}}" method="post" id="login">
<div class="loginform">
<div class="form-label">
<label for="username">
{{^canloginbyemail}}
{{#str}} username {{/str}}
{{/canloginbyemail}}
{{#canloginbyemail}}
{{#str}} usernameemail {{/str}}
{{/canloginbyemail}}
</label>
</div>
<div class="form-input">
<input type="text" name="username" id="username" size="15" value="{{username}}" autocomplete="username">
</div>
<div class="clearer"><!-- --></div>
<div class="form-label">
<label for="password">{{#str}} password {{/str}}</label>
</div>
<div class="form-input">
<input type="password" name="password" id="password" size="15" value="" autocomplete="current-password">
</div>
</div>
<div class="clearer"><!-- --></div>
{{#rememberusername}}
<div class="rememberpass">
<input type="checkbox" name="rememberusername" id="rememberusername" value="1" {{#username}}checked="checked"{{/username}} />
<label for="rememberusername">{{#str}} rememberusername, admin {{/str}}</label>
</div>
{{/rememberusername}}
<div class="clearer"><!-- --></div>
<input id="anchor" type="hidden" name="anchor" value="" />
<script>document.getElementById('anchor').value = location.hash;</script>
<input type="hidden" name="logintoken" value="{{logintoken}}">
<input type="submit" id="loginbtn" value={{#quote}}{{#str}} login {{/str}}{{/quote}} />
<div class="forgetpass">
<a href="{{forgotpasswordurl}}">{{#str}} forgotten {{/str}}</a>
</div>
</form>
<div class="desc">
{{#str}} cookiesenabled {{/str}}
{{{cookieshelpiconformatted}}}
</div>
</div>
{{#canloginasguest}}
<div class="subcontent guestsub">
<div class="desc">{{#str}} someallowguest {{/str}}</div>
<form action="{{loginurl}}" method="post" id="guestlogin">
<div class="guestform">
<input type="hidden" name="logintoken" value="{{logintoken}}">
<input type="hidden" name="username" value="guest" />
<input type="hidden" name="password" value="guest" />
<input type="submit" value={{#quote}}{{#str}} loginguest {{/str}}{{/quote}} />
</div>
</form>
</div>
{{/canloginasguest}}
</div>
<div class="signuppanel">
{{#hasinstructions}}
<h2>{{#str}} firsttime {{/str}}</h2>
<div class="subcontent">
{{{instructions}}}
<div class="my-1 my-sm-5"></div>
<div class="row justify-content-center">
<div class="col-xl-6 col-sm-8 ">
<div class="card">
<div class="card-block">
{{#logourl}}
<h2 class="card-header text-center" ><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2 class="card-header text-center">{{sitename}}</h2>
{{/logourl}}
<div class="card-body">
{{#cansignup}}
<div class="signupform">
<form action="{{signupurl}}" method="get" id="signup">
<div>
<input type="submit" value={{#quote}}{{#str}} startsignup {{/str}}{{/quote}} />
</div>
</form>
<div class="sr-only">
<a href="{{signupurl}}">{{#str}} tocreatenewaccount {{/str}}</a>
</div>
{{/cansignup}}
</div>
{{/hasinstructions}}
{{#hasidentityproviders}}
<div class="subcontent potentialidps">
<h6>{{#str}} potentialidps, auth {{/str}}</h6>
<div class="potentialidplist">
{{#identityproviders}}
<div class="potentialidp">
<a href="{{url}}" title={{#quote}}{{name}}{{/quote}} class="btn">
{{#iconurl}}
<img src="{{iconurl}}" alt="" width="24" height="24"/>
{{/iconurl}}
{{name}}
</a>
{{#error}}
<div class="loginerrors mt-3">
<a href="#" id="loginerrormessage" class="accesshide">{{error}}</a>
<div class="alert alert-danger" role="alert" data-aria-autofocus="true">{{error}}</div>
</div>
{{/error}}
<div class="row justify-content-md-center">
<div class="col-md-5">
<form class="mt-3" action="{{loginurl}}" method="post" id="login">
<input id="anchor" type="hidden" name="anchor" value="">
<script>document.getElementById('anchor').value = location.hash;</script>
<input type="hidden" name="logintoken" value="{{logintoken}}">
<div class="form-group">
<label for="username" class="sr-only">
{{^canloginbyemail}}
{{#str}} username {{/str}}
{{/canloginbyemail}}
{{#canloginbyemail}}
{{#str}} usernameemail {{/str}}
{{/canloginbyemail}}
</label>
<input type="text" name="username" id="username"
class="form-control"
value="{{username}}"
placeholder={{#quote}}{{^canloginbyemail}}{{#str}}username{{/str}}{{/canloginbyemail}}{{#canloginbyemail}}{{#str}}usernameemail{{/str}}{{/canloginbyemail}}{{/quote}}
autocomplete="username">
</div>
<div class="form-group">
<label for="password" class="sr-only">{{#str}} password {{/str}}</label>
<input type="password" name="password" id="password" value=""
class="form-control"
placeholder={{#quote}}{{#str}}password{{/str}}{{/quote}}
autocomplete="current-password">
</div>
{{#rememberusername}}
<div class="rememberpass mt-3">
<input type="checkbox" name="rememberusername" id="rememberusername" value="1" {{#username}}checked="checked"{{/username}} />
<label for="rememberusername">{{#str}} rememberusername, admin {{/str}}</label>
</div>
{{/rememberusername}}
<button type="submit" class="btn btn-primary btn-block mt-3" id="loginbtn">{{#str}}login{{/str}}</button>
</form>
</div>
<div class="col-md-5">
<div class="forgetpass mt-3">
<p><a href="{{forgotpasswordurl}}">{{#str}}forgotten{{/str}}</a></p>
</div>
{{/identityproviders}}
<div class="mt-3">
{{#str}} cookiesenabled {{/str}}
{{{cookieshelpiconformatted}}}
</div>
{{#canloginasguest}}
<div class="mt-2">
<p>{{#str}}someallowguest{{/str}}</p>
<form action="{{loginurl}}" method="post" id="guestlogin">
<input type="hidden" name="logintoken" value="{{logintoken}}">
<input type="hidden" name="username" value="guest" />
<input type="hidden" name="password" value="guest" />
<button class="btn btn-secondary btn-block" type="submit">{{#str}}loginguest{{/str}}</button>
</form>
</div>
{{/canloginasguest}}
{{#hasidentityproviders}}
<h6 class="mt-2">{{#str}} potentialidps, auth {{/str}}</h6>
<div class="potentialidplist" class="mt-3">
{{#identityproviders}}
<div class="potentialidp">
<a href="{{url}}" title={{#quote}}{{name}}{{/quote}} class="btn btn-secondary btn-block">
{{#iconurl}}
<img src="{{iconurl}}" alt="" width="24" height="24"/>
{{/iconurl}}
{{name}}
</a>
</div>
{{/identityproviders}}
</div>
{{/hasidentityproviders}}
</div>
</div>
</div>
{{/hasidentityproviders}}
</div>
</div>
</div>
</div>
{{#hasinstructions}}
<div class="row justify-content-center mt-3">
<div class="col-xl-6 col-sm-8">
<div class="card">
<div class="card-body">
<div class="card-title">
<h2>{{#str}}firsttime{{/str}}</h2>
</div>
<div>
{{{instructions}}}
{{#cansignup}}
<form class="mt-3" action="{{signupurl}}" method="get" id="signup">
<button type="submit" class="btn btn-secondary">{{#str}}startsignup{{/str}}</button>
</form>
{{/cansignup}}
</div>
</div>
</div>
</div>
</div>
{{/hasinstructions}}
{{#js}}
{{#error}}
+22 -22
View File
@@ -40,28 +40,28 @@
}
}}
<div class="modal-container moodle-has-zindex hide" data-region="modal-container" aria-hidden="true" role="dialog">
<div class="modal {{$classes}}{{/classes}}"
data-region="modal"
aria-labelledby="{{uniqid}}-modal-title"
role="document" tabindex="0">
<div class="modal-header {{$headerclasses}}{{headerclasses}}{{/headerclasses}}" data-region="header">
<button type="button" class="close" data-action="hide" title="{{#str}} closebuttontitle {{/str}}"></button>
{{$header}}
<h3 id="{{uniqid}}-modal-title" class="modal-title" data-region="title">
{{$title}}{{title}}{{/title}}
</h3>
{{/header}}
</div>
<div class="modal-body" data-region="body">
{{$body}}
{{{body}}}
{{/body}}
</div>
<div class="modal-footer" data-region="footer">
{{$footer}}
{{{footer}}}
{{/footer}}
<div class="modal moodle-has-zindex" data-region="modal-container" aria-hidden="true" role="dialog">
<div class="modal-dialog {{$classes}}{{/classes}}" role="document" data-region="modal" aria-labelledby="{{uniqid}}-modal-title" tabindex="0">
<div class="modal-content">
<div class="modal-header {{$headerclasses}}{{headerclasses}}{{/headerclasses}}" data-region="header">
{{$header}}
<h5 id="{{uniqid}}-modal-title" class="modal-title" data-region="title">{{$title}}{{title}}{{/title}}</h5>
{{/header}}
<button type="button" class="close" data-action="hide" aria-label={{#quote}}{{#str}}closebuttontitle{{/str}}{{/quote}}>
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" data-region="body">
{{$body}}
{{{body}}}
{{/body}}
</div>
<div class="modal-footer" data-region="footer">
{{$footer}}
{{{footer}}}
{{/footer}}
</div>
</div>
</div>
</div>
+1 -1
View File
@@ -33,4 +33,4 @@
Example context (json):
{}
}}
<div class="modal-backdrop hide" aria-hidden="true" data-region="modal-backdrop"></div>
<div class="modal-backdrop in hide" aria-hidden="true" data-region="modal-backdrop"></div>
+2 -8
View File
@@ -36,15 +36,9 @@
Example context (json):
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-error alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert"{{/ announce }}{{!
<div class="alert alert-danger alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
+2 -7
View File
@@ -37,14 +37,9 @@
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-info alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
+1 -7
View File
@@ -37,14 +37,8 @@
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-success alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
+1 -7
View File
@@ -37,14 +37,8 @@
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-warning alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
+11 -13
View File
@@ -25,12 +25,12 @@
"width": "500"
}
}}
<div class="progressbar_container" style="width: {{width}}px;" id="{{id}}">
<h2 id="{{id}}_status"></h2>
<div class="progress progress-striped active">
<div id="{{id}}_bar" class="bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">&nbsp;</div>
<div id="{{id}}" class="row progressbar_container">
<div class="col-md-6 push-md-3">
<p id="{{id}}_status" class="text-xs-center"></p>
<progress id="{{id}}_bar" class="progress progress-striped progress-animated" value="0" max="100"></progress>
<p id="{{id}}_estimate" class="text-xs-center"></p>
</div>
<p id="{{id}}_estimate"></p>
</div>
{{! We must not use the JS helper otherwise this gets executed too late. }}
@@ -47,20 +47,18 @@
estimate = e.detail.estimate;
statusIndicator.textContent = msg;
progressBar.textContent = '' + percent + '%';
progressBar.setAttribute('value', Math.round(percent));
if (percent === 100) {
el.classList.add('progress-success');
estimateIndicator.textContent = '';
progressBar.classList.add('progress-success');
estimateIndicator.textContent = '100%';
} else {
if (estimate) {
estimateIndicator.textContent = estimate;
estimateIndicator.textContent = estimate + ' - ' + percent + '%';
} else {
estimateIndicator.textContent = '';
estimateIndicator.textContent = '' + percent + '%';
}
el.classList.remove('progress-success');
progressBar.classList.remove('progress-success');
}
progressBar.setAttribute('aria-valuenow', percent);
progressBar.setAttribute('style', 'width: ' + percent + '%');
});
})();
</script>
+2 -2
View File
@@ -30,8 +30,8 @@
]
}
}}
<label for="{{id}}" class="accesshide">{{label}}</label>
<select name="{{name}}" id="{{id}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
<label for="{{id}}" class="sr-only">{{label}}</label>
<select name="{{name}}" id="{{id}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}} class="form-control">
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
+76 -74
View File
@@ -39,105 +39,107 @@
<ul class="nav nav-tabs" role="tablist">
<!-- First the top most node and immediate children -->
<li class="active"> <a href="#link{{node.key}}" data-toggle="tab" role="tab">{{node.text}}</a> </li>
<li class="nav-item">
<a class="nav-link active" href="#link{{node.key}}" data-toggle="tab" role="tab">{{node.text}}</a>
</li>
<!-- Now the first level children with sub nodes -->
{{#node.children}}
{{#children.count}}
{{#display}}
{{^is_short_branch}}
<li> <a href="#link{{key}}" data-toggle="tab" role="tab">{{text}}</a> </li>
<li class="nav-item">
<a class="nav-link" href="#link{{key}}" data-toggle="tab" role="tab">{{text}}</a>
</li>
{{/is_short_branch}}
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
<div class="tab-content">
<div class="tab-content mt-3">
<div class="tab-pane active" id="link{{node.key}}" role="tabpanel">
<div class="well">
<div class="container-fluid">
<div class="row">
<div class="span9 offset3">
<ul class="unstyled indented-list">
{{#node.children}}
{{^children.count}}
{{#display}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
</div>
<div class="container">
<div class="row">
<div class="col-sm-3">
</div>
<div class="col">
<ul class="list-unstyled">
{{#node.children}}
{{^children.count}}
{{#display}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
</div>
</div>
{{#node.children}}
{{#display}}
{{#children.count}}
{{#is_short_branch}}
{{#node.children}}
{{#display}}
{{#children.count}}
{{#is_short_branch}}
<hr>
<div class="row">
<div class="col-sm-3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="col">
<ul class="list-unstyled">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/is_short_branch}}
{{/children.count}}
{{/display}}
{{/node.children}}
</div>
</div>
{{#node.children}}
{{#children.count}}
<div class="tab-pane" id="link{{key}}" role="tabpanel">
<div class="container">
<div class="row">
<div class="col-sm-3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="col-sm-9">
<ul class="list-unstyled">
{{#children}}
{{#display}}
{{^children.count}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/children.count}}
{{/display}}
{{/children}}
</ul>
</div>
</div>
{{#children}}
{{#display}}
{{#children.count}}
<hr>
<div class="row">
<div class="span3">
<div class="col-sm-3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="span9">
<ul class="unstyled indented-list">
<div class="col-sm-9">
<ul class="list-unstyled">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/is_short_branch}}
{{/children.count}}
{{/display}}
{{/node.children}}
</div>
</div>
</div>
{{#node.children}}
{{#children.count}}
<div class="tab-pane" id="link{{key}}" role="tabpanel">
<div class="well">
<div class="container-fluid">
<div class="row">
<div class="span3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="span9">
<ul class="unstyled">
{{#children}}
{{#display}}
{{^children.count}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/children.count}}
{{/display}}
{{/children}}
</ul>
</div>
</div>
{{#children}}
{{#display}}
{{#children.count}}
<hr>
<div class="row">
<div class="span3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="span9">
<ul class="unstyled indented-list">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/children.count}}
{{/display}}
{{/children}}
</div>
{{/children.count}}
{{/display}}
{{/children}}
</div>
</div>
{{/children.count}}
@@ -36,7 +36,7 @@
{{/action}}
{{#children.count}}
<li>
<ul class="unstyled indented-list">
<ul class="list-unstyled ml-2">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
+25 -2
View File
@@ -3,8 +3,31 @@
Example context (json):
{
"logourl": "https://moodle.org/logo/moodle-logo.svg",
"sitename": "Site name",
"formhtml": "<p>(Form html would go here)</p>"
}
}}
<h3>{{#str}}newaccount{{/str}}</h3>
{{{formhtml}}}
<div class="container-fluid mt-1 mt-md-5">
<div class="row justify-content-md-center">
<div class="col-md-8 col-xl-6">
<div class="card">
<div class="card-body">
<div class="card-title text-xs-center">
{{#logourl}}
<h2><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2>{{sitename}}</h2>
{{/logourl}}
<hr>
</div>
<div class="card-title">
<h3>{{#str}}newaccount{{/str}}</h3>
</div>
{{{formhtml}}}
</div>
</div>
</div>
</div>
</div>
+1 -1
View File
@@ -50,7 +50,7 @@
{{#params}}
<input type="hidden" name="{{name}}" value="{{value}}">
{{/params}}
<button type="submit" class="btn {{#primary}}btn-primary{{/primary}}{{^primary}}btn-default{{/primary}}"
<button type="submit" class="btn {{#primary}}btn-primary{{/primary}}{{^primary}}btn-secondary{{/primary}}"
id="{{id}}"
title={{#quote}}{{tooltip}}{{/quote}}
{{#disabled}}disabled{{/disabled}}>{{label}}</button>
+3 -8
View File
@@ -9,13 +9,8 @@
]
}
}}
<div class="skiplinks">
<div>
{{#links}}
<a href="#{{{url}}}" class="skip">{{{text}}}</a>
<a class="sr-only sr-only-focusable" href="#{{{url}}}">{{{text}}}</a>
{{/links}}
</div>
{{#js}}
require(['core/yui'], function(Y) {
M.util.init_skiplink(Y);
});
{{/js}}
</div>
@@ -1,120 +0,0 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/action_menu_trigger
Action menu trigger.
Example context (json):
{
"text": "Example link text",
"title": "Example link title",
"url": "http://example.com/link",
"classes": "icon menu-action",
"instance": "1",
"triggerextraclasses": "",
"attributes": [
{"name": "role", "value": "menuitem" },
{"name": "data-title", "value": "mymoodle,admin" }
],
"secondary": {
"classes": "menu align-tr-br",
"attributes": [
{"name": "id", "value": "action-menu-0-menu"},
{"name": "data-rel", "value": "menu-content"},
{"name": "role", "value": "menu"},
{"name": "data-align", "value": "tr-br"}
],
"items": [
{"actionmenulink":
{
"id": "action_link59ecf8394a68078",
"disabled": false,
"text": "Dashboard",
"url": "http://example.com/link",
"icon": {
"key": "i/dashboard",
"component": null,
"title": "Dashboard"
},
"classes": "icon menu-action",
"attributes": [
{"name": "role", "value": "menuitem"},
{"name": "data-title", "value": "mymoodle,admin"}
],
"instance": 1,
"showtext": true
}
},
{"actionmenufiller":
{
"id": "action_link59ecf8394a68079",
"disabled": false,
"text": "",
"url": "",
"icon": null,
"classes": "",
"attributes": [
{"name": "role", "value": "menuitem"}
]
}
}
]
}
}
}}
<div class="dropdown">
<a href="#" tabindex="0" class="{{triggerextraclasses}} dropdown-toggle icon-no-margin" id="dropdown-{{instance}}" aria-label="{{title}}" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" aria-controls="action-menu-{{instance}}-menu">
{{{actiontext}}}
{{{menutrigger}}}
{{#icon}}
{{#pix}}
{{key}},{{component}},{{title}}
{{/pix}}
{{/icon}}
{{#rawicon}}{{{.}}}{{/rawicon}}
{{#menutrigger}}
<b class="caret"></b>
{{/menutrigger}}
</a>
{{#secondary}}
<div class="dropdown-menu dropdown-menu-right {{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}} id="dropdown-menu-{{instance}}">
{{#items}}
{{#actionmenulink}}
<a href="{{url}}" class="dropdown-item {{classes}}" {{#attributes}}{{name}}={{#quote}}{{value}}{{/quote}} {{/attributes}}{{#showtext}}aria-labelledby="actionmenuaction-{{instance}}"{{/showtext}}>
{{#icon}}
{{#pix}}{{key}},{{component}},{{title}}{{/pix}}
{{/icon}}
{{#showtext}}
<span class="menu-action-text" id="actionmenuaction-{{instance}}">
{{{text}}}
</span>
{{/showtext}}
</a>
{{/actionmenulink}}
{{#actionmenufiller}}
<div class="dropdown-divider" role="presentation"><span class="filler">&nbsp;</span></div>
{{/actionmenufiller}}
{{^actionmenulink}}
{{^actionmenufiller}}
<div class="dropdown-item">{{> core/action_menu_item }}</div>
{{/actionmenufiller}}
{{/actionmenulink}}
{{/items}}
</div>
{{/secondary}}
</div>
@@ -1,58 +0,0 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core_auth/output/digital_minor_page
Example context (json):
{
"logourl": "https://moodle.org/logo/moodle-logo.svg",
"sitename": "Site name",
"supportname": "John Doe",
"supportemail": "[email protected]",
"homelink": "/"
}
}}
<div class="container-fluid mt-1 mt-md-5">
<div class="row justify-content-md-center">
<div class="col-md-8 push-md-2 col-xl-6 push-xl-3">
<div class="card">
<div class="card-body">
<div class="card-title text-xs-center">
{{#logourl}}
<h2><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2>{{sitename}}</h2>
{{/logourl}}
<hr>
</div>
<div class="card-title">
<h3>{{#str}}considereddigitalminor{{/str}}</h3>
</div>
<div class="p-t-1 p-b-2">
<p>{{#str}}digitalminor_desc{{/str}}</p>
<p class="m-b-0">{{{supportname}}}</p>
<p class="m-b-0">{{{supportemail}}}</p>
</div>
<div class="backlink">
<a href="{{homelink}}">{{#str}}backtohome{{/str}}</a>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -1,64 +0,0 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core_auth/output/verify_age_location_page
Example context (json):
{
"logourl": "https://moodle.org/logo/moodle-logo.svg",
"sitename": "Site name",
"error": "Error message",
"formhtml": "(Form html would go here)"
}
}}
<div class="container-fluid mt-1 mt-md-5">
<div class="row justify-content-md-center">
<div class="col-md-8 push-md-2 col-xl-6 push-xl-3">
<div class="card">
<div class="card-body">
<div class="card-title text-xs-center">
{{#logourl}}
<h2><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2>{{sitename}}</h2>
{{/logourl}}
<hr>
</div>
{{#error}}
<div class="alert alert-danger" role="alert" data-aria-autofocus="true">
{{{error}}}
</div>
{{/error}}
<div class="card-title">
<h3>{{#str}}agelocationverification{{/str}}</h3>
</div>
<div class="m-t-2 m-b-2">
{{{formhtml}}}
</div>
<hr>
<div class="card-title">
<h3>{{#str}}whyisthisrequired{{/str}}</h3>
</div>
<div class="m-t-1">
<p >{{#str}}explanationdigitalminor{{/str}}</p>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -1,61 +0,0 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/availability_info
Renders the availability info on the course outline page.
Availability info can be displayed for activity modules or whole course
sections. Activity modules can be either hidden from students, or available
but not shown on course page (stealth), or the access can be restricted by
configured conditions. Sections can be hidden.
Classes required for JS:
* none
Data attributes required for JS:
* none
Context variables required for this template:
* classes String list of CSS classes for the wrapping element
* text HTML formatted text with the actual availability information
* ishidden Boolean flag indiciating that the item is hidden from students
* isstealth Boolean flag indicating that the item is in stealth mode
* isrestricted Boolean flag indicating that restricted access conditions apply
* isfullinfo Boolean flag indicating that the full list of restricted
access conditions is displayed (aka teacher's view).
Example context (json):
{
"classes": "",
"text": "Not available unless: <ul><li>It is on or after <strong>8 June 2012</strong></li></ul>",
"ishidden": 0,
"isstealth": 0,
"isrestricted": 1,
"isfullinfo": 1
}
}}
{{#text}}
<div class="availabilityinfo {{classes}}">
{{^isrestricted}}
<span class="tag tag-info">{{{text}}}</span>
{{/isrestricted}}
{{#isrestricted}}
<span class="tag tag-info">{{#str}}restricted, core{{/str}}</span> {{{text}}}
{{/isrestricted}}
</div>
{{/text}}
@@ -1,25 +0,0 @@
{{!
@template core/help_icon
Help icon.
Example context (json):
{
"title": "Help with something",
"url": "http://example.org/help",
"linktext": "",
"icon":{
"attributes": [
{"name": "class", "value": "iconhelp"},
{"name": "src", "value": "../../../pix/help.svg"},
{"name": "alt", "value": "Help icon"}
]
}
}
}}
<a class="btn btn-link p-0" role="button"
data-container="body" data-toggle="popover"
data-placement="{{#ltr}}right{{/ltr}}{{^ltr}}left{{/ltr}}" data-content="{{text}} {{completedoclink}}"
data-html="true" tabindex="0" data-trigger="focus">
{{#pix}}help, core, {{{alt}}}{{/pix}}
</a>
@@ -1,244 +0,0 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/loginform
Moodle template for the login page.
Context variables required for this template:
* autofocusform: Auto focus on form ?,
* canloginasguest - Is guest login allowed?,
* canloginbyemail - Is login by email allowed?,
* cansignup - Signup allowed?,
* cookieshelpicon - cookies help icon details
* error - Any errors in the form?,
* forgotpasswordurl - Forgot password url,
* hasidentityproviders - Flag, set to true to hide identity providers,
* hasinstructions - Flag, set to true to show instructions,
* identityproviders - List of identiy providers,
* instructions - Instructions,
* instructionsformat - Format of instructions,
* loginurl - Login url,
* rememberusername - Remeber username?,
* signupurl - Signup url,
* cookieshelpiconformatted - Formatted html of cookies help icon,
* errorformatted - Formatted error,
* logourl - Flag, logo url,
* sitename - Name of site.
* logintoken - Random token to protect login request.
Example context (json):
{
"autofocusform": false,
"canloginasguest": "1",
"canloginbyemail": false,
"cansignup": true,
"cookieshelpicon": {
"heading": "Cookies must be enabled in your browser",
"text": "<div class=\"no-overflow\">Two cookies are used on this site. Both died..</div>",
"icon": {
"attributes": [
{
"name": "class",
"value": "iconhelp"
},
{
"name": "alt",
"value": "Help with Cookies must be enabled in your browser"
},
{
"name": "title",
"value": "Help with Cookies must be enabled in your browser"
},
{
"name": "src",
"value": "http://localhost/stable_master/theme/image.php?theme=boost&component=core&image=help"
}
]
},
"linktext": null,
"title": "Help with Cookies must be enabled in your browser",
"url": "http://localhost/stable_master/help.php?component=core&identifier=cookiesenabled&lang=en",
"ltr": true
},
"error": "",
"forgotpasswordurl": "http://localhost/stable_master/login/forgot_password.php",
"hasidentityproviders": false,
"hasinstructions": true,
"identityproviders": [],
"instructions": "For full access to this site, you first need to create an account.",
"instructionsformat": "1",
"loginurl": "http://localhost/stable_master/login/index.php",
"rememberusername": true,
"signupurl": "http://localhost/stable_master/login/signup.php",
"cookieshelpiconformatted": "",
"errorformatted": "",
"logourl": false,
"sitename": "Beer & Chips",
"logintoken": "randomstring"
}
}}
<div class="my-1 my-sm-5"></div>
<div class="row justify-content-center">
<div class="col-xl-6 col-sm-8 ">
<div class="card">
<div class="card-block">
{{#logourl}}
<h2 class="card-header text-center" ><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2 class="card-header text-center">{{sitename}}</h2>
{{/logourl}}
<div class="card-body">
{{#cansignup}}
<div class="sr-only">
<a href="{{signupurl}}">{{#str}} tocreatenewaccount {{/str}}</a>
</div>
{{/cansignup}}
{{#error}}
<div class="loginerrors mt-3">
<a href="#" id="loginerrormessage" class="accesshide">{{error}}</a>
<div class="alert alert-danger" role="alert" data-aria-autofocus="true">{{error}}</div>
</div>
{{/error}}
<div class="row justify-content-md-center">
<div class="col-md-5">
<form class="mt-3" action="{{loginurl}}" method="post" id="login">
<input id="anchor" type="hidden" name="anchor" value="">
<script>document.getElementById('anchor').value = location.hash;</script>
<input type="hidden" name="logintoken" value="{{logintoken}}">
<div class="form-group">
<label for="username" class="sr-only">
{{^canloginbyemail}}
{{#str}} username {{/str}}
{{/canloginbyemail}}
{{#canloginbyemail}}
{{#str}} usernameemail {{/str}}
{{/canloginbyemail}}
</label>
<input type="text" name="username" id="username"
class="form-control"
value="{{username}}"
placeholder={{#quote}}{{^canloginbyemail}}{{#str}}username{{/str}}{{/canloginbyemail}}{{#canloginbyemail}}{{#str}}usernameemail{{/str}}{{/canloginbyemail}}{{/quote}}
autocomplete="username">
</div>
<div class="form-group">
<label for="password" class="sr-only">{{#str}} password {{/str}}</label>
<input type="password" name="password" id="password" value=""
class="form-control"
placeholder={{#quote}}{{#str}}password{{/str}}{{/quote}}
autocomplete="current-password">
</div>
{{#rememberusername}}
<div class="rememberpass mt-3">
<input type="checkbox" name="rememberusername" id="rememberusername" value="1" {{#username}}checked="checked"{{/username}} />
<label for="rememberusername">{{#str}} rememberusername, admin {{/str}}</label>
</div>
{{/rememberusername}}
<button type="submit" class="btn btn-primary btn-block mt-3" id="loginbtn">{{#str}}login{{/str}}</button>
</form>
</div>
<div class="col-md-5">
<div class="forgetpass mt-3">
<p><a href="{{forgotpasswordurl}}">{{#str}}forgotten{{/str}}</a></p>
</div>
<div class="mt-3">
{{#str}} cookiesenabled {{/str}}
{{{cookieshelpiconformatted}}}
</div>
{{#canloginasguest}}
<div class="mt-2">
<p>{{#str}}someallowguest{{/str}}</p>
<form action="{{loginurl}}" method="post" id="guestlogin">
<input type="hidden" name="logintoken" value="{{logintoken}}">
<input type="hidden" name="username" value="guest" />
<input type="hidden" name="password" value="guest" />
<button class="btn btn-secondary btn-block" type="submit">{{#str}}loginguest{{/str}}</button>
</form>
</div>
{{/canloginasguest}}
{{#hasidentityproviders}}
<h6 class="mt-2">{{#str}} potentialidps, auth {{/str}}</h6>
<div class="potentialidplist" class="mt-3">
{{#identityproviders}}
<div class="potentialidp">
<a href="{{url}}" title={{#quote}}{{name}}{{/quote}} class="btn btn-secondary btn-block">
{{#iconurl}}
<img src="{{iconurl}}" alt="" width="24" height="24"/>
{{/iconurl}}
{{name}}
</a>
</div>
{{/identityproviders}}
</div>
{{/hasidentityproviders}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{{#hasinstructions}}
<div class="row justify-content-center mt-3">
<div class="col-xl-6 col-sm-8">
<div class="card">
<div class="card-body">
<div class="card-title">
<h2>{{#str}}firsttime{{/str}}</h2>
</div>
<div>
{{{instructions}}}
{{#cansignup}}
<form class="mt-3" action="{{signupurl}}" method="get" id="signup">
<button type="submit" class="btn btn-secondary">{{#str}}startsignup{{/str}}</button>
</form>
{{/cansignup}}
</div>
</div>
</div>
</div>
</div>
{{/hasinstructions}}
{{#js}}
{{#error}}
require(['jquery'], function($) {
$('#loginerrormessage').focus();
});
{{/error}}
{{^error}}
{{#autofocusform}}
require(['jquery'], function($) {
if ($('#username').val()) {
$('#password').focus();
} else {
$('#username').focus();
}
});
{{/autofocusform}}
{{/error}}
{{/js}}
@@ -1,147 +0,0 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/settings_link_page
Displays the admin tree as a list of grouped links.
Example context (json):
{
"node": {
"text": "Root of menu",
"key": "test0",
"display": true,
"children": [
{
"text": "Child of menu",
"key": "test1",
"display": true,
"children": []
}
]
}
}
}}
<ul class="nav nav-tabs" role="tablist">
<!-- First the top most node and immediate children -->
<li class="nav-item">
<a class="nav-link active" href="#link{{node.key}}" data-toggle="tab" role="tab">{{node.text}}</a>
</li>
<!-- Now the first level children with sub nodes -->
{{#node.children}}
{{#children.count}}
{{#display}}
{{^is_short_branch}}
<li class="nav-item">
<a class="nav-link" href="#link{{key}}" data-toggle="tab" role="tab">{{text}}</a>
</li>
{{/is_short_branch}}
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
<div class="tab-content mt-3">
<div class="tab-pane active" id="link{{node.key}}" role="tabpanel">
<div class="container">
<div class="row">
<div class="col-sm-3">
</div>
<div class="col">
<ul class="list-unstyled">
{{#node.children}}
{{^children.count}}
{{#display}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
</div>
</div>
{{#node.children}}
{{#display}}
{{#children.count}}
{{#is_short_branch}}
<hr>
<div class="row">
<div class="col-sm-3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="col">
<ul class="list-unstyled">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/is_short_branch}}
{{/children.count}}
{{/display}}
{{/node.children}}
</div>
</div>
{{#node.children}}
{{#children.count}}
<div class="tab-pane" id="link{{key}}" role="tabpanel">
<div class="container">
<div class="row">
<div class="col-sm-3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="col-sm-9">
<ul class="list-unstyled">
{{#children}}
{{#display}}
{{^children.count}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/children.count}}
{{/display}}
{{/children}}
</ul>
</div>
</div>
{{#children}}
{{#display}}
{{#children.count}}
<hr>
<div class="row">
<div class="col-sm-3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="col-sm-9">
<ul class="list-unstyled">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/children.count}}
{{/display}}
{{/children}}
</div>
</div>
{{/children.count}}
{{/node.children}}
</div>
@@ -1,33 +0,0 @@
{{!
@template core/signup_form_layout
Example context (json):
{
"logourl": "https://moodle.org/logo/moodle-logo.svg",
"sitename": "Site name",
"formhtml": "<p>(Form html would go here)</p>"
}
}}
<div class="container-fluid mt-1 mt-md-5">
<div class="row justify-content-md-center">
<div class="col-md-8 col-xl-6">
<div class="card">
<div class="card-body">
<div class="card-title text-xs-center">
{{#logourl}}
<h2><img src="{{logourl}}" title="{{sitename}}" alt="{{sitename}}"/></h2>
{{/logourl}}
{{^logourl}}
<h2>{{sitename}}</h2>
{{/logourl}}
<hr>
</div>
<div class="card-title">
<h3>{{#str}}newaccount{{/str}}</h3>
</div>
{{{formhtml}}}
</div>
</div>
</div>
</div>
</div>
@@ -30,26 +30,31 @@
}
}
}}
<div class="action-menu {{classes}} d-inline"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
<div class="{{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#primary}}
<div class="{{classes}} d-flex "{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
<ul class="{{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#prioritise}}{{> core/action_menu_trigger }}{{/prioritise}}
{{#prioritise}}<li role="presentation">{{> core/action_menu_trigger }}</li>{{/prioritise}}<!--
{{#items}}
<div class="action-menu-item">
{{> core/action_menu_item }}
</div>
{{/items}}
-->{{#items}}<li role="presentation">{{> core/action_menu_item }}</li>{{/items}}<!--
{{^prioritise}}
<div class="action-menu-trigger">
{{> core/action_menu_trigger }}
</div>
{{/prioritise}}
-->{{^prioritise}}<li role="presentation">{{> core/action_menu_trigger }}</li>{{/prioritise}}
</div>
</ul>
{{/primary}}
{{#secondary}}
<ul class="{{classes}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#items}}<li role="presentation">{{> core/action_menu_item }}</li>{{/items}}
</ul>
{{/secondary}}
</div>
{{#js}}
require(['core/yui'], function(Y) {
Y.use('moodle-core-actionmenu', function() {
M.core.actionmenu.init();
});
});
{{/js}}
@@ -23,12 +23,14 @@
{
"text": "Example link text",
"showtext": true,
"url": "http://example.com/link"
"url": "http://example.com/link",
"classes": "menu-action",
"instance": "1"
}
}}
{{^disabled}}
<a href="{{url}}" class="{{classes}}" {{#attributes}}{{name}}={{#quote}}{{value}}{{/quote}} {{/attributes}}{{#showtext}}aria-labelledby="actionmenuaction-{{instance}}"{{/showtext}}>{{#icon}}{{#pix}}{{key}}, {{component}}, {{title}}{{/pix}}{{/icon}}{{#showtext}}<span class="menu-action-text" id="actionmenuaction-{{instance}}">{{{text}}}</span>{{/showtext}}</a>
{{/disabled}}
{{#disabled}}
<span class="currentlink" role="menuitem">{{#icon}}{{#pix}}{{key}},{{component}},{{title}}{{/pix}}{{/icon}}{{{text}}}</span>
<span class="currentlink" role="menuitem">{{#icon}}{{#pix}}{{key}}, {{component}}, {{title}}{{/pix}}{{/icon}}{{{text}}}</span>
{{/disabled}}
@@ -0,0 +1,30 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/action_menu_trigger
Action menu trigger.
Example context (json):
{
"instance": "1",
"title": "Trigger me!",
"menutrigger": true,
"triggerextraclasses": ""
}
}}
<a href="#" class="{{triggerextraclasses}} toggle-display {{#menutrigger}}textmenu{{/menutrigger}}" id="action-menu-toggle-{{instance}}" title="{{title}}" role="menuitem">{{{actiontext}}}{{{menutrigger}}}{{#icon}}{{#pix}}{{key}}, {{component}}, {{title}}{{/pix}}{{/icon}}{{#rawicon}}{{{.}}}{{/rawicon}}{{#menutrigger}}<b class="caret"></b>{{/menutrigger}}</a>
@@ -0,0 +1,37 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core_auth/output/digital_minor_page
Example context (json):
{
"logourl": "https://moodle.org/logo/moodle-logo.svg",
"sitename": "Site name",
"supportname": "John Doe",
"supportemail": "[email protected]",
"homelink": "/"
}
}}
<h3>{{#str}}considereddigitalminor{{/str}}</h3>
<p class="m-b-0">{{#str}}digitalminor_desc{{/str}}</p>
<div class="p-t-1 p-b-1">
<p class="m-b-0">{{{supportname}}}</p>
<p class="m-b-0">{{{supportemail}}}</p>
</div>
<div class="backlink">
<a href="{{homelink}}">{{#str}}backtohome{{/str}}</a>
</div>
@@ -0,0 +1,37 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core_auth/output/verify_age_location_page
Example context (json):
{
"logourl": "https://moodle.org/logo/moodle-logo.svg",
"sitename": "Site name",
"error": "Error message",
"formhtml": "(Form html would go here)"
}
}}
{{#error}}
<div class="alert alert-danger" role="alert">
{{{error}}}
</div>
{{/error}}
<h3>{{#str}}agelocationverification{{/str}}</h3>
{{{formhtml}}}
<hr>
<h3>{{#str}}whyisthisrequired{{/str}}</h3>
<p >{{#str}}explanationdigitalminor{{/str}}</p>
@@ -70,8 +70,8 @@
</div>
<div class="submitbuttons">
<input type="submit" name="submitbutton" class="submitbutton btn btn-primary" value={{#quote}}{{#str}}add{{/str}}{{/quote}}>
<input type="submit" name="addcancel" class="addcancel btn btn-secondary" value={{#quote}}{{#str}}cancel{{/str}}{{/quote}}>
<input type="submit" name="submitbutton" class="submitbutton" value={{#quote}}{{#str}}add{{/str}}{{/quote}}>
<input type="submit" name="addcancel" class="addcancel" value={{#quote}}{{#str}}cancel{{/str}}{{/quote}}>
</div>
</form>
@@ -41,8 +41,8 @@
}
}}
<div class="row">
<div class="col-md-4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="col-md-4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="col-md-4">{{$ column3 }}{{{ col3content }}}{{/ column3 }}</div>
<div class="row-fluid rtl-compatible">
<div class="span4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="span4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="span4">{{$ column3 }}{{{ col3content }}}{{/ column3 }}</div>
</div>
@@ -39,7 +39,7 @@
}
}}
<div class="row">
<div class="col-md-4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="col-md-8">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="row-fluid rtl-compatible">
<div class="span4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="span8">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
</div>
@@ -38,7 +38,7 @@
"col2content": "<div class='alert alert-success'>2. Vivamus ac orci in velit fringilla aliquam a a nisl. Cras luctus quam laoreet magna pulvinar aliquet.</div>"
}
}}
<div class="row">
<div class="col-md-8">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="col-md-4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
<div class="row-fluid rtl-compatible">
<div class="span8">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
<div class="span4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
</div>
@@ -17,6 +17,8 @@
{{!
@template core/dataformat_selector
Template for dataformat selection and download form.
Context variables required for this template:
* label
* base
@@ -30,26 +32,24 @@
{
"base": "http://example.org/",
"name": "test",
"value": "test",
"label": "Download table data as",
"params": false,
"options": [{"label": "CSV", "name": "csv"}, {"label": "Excel", "name": "excel"}],
"submit": "Download",
"sesskey": ""
"submit": "Download"
}
}}
<form method="get" action="{{base}}" class="dataformatselector m-1">
<div class="form-inline text-xs-right">
<form method="get" action="{{base}}" class="dataformatselector">
<div class="mdl-align">
<input type="hidden" name="sesskey" value="{{sesskey}}">
<label for="downloadtype_{{name}}" class="mr-1">{{label}}</label>
<select name="{{name}}" id="downloadtype_{{name}}" class="form-control">
{{#options}}
<option value="{{value}}">{{label}}</option>
{{/options}}
<label for="downloadtype_{{name}}">{{label}}</label>
<select name="{{name}}" id="downloadtype_{{name}}">
{{#options}}
<option value="{{value}}">{{label}}</option>
{{/options}}
</select>
<button type="submit" class="btn btn-secondary">{{submit}}</button>
<input type="submit" value="{{submit}}">
{{#params}}
<input type="hidden" name="{{name}}" value="{{value}}">
<input type="hidden" name="{{name}}" value="{{value}}" />
{{/params}}
</div>
</form>
@@ -36,7 +36,7 @@
{ "inputID": 1, "suggestionsId": 2, "selectionId": 3, "downArrowId": 4, "placeholder": "Select something" }
}}
{{#showSuggestions}}
<input type="text" id="{{inputId}}" class="form-control" list="{{suggestionsId}}" placeholder="{{placeholder}}" role="combobox" aria-expanded="false" autocomplete="off" autocorrect="off" autocapitalize="off" aria-autocomplete="list" aria-owns="{{suggestionsId}} {{selectionId}}" {{#tags}}data-tags="1"{{/tags}}/><span class="form-autocomplete-downarrow" id="{{downArrowId}}">&#x25BC;</span>
<input type="text" id="{{inputId}}" list="{{suggestionsId}}" placeholder="{{placeholder}}" role="combobox" aria-expanded="false" autocomplete="off" autocorrect="off" autocapitalize="off" aria-autocomplete="list" aria-owns="{{suggestionsId}} {{selectionId}}" {{#tags}}data-tags="1"{{/tags}}/><span class="form-autocomplete-downarrow" id="{{downArrowId}}">&#x25BC;</span>
{{/showSuggestions}}
{{^showSuggestions}}
<input type="text" id="{{inputId}}" placeholder="{{placeholder}}" role="textbox" aria-owns="{{selectionId}}" {{#tags}}data-tags="1"{{/tags}}/>
@@ -37,14 +37,15 @@
{ "label": "Another item label with <strong>tags</strong>", "value": "4" }
], "noSelectionString": "No selection" }
}}
<div class="form-autocomplete-selection w-100 {{#multiple}}form-autocomplete-multiple{{/multiple}}" id="{{selectionId}}" role="list" aria-atomic="true" {{#multiple}}tabindex="0" aria-multiselectable="true"{{/multiple}}>
<div class="form-autocomplete-selection {{#multiple}}form-autocomplete-multiple{{/multiple}}" id="{{selectionId}}" role="list" aria-atomic="true" {{#multiple}}tabindex="0" aria-multiselectable="true"{{/multiple}}>
<span class="accesshide">{{#str}}selecteditems, form{{/str}}</span>
{{#items}}
<span role="listitem" data-value="{{value}}" aria-selected="true" class="tag tag-info mb-3 mr-1" style="font-size: 100%">
<span role="listitem" data-value="{{value}}" aria-selected="true" class="label label-info" style="font-size: 100%; margin-bottom: 0.5rem;">
{{#multiple}}<span aria-hidden="true">× </span>{{/multiple}}{{{label}}}
</span>
{{/items}}
{{^items}}
<span class="mb-3 mr-1">{{noSelectionString}}</span>
<span>{{noSelectionString}}</span>
{{/items}}
</div>
</div>
@@ -0,0 +1,38 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/help_icon
Help icon.
Example context (json):
{
"title": "Help with something",
"url": "http://example.org/help",
"linktext": "",
"icon":{
"attributes": [
{"name": "class", "value": "iconhelp"},
{"name": "src", "value": "../../../pix/help.svg"},
{"name": "alt", "value": "Help icon"}
]
}
}
}}
<span class="helptooltip">
<a href="{{url}}" title={{#quote}}{{title}}{{/quote}} aria-haspopup="true" target="_blank">{{#icon}}{{>core/pix_icon}}{{/icon}}{{#linktext}}{{.}}{{/linktext}}</a>
</span>
@@ -73,30 +73,24 @@
]
}
}}
<div class="initialbar {{class}} d-flex flex-wrap justify-content-center justify-content-md-start">
<span class="initialbarlabel mr-2">{{title}}</span>
<div class="initialbar {{class}}">
<span class="initialbarlabel">{{title}}</span>
{{#current}}
<a class="initialbarall page-item letter" href="{{url}}">{{all}}</a>
{{/current}}
{{^current}}
<div class="initialbarall letter page-item active">{{all}}</div>
{{/current}}
<div class="initialbargroups d-flex flex-wrap justify-content-center justify-content-md-start">
<ul class="pagination pagination-sm">
{{#current}}
<li class="initialbarall page-item">
<a class="page-link" href="{{url}}">{{all}}</a>
</li>
{{/current}}
{{^current}}
<li class="initialbarall page-item active">
<a class="page-link">{{all}}</a>
</li>
{{/current}}
</ul>
<div class="initialbargroups">
{{#group}}
<ul class="pagination pagination-sm">
<ul class="initialbargroup">
{{#letter}}
{{#selected}}
<li class="page-item active {{name}}"><span class="page-link">{{name}}</span></li>
<li><span class="letter page-item active {{name}}">{{name}}</span></li>
{{/selected}}
{{^selected}}
<li class="page-item {{name}}"><a class="page-link" href="{{url}}">{{name}}</a></li>
<li><a class="letter page-item {{name}}" href="{{url}}">{{name}}</a></li>
{{/selected}}
{{/letter}}
</ul>
@@ -0,0 +1,183 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/loginform
Moodle template for the login page.
Example context (json):
{
"autofocusform": false,
"canloginasguest": true,
"canloginbyemail": true,
"cansignup": true,
"error": "testerror",
"errorformatted": "Test error formatted",
"forgotpasswordurl": "http://example.com/login/forgot_password.php",
"hasidentityproviders": false,
"hasinstructions": true,
"instructions": "For full access to this site, you first need to create an account.",
"loginurl": "http://example.com/stable_master/login/index.php",
"rememberusername": true,
"signupurl": "http://localhost/stable_master/login/signup.php",
"cookieshelpiconformatted": "",
"username": "",
"logintoken": "randomstring"
}
}}
{{#hasinstructions}}
<div class="loginbox clearfix twocolumns">
{{/hasinstructions}}
{{^hasinstructions}}
<div class="loginbox clearfix onecolumn">
{{/hasinstructions}}
<div class="loginpanel">
{{#cansignup}}
<div class="skiplinks">
<a class="skip" href="{{signupurl}}">{{#str}} tocreatenewaccount {{/str}}</a>
</div>
{{/cansignup}}
<h2>{{#str}} login {{/str}}</h2>
<div class="subcontent loginsub">
{{#error}}
<div class="loginerrors" role="alert">
<a href="#" id="loginerrormessage" class="accesshide">{{error}}</a>
{{{errorformatted}}}
</div>
{{/error}}
<form action="{{loginurl}}" method="post" id="login">
<div class="loginform">
<div class="form-label">
<label for="username">
{{^canloginbyemail}}
{{#str}} username {{/str}}
{{/canloginbyemail}}
{{#canloginbyemail}}
{{#str}} usernameemail {{/str}}
{{/canloginbyemail}}
</label>
</div>
<div class="form-input">
<input type="text" name="username" id="username" size="15" value="{{username}}" autocomplete="username">
</div>
<div class="clearer"><!-- --></div>
<div class="form-label">
<label for="password">{{#str}} password {{/str}}</label>
</div>
<div class="form-input">
<input type="password" name="password" id="password" size="15" value="" autocomplete="current-password">
</div>
</div>
<div class="clearer"><!-- --></div>
{{#rememberusername}}
<div class="rememberpass">
<input type="checkbox" name="rememberusername" id="rememberusername" value="1" {{#username}}checked="checked"{{/username}} />
<label for="rememberusername">{{#str}} rememberusername, admin {{/str}}</label>
</div>
{{/rememberusername}}
<div class="clearer"><!-- --></div>
<input id="anchor" type="hidden" name="anchor" value="" />
<script>document.getElementById('anchor').value = location.hash;</script>
<input type="hidden" name="logintoken" value="{{logintoken}}">
<input type="submit" id="loginbtn" value={{#quote}}{{#str}} login {{/str}}{{/quote}} />
<div class="forgetpass">
<a href="{{forgotpasswordurl}}">{{#str}} forgotten {{/str}}</a>
</div>
</form>
<div class="desc">
{{#str}} cookiesenabled {{/str}}
{{{cookieshelpiconformatted}}}
</div>
</div>
{{#canloginasguest}}
<div class="subcontent guestsub">
<div class="desc">{{#str}} someallowguest {{/str}}</div>
<form action="{{loginurl}}" method="post" id="guestlogin">
<div class="guestform">
<input type="hidden" name="logintoken" value="{{logintoken}}">
<input type="hidden" name="username" value="guest" />
<input type="hidden" name="password" value="guest" />
<input type="submit" value={{#quote}}{{#str}} loginguest {{/str}}{{/quote}} />
</div>
</form>
</div>
{{/canloginasguest}}
</div>
<div class="signuppanel">
{{#hasinstructions}}
<h2>{{#str}} firsttime {{/str}}</h2>
<div class="subcontent">
{{{instructions}}}
{{#cansignup}}
<div class="signupform">
<form action="{{signupurl}}" method="get" id="signup">
<div>
<input type="submit" value={{#quote}}{{#str}} startsignup {{/str}}{{/quote}} />
</div>
</form>
</div>
{{/cansignup}}
</div>
{{/hasinstructions}}
{{#hasidentityproviders}}
<div class="subcontent potentialidps">
<h6>{{#str}} potentialidps, auth {{/str}}</h6>
<div class="potentialidplist">
{{#identityproviders}}
<div class="potentialidp">
<a href="{{url}}" title={{#quote}}{{name}}{{/quote}} class="btn">
{{#iconurl}}
<img src="{{iconurl}}" alt="" width="24" height="24"/>
{{/iconurl}}
{{name}}
</a>
</div>
{{/identityproviders}}
</div>
</div>
{{/hasidentityproviders}}
</div>
</div>
{{#js}}
{{#error}}
require(['jquery'], function($) {
$('#loginerrormessage').focus();
});
{{/error}}
{{^error}}
{{#autofocusform}}
require(['jquery'], function($) {
if ($('#username').val()) {
$('#password').focus();
} else {
$('#username').focus();
}
});
{{/autofocusform}}
{{/error}}
{{/js}}
@@ -40,28 +40,28 @@
}
}}
<div class="modal moodle-has-zindex" data-region="modal-container" aria-hidden="true" role="dialog">
<div class="modal-dialog {{$classes}}{{/classes}}" role="document" data-region="modal" aria-labelledby="{{uniqid}}-modal-title" tabindex="0">
<div class="modal-content">
<div class="modal-header {{$headerclasses}}{{headerclasses}}{{/headerclasses}}" data-region="header">
{{$header}}
<h5 id="{{uniqid}}-modal-title" class="modal-title" data-region="title">{{$title}}{{title}}{{/title}}</h5>
{{/header}}
<button type="button" class="close" data-action="hide" aria-label={{#quote}}{{#str}}closebuttontitle{{/str}}{{/quote}}>
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" data-region="body">
{{$body}}
{{{body}}}
{{/body}}
</div>
<div class="modal-footer" data-region="footer">
{{$footer}}
{{{footer}}}
{{/footer}}
</div>
<div class="modal-container moodle-has-zindex hide" data-region="modal-container" aria-hidden="true" role="dialog">
<div class="modal {{$classes}}{{/classes}}"
data-region="modal"
aria-labelledby="{{uniqid}}-modal-title"
role="document" tabindex="0">
<div class="modal-header {{$headerclasses}}{{headerclasses}}{{/headerclasses}}" data-region="header">
<button type="button" class="close" data-action="hide" title="{{#str}} closebuttontitle {{/str}}"></button>
{{$header}}
<h3 id="{{uniqid}}-modal-title" class="modal-title" data-region="title">
{{$title}}{{title}}{{/title}}
</h3>
{{/header}}
</div>
<div class="modal-body" data-region="body">
{{$body}}
{{{body}}}
{{/body}}
</div>
<div class="modal-footer" data-region="footer">
{{$footer}}
{{{footer}}}
{{/footer}}
</div>
</div>
</div>
@@ -33,4 +33,4 @@
Example context (json):
{}
}}
<div class="modal-backdrop in hide" aria-hidden="true" data-region="modal-backdrop"></div>
<div class="modal-backdrop hide" aria-hidden="true" data-region="modal-backdrop"></div>
@@ -36,9 +36,15 @@
Example context (json):
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-danger alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
<div class="alert alert-error alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
@@ -37,9 +37,14 @@
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-info alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
@@ -37,8 +37,14 @@
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-success alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
@@ -37,8 +37,14 @@
{ "message": "Your pants are on fire!", "closebutton": 1, "announce": 1, "extraclasses": "foo bar"}
}}
<div class="alert alert-warning alert-block fade in {{ extraclasses }}" {{!
}}{{# announce }} role="alert" data-aria-autofocus="true"{{/ announce }}{{!
}}{{# announce }} role="alert"{{/ announce }}{{!
}}>
{{# closebutton }}<button type="button" class="close" data-dismiss="alert">&times;</button>{{/ closebutton }}
{{{ message }}}
</div>
{{# js }}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
// Setup closing of bootstrap alerts.
$().alert();
});
{{/ js }}
@@ -25,12 +25,12 @@
"width": "500"
}
}}
<div id="{{id}}" class="row progressbar_container">
<div class="col-md-6 push-md-3">
<p id="{{id}}_status" class="text-xs-center"></p>
<progress id="{{id}}_bar" class="progress progress-striped progress-animated" value="0" max="100"></progress>
<p id="{{id}}_estimate" class="text-xs-center"></p>
<div class="progressbar_container" style="width: {{width}}px;" id="{{id}}">
<h2 id="{{id}}_status"></h2>
<div class="progress progress-striped active">
<div id="{{id}}_bar" class="bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">&nbsp;</div>
</div>
<p id="{{id}}_estimate"></p>
</div>
{{! We must not use the JS helper otherwise this gets executed too late. }}
@@ -47,18 +47,20 @@
estimate = e.detail.estimate;
statusIndicator.textContent = msg;
progressBar.setAttribute('value', Math.round(percent));
progressBar.textContent = '' + percent + '%';
if (percent === 100) {
progressBar.classList.add('progress-success');
estimateIndicator.textContent = '100%';
el.classList.add('progress-success');
estimateIndicator.textContent = '';
} else {
if (estimate) {
estimateIndicator.textContent = estimate + ' - ' + percent + '%';
estimateIndicator.textContent = estimate;
} else {
estimateIndicator.textContent = '' + percent + '%';
estimateIndicator.textContent = '';
}
progressBar.classList.remove('progress-success');
el.classList.remove('progress-success');
}
progressBar.setAttribute('aria-valuenow', percent);
progressBar.setAttribute('style', 'width: ' + percent + '%');
});
})();
</script>
@@ -30,8 +30,8 @@
]
}
}}
<label for="{{id}}" class="sr-only">{{label}}</label>
<select name="{{name}}" id="{{id}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}} class="form-control">
<label for="{{id}}" class="accesshide">{{label}}</label>
<select name="{{name}}" id="{{id}}"{{#attributes}} {{name}}="{{value}}"{{/attributes}}>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
@@ -0,0 +1,145 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/settings_link_page
Displays the admin tree as a list of grouped links.
Example context (json):
{
"node": {
"text": "Root of menu",
"key": "test0",
"display": true,
"children": [
{
"text": "Child of menu",
"key": "test1",
"display": true,
"children": []
}
]
}
}
}}
<ul class="nav nav-tabs" role="tablist">
<!-- First the top most node and immediate children -->
<li class="active"> <a href="#link{{node.key}}" data-toggle="tab" role="tab">{{node.text}}</a> </li>
<!-- Now the first level children with sub nodes -->
{{#node.children}}
{{#children.count}}
{{#display}}
{{^is_short_branch}}
<li> <a href="#link{{key}}" data-toggle="tab" role="tab">{{text}}</a> </li>
{{/is_short_branch}}
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
<div class="tab-content">
<div class="tab-pane active" id="link{{node.key}}" role="tabpanel">
<div class="well">
<div class="container-fluid">
<div class="row">
<div class="span9 offset3">
<ul class="unstyled indented-list">
{{#node.children}}
{{^children.count}}
{{#display}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/display}}
{{/children.count}}
{{/node.children}}
</ul>
</div>
</div>
{{#node.children}}
{{#display}}
{{#children.count}}
{{#is_short_branch}}
<hr>
<div class="row">
<div class="span3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="span9">
<ul class="unstyled indented-list">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/is_short_branch}}
{{/children.count}}
{{/display}}
{{/node.children}}
</div>
</div>
</div>
{{#node.children}}
{{#children.count}}
<div class="tab-pane" id="link{{key}}" role="tabpanel">
<div class="well">
<div class="container-fluid">
<div class="row">
<div class="span3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="span9">
<ul class="unstyled">
{{#children}}
{{#display}}
{{^children.count}}
<li><a href="{{{action}}}">{{text}}</a></li>
{{/children.count}}
{{/display}}
{{/children}}
</ul>
</div>
</div>
{{#children}}
{{#display}}
{{#children.count}}
<hr>
<div class="row">
<div class="span3">
{{#action}}<h4><a href="{{action}}">{{text}}</a><h4>{{/action}}
{{^action}}<h4>{{text}}<h4>{{/action}}
</div>
<div class="span9">
<ul class="unstyled indented-list">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
</ul>
</div>
</div>
{{/children.count}}
{{/display}}
{{/children}}
</div>
</div>
</div>
{{/children.count}}
{{/node.children}}
</div>
@@ -36,7 +36,7 @@
{{/action}}
{{#children.count}}
<li>
<ul class="list-unstyled ml-2">
<ul class="unstyled indented-list">
{{#children}}
{{> core/settings_link_page_single }}
{{/children}}
@@ -0,0 +1,10 @@
{{!
@template core/signup_form_layout
Example context (json):
{
"formhtml": "<p>(Form html would go here)</p>"
}
}}
<h3>{{#str}}newaccount{{/str}}</h3>
{{{formhtml}}}
@@ -50,7 +50,7 @@
{{#params}}
<input type="hidden" name="{{name}}" value="{{value}}">
{{/params}}
<button type="submit" class="btn {{#primary}}btn-primary{{/primary}}{{^primary}}btn-secondary{{/primary}}"
<button type="submit" class="btn {{#primary}}btn-primary{{/primary}}{{^primary}}btn-default{{/primary}}"
id="{{id}}"
title={{#quote}}{{tooltip}}{{/quote}}
{{#disabled}}disabled{{/disabled}}>{{label}}</button>
@@ -9,8 +9,13 @@
]
}
}}
<div>
<div class="skiplinks">
{{#links}}
<a class="sr-only sr-only-focusable" href="#{{{url}}}">{{{text}}}</a>
<a href="#{{{url}}}" class="skip">{{{text}}}</a>
{{/links}}
</div>
</div>
{{#js}}
require(['core/yui'], function(Y) {
M.util.init_skiplink(Y);
});
{{/js}}