Commit 1ec4fcb6 authored by Carsten  Rose's avatar Carsten Rose
Browse files

F7284tablesorter save sort order

parent 73adfd53
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: QfqRecordList</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: QfqRecordList</h1>
<section>
<header>
<h2>
<span class="ancestors"><a href="global.html#QfqNS">QfqNS</a>.</span>QfqRecordList</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="QfqRecordList"><span class="type-signature"></span>new QfqRecordList<span
class="signature">(deleteUrl)</span><span class="type-signature"></span></h4>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>deleteUrl</code></td>
<td class="type">
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="QfqRecordList.js.html">QfqRecordList.js</a>, <a
href="QfqRecordList.js.html#line17">line 17</a>
</li>
</ul>
</dd>
</dl>
</div>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2>
<h3>Classes</h3>
<ul>
<li><a href="n.Alert.html">Alert</a></li>
<li><a href="QfqNS.BSTabs.html">BSTabs</a></li>
<li><a href="QfqNS.Element.Checkbox.html">Checkbox</a></li>
<li><a href="QfqNS.Element.FormGroup.html">FormGroup</a></li>
<li><a href="QfqNS.Element.Radio.html">Radio</a></li>
<li><a href="QfqNS.Element.Select.html">Select</a></li>
<li><a href="QfqNS.Element.Textual.html">Textual</a></li>
<li><a href="QfqNS.FileDelete.html">FileDelete</a></li>
<li><a href="QfqNS.FileUpload.html">FileUpload</a></li>
<li><a href="QfqNS.Form.html">Form</a></li>
<li><a href="QfqNS.PageState.html">PageState</a></li>
<li><a href="QfqNS.QfqForm.html">QfqForm</a></li>
<li><a href="QfqNS.QfqPage.html">QfqPage</a></li>
<li><a href="QfqNS.QfqRecordList.html">QfqRecordList</a></li>
</ul>
<h3>Namespaces</h3>
<ul>
<li><a href="global.html#QfqNS">QfqNS</a></li>
<li><a href="QfqNS.Element.html">Element</a></li>
<li><a href="QfqNS.Helper.html">Helper</a></li>
</ul>
<h3><a href="global.html">Global</a></h3>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Mon May 23 2016 12:28:24
GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"></script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: QfqPage.js</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: QfqPage.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/**
* @author Rafael Ostertag &lt;rafael.ostertag@math.uzh.ch>
*/
/* global $ */
/* global console */
/* @depend QfqEvents.js */
/**
* Qfq Namespace
*
* @namespace QfqNS
*/
var QfqNS = QfqNS || {};
(function (n) {
'use strict';
/**
*
* @param settings
* @constructor
*
* @name QfqNS.QfqPage
*/
n.QfqPage = function (settings) {
this.settings = $.extend(
{
tabsId: "qfqTabs",
formId: "qfqForm",
submitTo: "typo3conf/ext/qfq/qfq/api/save.php",
deleteUrl: "typo3conf/ext/qfq/qfq/api/delete.php",
refreshUrl: "typo3conf/ext/qfq/qfq/api/load.php",
fileUploadTo: "typo3conf/ext/qfq/qfq/api/upload.php",
fileDeleteUrl: "typo3conf/ext/qfq/qfq/api/filedelete.php",
pageState: new n.PageState()
}, settings
);
this.intentionalClose = false;
try {
this.bsTabs = new n.BSTabs(this.settings.tabsId);
var currentState = this.settings.pageState.getPageState();
if (currentState !== "") {
this.bsTabs.activateTab(currentState);
n.PageTitle.setSubTitle(this.bsTabs.getTabName(currentState));
} else {
this.settings.pageState.setPageState(this.bsTabs.getCurrentTab(), n.PageTitle.get());
}
this.bsTabs.on('bootstrap.tab.shown', this.tabShowHandler.bind(this));
this.settings.pageState.on('pagestate.state.popped', this.popStateHandler.bind(this));
} catch (e) {
n.Log.message(e.message);
this.bsTabs = null;
}
try {
this.qfqForm = new n.QfqForm(
this.settings.formId,
this.settings.submitTo,
this.settings.deleteUrl,
this.settings.refreshUrl,
this.settings.fileUploadTo,
this.settings.fileDeleteUrl);
this.qfqForm.setBsTabs(this.bsTabs);
this.qfqForm.on('qfqform.destroyed', this.destroyFormHandler.bind(this));
var that = this;
this.qfqForm.on('qfqform.close-intentional', function () {
that.intentionalClose = true;
});
window.addEventListener("beforeunload", this.beforeUnloadHandler.bind(this));
} catch (e) {
n.Log.error(e.message);
this.qfqForm = null;
}
};
/**
* @private
*/
n.QfqPage.prototype.beforeUnloadHandler = function (event) {
var message = "\0/";
if (this.qfqForm.isFormChanged() &amp;&amp; !this.intentionalClose) {
event.returnValue = message;
return message;
}
};
/**
* @private
*/
n.QfqPage.prototype.destroyFormHandler = function (obj) {
this.settings.qfqForm = null;
$('#' + this.settings.tabsId).remove();
};
n.QfqPage.prototype.tabShowHandler = function (obj) {
// tabShowHandler will be called every time the tab will be shown, regardless of whether or not this
happens
// because of BSTabs.activateTab() or user interaction.
//
// Therefore, we have to make sure, that tabShowHandler() does not save the page state while we're
restoring
// a previous state, i.e. we're called because of the popStateHandler() below.
if (this.settings.pageState.inPoppingHandler) {
n.Log.debug("Prematurely terminating QfqPage.tabShowHandler(): called due to page state" +
" restoration.");
return;
}
var currentTabId = obj.target.getCurrentTab();
n.Log.debug('Saving state: ' + currentTabId);
n.PageTitle.setSubTitle(obj.target.getTabName(currentTabId));
this.settings.pageState.setPageState(currentTabId, n.PageTitle.get());
};
n.QfqPage.prototype.popStateHandler = function (obj) {
this.bsTabs.activateTab(obj.target.getPageState());
n.PageTitle.set(obj.target.getPageData());
};
})(QfqNS);</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2>
<h3>Classes</h3>
<ul>
<li><a href="n.Alert.html">Alert</a></li>
<li><a href="QfqNS.BSTabs.html">BSTabs</a></li>
<li><a href="QfqNS.Element.Checkbox.html">Checkbox</a></li>
<li><a href="QfqNS.Element.FormGroup.html">FormGroup</a></li>
<li><a href="QfqNS.Element.Radio.html">Radio</a></li>
<li><a href="QfqNS.Element.Select.html">Select</a></li>
<li><a href="QfqNS.Element.Textual.html">Textual</a></li>
<li><a href="QfqNS.FileDelete.html">FileDelete</a></li>
<li><a href="QfqNS.FileUpload.html">FileUpload</a></li>
<li><a href="QfqNS.Form.html">Form</a></li>
<li><a href="QfqNS.PageState.html">PageState</a></li>
<li><a href="QfqNS.QfqForm.html">QfqForm</a></li>
<li><a href="QfqNS.QfqPage.html">QfqPage</a></li>
<li><a href="QfqNS.QfqRecordList.html">QfqRecordList</a></li>
</ul>
<h3>Namespaces</h3>
<ul>
<li><a href="global.html#QfqNS">QfqNS</a></li>
<li><a href="QfqNS.Element.html">Element</a></li>
<li><a href="QfqNS.Helper.html">Helper</a></li>
</ul>
<h3><a href="global.html">Global</a></h3>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Mon May 23 2016 12:28:24
GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: QfqRecordList.js</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: QfqRecordList.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/**
* @author Rafael Ostertag &lt;rafael.ostertag@math.uzh.ch>
*/
/* global $ */
/* global console */
var QfqNS = QfqNS || {};
/**
* Qfq Namespace
*
* @namespace QfqNS
*/
(function (n) {
'use strict';
/**
*
* @param deleteUrl
* @constructor
*
* @name QfqNS.QfqRecordList
*/
n.QfqRecordList = function (deleteUrl) {
this.deleteUrl = deleteUrl;
this.deleteButtonClass = 'record-delete';
this.recordClass = 'record';
this.sipDataAttribute = 'sip';
this.connectClickHandler();
};
/**
* @private
*/
n.QfqRecordList.prototype.connectClickHandler = function () {
$("." + this.deleteButtonClass).click(this.handleDeleteButtonClick.bind(this));
};
n.QfqRecordList.prototype.handleDeleteButtonClick = function (event) {
var $eventTarget = $(event.target);
var $recordElement = this.getRecordElement(event.target);
if ($recordElement.length !== 1) {
throw new Error($recordElement.length + ' match(es) found for record class');
}
var sip = $eventTarget.data(this.sipDataAttribute);
if (!sip) {
throw new Error('No `sip` on delete button');
}
var alert = new n.Alert({
message: "Do you really want to delete the record?",
type: "warning",
modal: true,
buttons: [
{label: "Yes", eventName: "ok"},
{label: "No", eventName: "cancel", focus: true}
]
});
var that = this;
alert.on('alert.ok', function () {
$.post(that.deleteUrl + "?s=" + sip)
.done(that.ajaxDeleteSuccessDispatcher.bind(that, $recordElement))
.fail(n.Helper.showAjaxError);
});
alert.show();
};
/**
*
* @param $recordElement
* @param data
* @param textStatus
* @param jqXHR
*
* @private
*/
n.QfqRecordList.prototype.ajaxDeleteSuccessDispatcher = function ($recordElement, data, textStatus,
jqXHR) {
if (!data.status) {
throw new Error("No 'status' property 'data'");
}
switch (data.status) {
case "error":
this.handleLogicDeleteError(data);
break;
case "success":
this.handleDeleteSuccess($recordElement, data);
break;
default:
throw new Error("Status '" + data.status + "' unknown.");
}
};
n.QfqRecordList.prototype.handleDeleteSuccess = function ($recordElement, data) {
if (data.redirect &amp;&amp; data.redirect === "url" &amp;&amp; data['redirect-url']) {
window.location = data['redirect-url'];
return;
}
if (data.redirect &amp;&amp; data.redirect === "no") {
var alert = new n.Alert("redirect=='no' not allowed", "error");
alert.show();
}
var info = new n.Alert("Record successfully deleted", "info");
info.timeout = 1500;
info.show();
$recordElement.fadeOut(function () {
$recordElement.remove();
});
};
n.QfqRecordList.prototype.getRecordElement = function (element) {
return $(element).closest('.' + this.recordClass);
};
/**
*
* @param data
*
* @private
*/
n.QfqRecordList.prototype.handleLogicDeleteError = function (data) {
if (!data.message) {
throw Error("Status is 'error' but required 'message' attribute is missing.");
}
var alert = new n.Alert(data.message, "error");
alert.show();
};
})(QfqNS);</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2>
<h3>Classes</h3>
<ul>
<li><a href="n.Alert.html">Alert</a></li>
<li><a href="QfqNS.BSTabs.html">BSTabs</a></li>
<li><a href="QfqNS.Element.Checkbox.html">Checkbox</a></li>
<li><a href="QfqNS.Element.FormGroup.html">FormGroup</a></li>
<li><a href="QfqNS.Element.Radio.html">Radio</a></li>
<li><a href="QfqNS.Element.Select.html">Select</a></li>
<li><a href="QfqNS.Element.Textual.html">Textual</a></li>
<li><a href="QfqNS.FileDelete.html">FileDelete</a></li>
<li><a href="QfqNS.FileUpload.html">FileUpload</a></li>
<li><a href="QfqNS.Form.html">Form</a></li>
<li><a href="QfqNS.PageState.html">PageState</a></li>
<li><a href="QfqNS.QfqForm.html">QfqForm</a></li>
<li><a href="QfqNS.QfqPage.html">QfqPage</a></li>
<li><a href="QfqNS.QfqRecordList.html">QfqRecordList</a></li>
</ul>
<h3>Namespaces</h3>
<ul>
<li><a href="global.html#QfqNS">QfqNS</a></li>
<li><a href="QfqNS.Element.html">Element</a></li>
<li><a href="QfqNS.Helper.html">Helper</a></li>
</ul>
<h3><a href="global.html">Global</a></h3>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Mon May 23 2016 12:28:24
GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"></script>
</body>
</html>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="open_sansbold" horiz-adv-x="1169">
<font-face units-per-em="2048" ascent="1638" descent="-410"/>
<missing-glyph horiz-adv-x="532"/>
<glyph unicode="&#xfb01;" horiz-adv-x="1417"
d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM940 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM1258 0h-305v1118 h305v-1118z"/>
<glyph unicode="&#xfb02;" horiz-adv-x="1417"
d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1258 0h-305v1556h305v-1556z"/>
<glyph unicode="&#xfb03;" horiz-adv-x="2208"
d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1730 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM2048 0h-305v1118h305v-1118z"/>
<glyph unicode="&#xfb04;" horiz-adv-x="2208"
d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM2048 0h-305v1556h305v-1556z"/>
<glyph horiz-adv-x="2048"/>
<glyph horiz-adv-x="2048"/>
<glyph unicode="&#xd;" horiz-adv-x="1044"/>
<glyph unicode=" " horiz-adv-x="532"/>
<glyph unicode="&#x09;" horiz-adv-x="532"/>
<glyph unicode="&#xa0;" horiz-adv-x="532"/>
<glyph unicode="!" horiz-adv-x="586"
d="M416 485h-244l-51 977h346zM117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z"/>
<glyph unicode="&#x22;" horiz-adv-x="967"
d="M412 1462l-41 -528h-197l-41 528h279zM834 1462l-41 -528h-197l-41 528h279z"/>
<glyph unicode="#" horiz-adv-x="1323"
d="M999 844l-47 -232h258v-206h-297l-77 -406h-220l78 406h-194l-76 -406h-215l74 406h-238v206h277l47 232h-252v209h289l77 407h219l-77 -407h198l78 407h215l-78 -407h240v-209h-279zM539 612h196l47 232h-196z"/>
<glyph unicode="$"
d="M1092 457q0 -159 -115 -255.5t-322 -115.5v-205h-137v201q-244 5 -428 86v264q87 -43 209.5 -76t218.5 -39v310l-67 26q-198 78 -280.5 169.5t-82.5 226.5q0 145 113.5 238.5t316.5 113.5v153h137v-149q229 -10 414 -92l-94 -234q-156 64 -320 78v-295 q195 -75 277.5 -130t121 -121t38.5 -154zM791 442q0 42 -34 71t-102 60v-249q136 23 136 118zM389 1049q0 -44 30.5 -72.5t98.5 -58.5v235q-129 -19 -129 -104z"/>
<glyph unicode="%" horiz-adv-x="1845"
d="M315 1024q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM758 1026q0 -230 -89 -345.5t-261 -115.5q-165 0 -255 118.5t-90 342.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5zM1446 1462l-811 -1462h-240l811 1462h240z M1339 440q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM1782 442q0 -229 -89 -344.5t-261 -115.5q-165 0 -255 118.5t-90 341.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5z"/>
<glyph unicode="&#x26;" horiz-adv-x="1536"
d="M1536 0h-377l-115 113q-191 -133 -432 -133q-244 0 -387 112t-143 303q0 137 60.5 233.5t207.5 180.5q-75 86 -109 164.5t-34 171.5q0 152 116.5 245t311.5 93q186 0 297.5 -86.5t111.5 -231.5q0 -119 -69 -217.5t-223 -187.5l284 -277q71 117 123 301h318 q-36 -135 -99 -263.5t-143 -227.5zM403 424q0 -86 64.5 -137t165.5 -51q126 0 227 61l-332 330q-58 -44 -91.5 -92t-33.5 -111zM762 1133q0 53 -36 83.5t-93 30.5q-67 0 -105.5 -32t-38.5 -91q0 -88 95 -194q86 48 132 94.5t46 108.5z"/>
<glyph unicode="'" horiz-adv-x="545" d="M412 1462l-41 -528h-197l-41 528h279z"/>
<glyph unicode="(" horiz-adv-x="694"
d="M82 561q0 265 77.5 496t223.5 405h250q-141 -193 -213 -424t-72 -475q0 -245 73.5 -473.5t209.5 -413.5h-248q-147 170 -224 397t-77 488z"/>
<glyph unicode=")" horiz-adv-x="694"
d="M612 561q0 -263 -77.5 -490t-223.5 -395h-248q135 184 209 412.5t74 474.5q0 244 -72 475t-213 424h250q147 -175 224 -406.5t77 -494.5z"/>
<glyph unicode="*" horiz-adv-x="1116"
d="M688 1556l-41 -368l373 104l33 -252l-340 -24l223 -297l-227 -121l-156 313l-137 -311l-236 119l221 297l-338 26l39 250l365 -104l-41 368h262z"/>
<glyph unicode="+" d="M475 612h-387v219h387v390h219v-390h387v-219h-387v-385h-219v385z"/>
<glyph unicode="," horiz-adv-x="594" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z"/>
<glyph unicode="-" horiz-adv-x="659" d="M61 424v250h537v-250h-537z"/>
<glyph unicode="." horiz-adv-x="584"
d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z"/>
<glyph unicode="/" horiz-adv-x="846" d="M836 1462l-545 -1462h-277l545 1462h277z"/>
<glyph unicode="0"
d="M1096 731q0 -383 -125.5 -567t-386.5 -184q-253 0 -381.5 190t-128.5 561q0 387 125 570.5t385 183.5q253 0 382.5 -192t129.5 -562zM381 731q0 -269 46.5 -385.5t156.5 -116.5q108 0 156 118t48 384q0 269 -48.5 386.5t-155.5 117.5q-109 0 -156 -117.5t-47 -386.5z"/>
<glyph unicode="1" d="M846 0h-309v846l3 139l5 152q-77 -77 -107 -101l-168 -135l-149 186l471 375h254v-1462z"/>
<glyph unicode="2"
d="M1104 0h-1022v215l367 371q163 167 213 231.5t72 119.5t22 114q0 88 -48.5 131t-129.5 43q-85 0 -165 -39t-167 -111l-168 199q108 92 179 130t155 58.5t188 20.5q137 0 242 -50t163 -140t58 -206q0 -101 -35.5 -189.5t-110 -181.5t-262.5 -265l-188 -177v-14h637v-260z "/>
<glyph unicode="3"
d="M1047 1135q0 -137 -83 -233t-233 -132v-6q177 -22 268 -107.5t91 -230.5q0 -211 -153 -328.5t-437 -117.5q-238 0 -422 79v263q85 -43 187 -70t202 -27q153 0 226 52t73 167q0 103 -84 146t-268 43h-111v237h113q170 0 248.5 44.5t78.5 152.5q0 166 -208 166 q-72 0 -146.5 -24t-165.5 -83l-143 213q200 144 477 144q227 0 358.5 -92t131.5 -256z"/>
<glyph unicode="4"
d="M1137 303h-176v-303h-302v303h-624v215l641 944h285v-919h176v-240zM659 543v248q0 62 5 180t8 137h-8q-37 -82 -89 -160l-268 -405h352z"/>
<glyph unicode="5"
d="M614 934q212 0 337.5 -119t125.5 -326q0 -245 -151 -377t-432 -132q-244 0 -394 79v267q79 -42 184 -68.5t199 -26.5q283 0 283 232q0 221 -293 221q-53 0 -117 -10.5t-104 -22.5l-123 66l55 745h793v-262h-522l-27 -287l35 7q61 14 151 14z"/>