Thin family icons, ticket services, SQL refactor
gitea/hedera-web/pipeline/head This commit looks good Details

This commit is contained in:
Juan Ferrer 2020-10-23 12:10:41 +02:00
parent 65c02084d2
commit 846d7b9ec8
32 changed files with 749 additions and 834 deletions

View File

@ -0,0 +1,17 @@
CREATE OR REPLACE
DEFINER=`root`@`%`
ALGORITHM = UNDEFINED VIEW `hedera`.`myTicketService` AS
select
`s`.`id` AS `id`,
`s`.`description` AS `description`,
`s`.`quantity` AS `quantity`,
`s`.`price` AS `price`,
`s`.`taxClassFk` AS `taxClassFk`,
`s`.`ticketFk` AS `ticketFk`,
`s`.`ticketServiceTypeFk` AS `ticketServiceTypeFk`
from
(`vn`.`ticketService` `s`
join `hedera`.`myTicket` `t` on
(`s`.`ticketFk` = `t`.`id`)) WITH CASCADED CHECK OPTION;
GRANT SELECT ON TABLE hedera.myTicketService TO account@'localhost';

View File

@ -0,0 +1,18 @@
DROP PROCEDURE IF EXISTS hedera.myTicket_getServices;
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myTicket_getServices`(vSelf INT)
BEGIN
/**
* Returns a current user ticket services.
*
* @param vSelf The ticket identifier
* @select The ticket services
*/
SELECT id, description, quantity, price
FROM myTicketService
WHERE ticketFk = vSelf;
END$$
DELIMITER ;
GRANT EXECUTE ON PROCEDURE hedera.myTicket_getServices TO account@'localhost';

View File

@ -0,0 +1 @@
CALL account.role_sync;

2
debian/changelog vendored
View File

@ -1,4 +1,4 @@
hedera-web (1.407.32) stable; urgency=low
hedera-web (1.407.33) stable; urgency=low
* Initial Release.

View File

@ -5,7 +5,7 @@ Hedera.Address = new Class({
activate: function() {
this.$('model').setInfo('a', 'myAddress', 'hedera', ['id'], 'id');
this.$('model').setDefault('clientFk', 'a',
new Sql.Function({schema: 'account', name: 'myUserGetId'}));
new Sql.Function({schema: 'account', name: 'myUser_getId'}));
},
onStatusChange: function(form) {

View File

@ -19,3 +19,5 @@ Disc: Desc
Subtotal: Subtotal
Preparation: Preparació
Delivery: Entrega
Service: Servei
Packaging: Embalatge

View File

@ -19,3 +19,5 @@ Disc: Disc
Subtotal: Subtotal
Preparation: Preparation
Delivery: Delivery
Service: Service
Packaging: Packaging

View File

@ -19,3 +19,5 @@ Disc: Desc
Subtotal: Subtotal
Preparation: Preparación
Delivery: Entrega
Service: Servicio
Packaging: Embalaje

View File

@ -19,3 +19,5 @@ Disc: Remise
Subtotal: Sous-total
Preparation: Préparation
Delivery: Livraison
Service: Service
Packaging: Emballage

View File

@ -19,3 +19,5 @@ Disc: Desc
Subtotal: Sub-total
Preparation: Preparação
Delivery: Entrega
Service: Serviço
Packaging: Embalagem

View File

@ -40,9 +40,18 @@ Hedera.Ticket = new Class({
return this.discountSubtotal(form) * ((100 - discount) / 100);
},
servicesFunc: function(res, form) {
res.$('subtotal').value = form.get('quantity') * form.get('price');
},
onServicesChanged: function(model) {
this.$('services').node.style.display =
model.numRows > 0 ? 'block' : 'none';
},
onPackagesChanged: function(model) {
this.$('packages').node.style.display =
model.numRows > 0 ? 'block' : 'none';
}
},
});

View File

@ -105,6 +105,31 @@
</div>
</custom>
</htk-repeater>
<htk-repeater form-id="iter" id="services" class="packages" renderer="servicesFunc">
<db-model
property="model"
on-status-changed="onServicesChanged"
batch="batch">
CALL myTicket_getServices(#ticket)
</db-model>
<custom>
<div class="line">
<div class="info">
<h2>
<htk-text form="iter" column="description"/>
</h2>
<p class="amount">
<htk-text form="iter" column="quantity"/> x
<htk-text form="iter" column="price" format="%.2d€"/>
</p>
<p class="subtotal">
<htk-text id="subtotal" format="%.2d€"/>
</p>
</div>
<div class="clear"/>
</div>
</custom>
</htk-repeater>
<htk-repeater form-id="iter" id="packages" class="packages">
<db-model
property="model"

View File

@ -1,18 +1,15 @@
Vn.include('node_modules/tinymce/tinymce.min');
Vn.define(function() {
Hedera.New = new Class
({
Hedera.New = new Class({
Extends: Hedera.Form
,editor: null
,activate: function ()
{
,activate: function() {
this.$('model').mode = Db.Model.Mode.ON_DEMAND;
this.$('model').setDefault('userFk', 'news',
new Sql.Function ({schema: 'account', name: 'myUserGetId'}));
new Sql.Function({schema: 'account', name: 'myUser_getId'}));
tinymce.init({
mode : 'exact'
@ -33,22 +30,19 @@ Hedera.New = new Class
,image_advtab: true
,init_instance_callback: this._onEditorInit.bind(this)
});
}
},
,deactivate: function ()
{
deactivate: function() {
this.editor.destroy();
}
},
,_onEditorInit: function (editor)
{
_onEditorInit: function(editor) {
this.editor = editor;
editor.getDoc().body.style.fontSize = '1em';
this.setEditorText();
}
},
,setEditorText: function ()
{
setEditorText: function() {
if (!this.editor)
return;
@ -58,35 +52,29 @@ Hedera.New = new Class
newHtml = '';
this.editor.setContent(newHtml);
}
},
,onStatusChange: function (form)
{
onStatusChange: function(form) {
if (this.$('new-id').value == 0)
form.insertRow();
}
},
,onOperationsDone: function ()
{
onOperationsDone: function() {
Htk.Toast.showMessage(_('NewChangedSuccessfully'));
this.onReturnClick();
}
},
,onBodyChange: function ()
{
onBodyChange: function() {
this.setEditorText();
}
},
,onAcceptClick: function ()
{
onAcceptClick: function() {
this.$('iter').set('text', this.editor.getContent());
this.$('iter').performOperations();
}
},
,onReturnClick: function ()
{
onReturnClick: function() {
this.hash.set({'form': 'news/news'});
}
});
});

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -1,6 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@ -9,51 +7,83 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="40mm"
height="40mm"
viewBox="0 0 40 40"
xml:space="preserve"
sodipodi:docname="12.svg"
width="40"
height="40"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata11"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs9" /><sodipodi:namedview
version="1.1"
id="svg1600"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="12.svg">
<defs
id="defs1594" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1043"
id="namedview7"
inkscape:zoom="1.1456105"
inkscape:cx="-4.4251376"
inkscape:cy="149.77443"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:zoom="21.300925"
inkscape:cx="19.978779"
inkscape:cy="20.00345"
inkscape:window-x="1920"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" />
<style
type="text/css"
id="style2">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#E55C1F;}
.st1{fill:url(#SVGID_1_);}
.st2{fill:#FFFFFF;}
.st3{fill:#E55C1F;}
</style>
inkscape:window-maximized="1" />
<metadata
id="metadata1597">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g2805"
transform="translate(17.980292,13.506482)">
<path
class="st3"
d="M 33.944952,5.6404 C 26.038565,-2.0493 13.379013,-1.856 5.6626188,6.0737 -2.0504417,14.0001 -1.8937806,26.663 6.0126064,34.3527 13.918993,42.0424 26.578546,41.8491 34.294939,33.9194 42.008,25.993 41.851339,13.3301 33.944952,5.6404 Z M 32.861657,32.4428 C 26.005233,39.4892 14.755631,39.6625 7.7292124,32.8261 0.70279422,25.993 0.56613238,14.7401 7.4225566,7.6937 14.278981,0.6472 25.528583,0.4772 32.555001,7.3103 c 7.023085,6.8331 7.159747,18.0861 0.306656,25.1325 z M 5.5926213,23.1331 C 4.1326729,21.1132 5.3526298,17.25 5.9926071,16.8267 c 1.0966279,-0.7233 6.2097799,1.0699 7.2197449,1.5199 1.009964,0.4533 3.86653,1.1766 3.819865,2.2033 -0.05666,1.2199 -2.473246,1.7666 -4.733166,2.1899 -2.256587,0.43 -5.9231241,1.4766 -6.7064297,0.3933 z m 4.3698454,7.7431 C 7.6992134,30.1695 6.4292583,26.953 6.6825827,26.2697 c 0.433318,-1.17 5.3664773,-2.7033 6.3997733,-2.9333 1.029964,-0.23 3.629872,-1.2966 4.176519,-0.4866 0.646644,0.96 -1.086628,2.5832 -2.576575,4.1832 -1.493281,1.5999 -3.506543,4.2232 -4.7198333,3.8432 z M 15.828926,13.1001 C 14.822295,11.0835 13.015692,8.2003 13.828997,7.157 15.34561,5.2104 18.928816,5.1237 19.498796,5.6104 c 0.976632,0.8366 0.656644,6.1698 0.503316,7.2497 -0.156661,1.08 -0.07333,3.9832 -1.05663,4.2266 -1.169958,0.2899 -2.106592,-1.97 -3.116556,-3.9866 z m 5.189816,-1.0199 c 0.263324,-2.3233 0.319989,-5.8665 1.613277,-6.2831 2.416581,-0.78 5.583135,1.2532 5.803128,2.0066 0.376653,1.2932 -2.909897,5.6864 -3.656538,6.5231 -0.74664,0.8366 -2.309918,3.3798 -3.303216,3.0099 -1.179958,-0.44 -0.719975,-2.9333 -0.456651,-5.2565 z m -1.769937,16.8427 c -0.286657,1.9633 -0.429985,4.9565 -1.536612,5.3065 -2.063261,0.65 -4.683168,-1.08 -4.849829,-1.72 -0.283323,-1.0932 2.613241,-4.7964 3.266551,-5.4998 0.653311,-0.7066 2.043261,-2.8465 2.873232,-2.5299 0.986632,0.3734 0.529981,2.4799 0.246658,4.4432 z M 12.435713,17.2467 C 10.392452,16.3534 7.1858983,15.3034 7.1492329,13.9968 7.0825689,11.5635 9.7758067,9.2336 10.519114,9.2436 c 1.276621,0.017 4.396511,4.2665 4.959824,5.1865 0.563314,0.92 2.459913,3.0699 1.856601,3.8732 -0.709975,0.9566 -2.856565,-0.1633 -4.899826,-1.0566 z m 22.229213,1.4232 c 1.489948,1.9966 0.336655,5.7865 -0.666643,6.4098 -1.089961,0.6767 -5.599802,-1.4266 -6.616432,-1.8633 -1.016631,-0.4366 -3.883196,-1.1199 -3.849864,-2.1465 0.04,-1.22 2.509911,-1.5467 4.759831,-2.0033 2.253254,-0.4567 5.573137,-1.47 6.373108,-0.3967 z m -4.096521,-7.9263 c 2.223254,0.7166 3.499876,3.8765 3.259884,4.5398 -0.413318,1.1399 -5.226482,2.5832 -6.233113,2.7966 -1.006631,0.2133 -3.539874,1.2266 -4.083189,0.4299 -0.64331,-0.9466 1.036631,-2.5132 2.479913,-4.0631 1.443282,-1.5467 3.386547,-4.0899 4.576505,-3.7032 z m -2.296586,13.9295 c 1.936598,0.7499 4.079856,1.7532 3.936528,2.9599 -0.229992,1.9466 -2.446581,4.4431 -3.759867,4.4898 -1.186625,0.04 -3.579874,-4.2332 -4.009859,-5.1398 -0.429984,-0.9067 -1.973263,-3.0832 -1.339952,-3.7699 0.75664,-0.8166 3.083224,0.65 5.17315,1.46 z m -4.489841,3.5165 c 0.806638,1.7633 2.273253,4.2965 1.543279,5.1698 -1.359952,1.6266 -4.443176,1.5966 -4.919826,1.16 -0.813305,-0.7467 -0.38332,-5.3232 -0.216659,-6.2465 0.16666,-0.9266 0.179993,-3.4232 1.033296,-3.5998 1.016631,-0.2167 1.753272,1.7532 2.55991,3.5165 z"
id="path4"
inkscape:connector-curvature="0"
style="fill:#e55c1f;stroke-width:0.03333215" />
class="st9"
d="m -3.2043397,21.284368 c -2.2294988,0 -4.4533103,-0.500501 -6.4951216,-1.490125 -0.034125,-0.01707 -0.06825,-0.03413 -0.102375,-0.05688 -0.1763125,-0.108063 -0.3583127,-0.20475 -0.5516877,-0.284375 -1.251249,-0.585813 -2.593498,-0.784875 -3.912998,-0.591499 -0.346937,0.05119 -0.705249,-0.06825 -0.949812,-0.3185 -0.25025,-0.250251 -0.369687,-0.602874 -0.318499,-0.949812 0.193374,-1.325186 -0.0057,-2.667436 -0.574438,-3.878874 -0.09669,-0.227499 -0.193374,-0.415185 -0.301437,-0.591498 -0.02275,-0.03412 -0.03981,-0.06825 -0.05688,-0.102375 -2.656061,-5.442935 -1.763124,-11.8754943 2.274999,-16.3856797 2.638999,-2.9461233 6.2676218,-4.692185 10.2204322,-4.9083099 3.95281055,-0.2218124 7.7520581,1.1147495 10.6981823,3.7537483 0.1421878,0.1251248 0.2786877,0.2616246 0.4208755,0.3924372 l 0.1649371,0.1592498 c 0.2104375,0.1990625 0.3981238,0.4038124 0.5858123,0.6199371 0.3639991,0.4038124 0.705249,0.8246873 1.0180617,1.2626246 C 10.61059,0.28612871 11.560402,3.0730022 11.662777,5.9850008 11.685529,6.604938 11.202091,7.1225001 10.582153,7.1395626 9.9735915,7.156624 9.4503411,6.6788754 9.4275918,6.0589382 9.3422783,3.5905644 8.5346544,1.2245657 7.1014053,-0.78312082 6.8340933,-1.1528082 6.5440299,-1.5111205 6.236905,-1.8523704 6.0890315,-2.0173076 5.9411559,-2.1879325 5.770531,-2.341495 L 5.5885304,-2.5121199 c -0.1194364,-0.11375 -0.2331871,-0.2275 -0.3526234,-0.3355624 -2.5024997,-2.2408739 -5.73868543,-3.3783733 -9.0829338,-3.1906858 -3.3556233,0.1819998 -6.4382472,1.6664365 -8.6791212,4.1689353 -3.418185,3.8163106 -4.18031,9.2535579 -1.956498,13.8604308 0.159249,0.255937 0.295749,0.528937 0.415187,0.813312 0.546,1.165937 0.836062,2.445622 0.841749,3.748059 1.302437,0.0057 2.593499,0.295751 3.7878735,0.858813 0.2445623,0.102375 0.5175622,0.238874 0.7678121,0.398124 3.1394984,1.507187 6.796559,1.649375 10.04412,0.381062 0.5744371,-0.221811 1.2228118,0.05688 1.4503118,0.637001 0.2218124,0.574437 -0.062563,1.222812 -0.6369998,1.450311 -1.73468651,0.671124 -3.5660607,1.006688 -5.3917473,1.006688 z"
id="path177"
style="fill:#e55c1e;stroke-width:0.0568749" />
<path
class="st9"
d="m 6.5269685,-2.0343701 c -0.2843756,0 -0.5744369,-0.1080626 -0.7905625,-0.329875 -0.4379369,-0.4379374 -0.4379369,-1.1431869 0,-1.5811243 1.6209356,-1.6209366 1.7289982,-2.6731235 1.7289982,-2.6844985 0.051189,-0.5971872 0.6085618,-1.0578744 1.1602494,-1.0464994 0.5971883,0.02275 1.0749381,0.4948122 1.0749381,1.0919994 0,0.3071249 -0.1137507,1.956499 -2.3830608,4.2201228 -0.2161256,0.2218124 -0.506189,0.329875 -0.7905624,0.329875 z"
id="path179"
style="fill:#e55c1e;stroke-width:0.0568749" />
<path
class="st9"
d="m 6.7658433,21.284368 c -8.4118087,0 -15.2595554,-6.842059 -15.2595554,-15.2595547 0,-0.6199372 0.5004999,-1.1204371 1.120437,-1.1204371 H 20.899274 c 0.619935,0 1.120436,0.5004999 1.120436,1.1204371 0,8.4174957 -6.84206,15.2595547 -15.2538667,15.2595547 z M -6.2073382,7.1452503 c 0.5687498,6.6543717 6.17093446,11.8982427 12.9731815,11.8982427 6.8022447,0 12.4044297,-5.243871 12.9731807,-11.8982427 z"
id="path181"
style="fill:#e55c1e;stroke-width:0.0568749" />
<path
class="st9"
d="m 7.0957175,21.284368 c -0.6199376,0 -1.1204366,-0.500501 -1.1204366,-1.120438 v -9.503806 c 0,-0.619938 0.500499,-1.1204375 1.1204366,-1.1204375 0.6199373,0 1.1204363,0.5004995 1.1204363,1.1204375 v 9.503806 c 0,0.619937 -0.500499,1.120438 -1.1204363,1.120438 z"
id="path183"
style="fill:#e55c1e;stroke-width:0.0568749" />
<path
class="st9"
d="m -2.6640274,16.967557 c -0.2843749,0 -0.5744373,-0.108063 -0.7905621,-0.329874 -0.4379373,-0.437937 -0.4379373,-1.143188 0,-1.581125 L 2.5912199,9.0107493 c 0.4379374,-0.4379374 1.1431878,-0.4379374 1.5811247,0 0.437937,0.4379373 0.437937,1.1431867 0,1.5811247 l -6.04581,6.045809 c -0.2161247,0.216123 -0.5004997,0.329874 -0.790562,0.329874 z"
id="path185"
style="fill:#e55c1e;stroke-width:0.0568749" />
<path
class="st9"
d="m 16.855462,16.967557 c -0.284375,0 -0.574437,-0.108063 -0.790562,-0.329874 l -6.04581,-6.045809 c -0.4379369,-0.437938 -0.4379369,-1.1431874 0,-1.5811247 0.437939,-0.4379374 1.143188,-0.4379374 1.581125,0 l 6.04581,6.0458087 c 0.437937,0.437937 0.437937,1.143188 0,1.581125 -0.216126,0.216123 -0.506187,0.329874 -0.790563,0.329874 z"
id="path187"
style="fill:#e55c1e;stroke-width:0.0568749" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,6 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@ -9,61 +7,53 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
width="40mm"
height="40mm"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="3.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
version="1.1"
id="svg1600"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="3.svg">
<defs
id="defs1594" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
id="namedview3445"
inkscape:zoom="3.0684205"
inkscape:cx="66.152691"
inkscape:cy="97.425923"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:zoom="14.495689"
inkscape:cx="4.6830711"
inkscape:cy="27.343023"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-156.32787,-82.717)" /><g
id="Guides"
transform="translate(-156.32787,-82.717)" /><g
id="g3401"
transform="matrix(0.34545455,0,0,0.34545455,-52.866888,-3.4816067)"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none"><g
id="g3403"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none" /></g><g
id="g3407"
transform="matrix(0.66080226,0,0,0.66080226,-119.82576,-31.98201)"
style="stroke:#f11b65;stroke-width:5.49392033;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"><g
id="g3409"
style="stroke:#f11b65;stroke-width:5.49392033;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"><g
id="g3411"
style="stroke:#f11b65;stroke-width:5.49392033;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"><path
id="path3415"
style="fill:none;stroke:#f11b65;stroke-width:5.49392033;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"
d="m 211.599,61.305 m 18.57101,0 a 18.57,6.3759999 0 0 1 -18.57,6.376 18.57,6.3759999 0 0 1 -18.57,-6.376 18.57,6.3759999 0 0 1 18.57,-6.376 18.57,6.3759999 0 0 1 18.57,6.376 z M 224.431,97.786 c 0,2.549 -5.695,4.615 -12.72,4.615 -6.749,0 -12.271,-1.907 -12.693,-4.317 -0.207,-0.331 -0.316,-0.674 -0.316,-1.027 0,-0.067 0.004,-0.134 0,-0.2 0,0 -4.964,-32.619 -5.143,-33.792 0.174,1.143 7.998,4.723 18.034,4.723 9.308,0 16.979,-2.28 18.044,-5.22 l -5.207,35.018 c -0.003,0.066 0.001,0.132 0.001,0.2 z"
inkscape:connector-curvature="0" /></g></g></g></svg>
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata1597">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path165"
style="fill:#ed1867;fill-opacity:1;stroke-width:0.0608351"
d="m 19.579207,2.501514 c -1.786842,0.015684 -3.4418,0.1505777 -5.011346,0.4015227 -1.55738,0.249424 -3.589503,0.6508546 -5.5118935,1.5694651 -0.711771,0.3345933 -1.61807,0.8334861 -2.281173,1.6730111 -0.8030238,1.0159468 -0.9427501,2.0987341 -0.4074009,3.2302678 0.054752,0.1155866 0.085049,0.2128489 0.097215,0.3101851 0.042585,0.3285102 0.097381,0.6510852 0.1460493,0.9735122 l 0.8211319,5.359513 c 0.2068395,1.380958 0.4198614,2.755901 0.6267011,4.136859 l 0.2857683,1.891859 c 0.1581713,1.058531 0.3105185,2.111146 0.4747734,3.169677 l 0.924678,6.046804 c 0.073002,0.462348 0.1457631,0.930775 0.1944311,1.393121 0.1277543,1.168035 0.5842643,2.0503 1.3994513,2.701235 0.936861,0.754357 2.019763,1.131489 2.865371,1.380911 1.727718,0.504932 3.655897,0.754417 5.888546,0.760543 h 0.06104 c 1.745968,0 3.327441,-0.164434 4.842236,-0.517276 0.949029,-0.219007 2.184152,-0.553595 3.303519,-1.259281 0.736105,-0.462346 1.216867,-0.979284 1.508874,-1.611969 0.139919,-0.310258 0.170348,-0.620707 0.200761,-0.918799 0.0061,-0.09734 0.01813,-0.194762 0.0303,-0.292099 0.182505,-1.30187 0.377317,-2.5976 0.57199,-3.899473 l 1.0341,-6.886474 c 0.164256,-1.095032 0.322276,-2.196073 0.486529,-3.297188 l 0.292099,-1.995405 c 0.310261,-2.068395 0.614424,-4.142998 0.924678,-6.211392 l 0.01221,-0.103094 c 0.06692,-0.480598 0.133927,-0.9430633 0.359018,-1.3628258 0.212928,-0.401512 0.279843,-0.8701045 0.200762,-1.4419547 C 33.804038,6.8632447 33.365864,6.157662 32.54459,5.4763085 31.388723,4.5211968 30.013831,4.0222588 28.821462,3.6572481 26.625314,2.9880616 24.198082,2.6171836 21.411833,2.5259309 20.785231,2.5046386 20.174821,2.496286 19.579207,2.501514 Z m 0.439505,2.384719 c 0.675269,0 1.374767,0.030419 2.15954,0.06692 2.317819,0.1277539 4.331421,0.4745014 6.162559,1.0585187 0.717855,0.22509 1.636448,0.5597138 2.451639,1.1376474 0.298092,0.212923 0.529531,0.4135331 0.675535,0.687291 0.121671,0.2372571 0.109461,0.3589019 -0.07913,0.5900755 -0.395428,0.4988484 -0.9311,0.8089706 -1.356946,1.0218936 -0.876026,0.4440964 -1.885646,0.7911738 -3.181434,1.0892658 -1.174119,0.273758 -2.409091,0.462075 -3.790048,0.583745 -1.101116,0.09734 -2.19023,0.127799 -3.102758,0.14605 C 18.27862,11.2433 16.301452,11.158246 14.372978,10.768901 12.687845,10.434308 11.246385,9.9901759 9.9566804,9.4304926 9.3848302,9.1810685 8.9526596,8.8648232 8.6241499,8.4633112 8.3747258,8.153052 8.3868531,7.9584809 8.6788618,7.629971 9.1412089,7.1067887 9.731314,6.7844128 10.473505,6.4620284 c 1.131534,-0.4988482 2.403301,-0.8516809 4.009349,-1.125439 1.362707,-0.2311736 2.822631,-0.3651455 4.745021,-0.438148 0.261591,-0.00609 0.523162,-0.012208 0.790837,-0.012208 z m -10.8225733,6.862058 0.030295,0.01854 c 1.1437003,0.535349 2.4150153,0.930523 4.0088963,1.252949 1.752051,0.352844 3.31552,0.565946 4.781647,0.651118 1.088949,0.06083 2.263454,0.06696 3.699163,0.01221 1.137616,-0.04259 2.293412,-0.146382 3.431029,-0.310638 2.244816,-0.316342 3.98448,-0.778565 5.578361,-1.490336 l -0.01221,0.09722 c -0.04867,0.358928 -0.09738,0.699961 -0.146049,1.034554 l -2.360302,15.828945 c -0.200757,1.295789 -0.401651,2.64064 -0.57199,3.966846 -0.04867,0.38326 -0.218776,0.626624 -0.595954,0.869965 -0.83344,0.535348 -1.776373,0.796885 -2.58548,0.97939 -0.949028,0.212923 -1.99519,0.35269 -3.193642,0.41961 -2.323902,0.127753 -4.42897,-0.07902 -6.424362,-0.644789 C 14.166356,34.239203 13.545666,33.965586 12.992065,33.612741 12.620971,33.375484 12.426322,33.022239 12.33507,32.43214 L 11.556441,27.28559 C 11.282683,25.48487 11.009067,23.684292 10.735309,21.883573 L 9.5551578,14.206261 C 9.4517381,13.530991 9.3540651,12.855379 9.2567289,12.180109 Z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -1,6 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@ -9,48 +7,72 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="40mm"
height="40mm"
viewBox="0 0 40 40"
xml:space="preserve"
sodipodi:docname="9.svg"
width="40"
height="40"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata11"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs9" /><sodipodi:namedview
version="1.1"
id="svg1600"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="9.svg">
<defs
id="defs1594" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
id="namedview7"
inkscape:zoom="3.0684205"
inkscape:cx="49.517781"
inkscape:cy="46.15744"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:zoom="20.5"
inkscape:cx="16.049059"
inkscape:cy="20.075459"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" />
<style
type="text/css"
id="style2">
.st0{fill:#6B519C;}
</style>
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata1597">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g885">
<path
class="st0"
d="m 39.87364,15.117505 c -0.02663,-0.07986 -0.02663,-0.159786 -0.05326,-0.213043 -0.346206,-1.517986 -1.06525,-2.956072 -2.237024,-4.021329 -1.251669,-1.1451425 -2.76965,-1.677771 -4.394158,-1.5446139 -0.05326,0 -0.106528,0 -0.159787,0.026571 C 33.002784,8.9922473 32.976154,8.646033 32.949514,8.2732044 32.683203,6.249233 31.77774,4.5181898 30.28639,3.2398898 28.448833,1.6420184 25.998759,1.3490756 23.788364,2.2545327 c -0.63915,0.2663143 -1.251668,0.5859 -1.810924,0.9853571 -0.612519,0.4261 -1.06525,1.012 -1.651139,1.4381 C 19.447471,3.8524184 18.755059,2.9735756 17.689809,2.3344327 15.053314,0.76318977 12.150509,1.0295041 10.020009,2.9735756 9.034651,3.8524184 8.342239,4.9442898 7.916139,6.169333 7.51667,7.3411044 7.330251,8.5927758 7.383514,9.8977044 7.037309,9.8444184 6.717733,9.8178474 6.398159,9.8178474 c -1.67777,0 -3.2223824,0.6391426 -4.3675262,1.8375566 -1.22503755,1.251658 -1.70440005,2.956058 -1.86418755,3.8349 -0.1331557,0.532615 -0.1864187,1.091872 -0.1597875,1.597872 0.1331558,2.103872 0.9853563,4.340886 2.34355005,6.151815 1.1451439,1.517985 2.6631252,2.5566 4.2876312,2.9827 -0.186419,0.4261 -0.319575,0.8522 -0.399469,1.2783 -0.05326,0.213057 -0.106529,0.399471 -0.159787,0.639157 -0.4261,1.6245 -1.011988,3.861528 0.159787,6.284971 1.145144,2.343543 3.541957,4.021314 6.098557,4.234372 0.21305,0.02657 0.4261,0.02657 0.665782,0.02657 1.810924,0 3.355537,-0.612514 4.713731,-1.145143 0.186419,-0.07986 0.372837,-0.133143 0.532624,-0.213057 0.585887,-0.239671 1.358195,-0.505986 1.944082,-0.452729 0.319575,0.02657 0.745675,0.239686 1.304931,0.532629 0.719044,0.372843 1.624506,0.825571 2.743019,1.065243 1.118513,0.239686 2.450075,0.239686 3.728375,-0.02657 1.464719,-0.292942 2.609863,-0.7723 3.488693,-1.491342 2.31692,-1.917458 2.716389,-5.033315 2.050607,-7.296972 -0.292944,-1.065243 -0.745675,-2.157128 -1.358194,-3.275643 1.091882,-0.159785 2.1305,-0.532614 3.062594,-1.145143 3.115856,-2.023971 5.352882,-6.364871 4.660469,-10.119871 z M 21.018714,11.335862 c 0.0799,-1.6245 0.63915,-3.1957429 1.624507,-4.5006715 0.63915,-0.8522 1.517982,-1.5446146 2.5566,-1.8908289 1.06525,-0.3461999 2.210393,-0.1065714 3.035962,0.6391572 0.958726,0.8255717 1.46472,1.8908146 1.624507,3.0892289 0.186419,1.4380853 0.05326,2.8761713 -0.479363,4.2343573 -0.585887,1.517985 -1.517981,2.7164 -2.956068,3.541957 -1.411456,0.798943 -3.914795,0.5859 -4.926782,-0.7723 -0.798937,-1.065257 -0.532626,-3.0626 -0.479363,-4.3409 z M 10.845577,7.1813905 c 0.239682,-0.7456714 0.665782,-1.3848286 1.251669,-1.8908146 1.171774,-1.0652571 2.529968,-1.1451428 3.968055,-0.2929428 2.237026,1.3315574 3.4088,3.914786 3.435432,6.4713859 0,0.07986 0,0.186429 0,0.266314 -0.106529,2.290286 -1.837556,5.246358 -4.527313,4.767 C 14.201114,16.369191 13.535333,15.943076 12.949446,15.437076 10.739051,13.493005 9.913483,9.9244048 10.845577,7.1813905 Z M 4.853545,21.375848 C 4.081239,20.363862 3.5219828,19.112191 3.2556704,17.860519 2.9627266,16.502333 3.2024076,14.85119 4.214395,13.812576 c 1.49135,-1.517986 3.834901,-0.9321 5.193094,0.452729 1.411457,1.438086 2.10387,3.888157 1.970712,5.8855 -0.106528,1.491357 -1.198405,2.956071 -2.743018,3.169128 -1.49135,0.186415 -2.929438,-0.825571 -3.781638,-1.944085 z m 24.633908,13.155843 c -0.559257,0.479357 -1.411457,0.719042 -2.10387,0.8522 -0.87883,0.159785 -1.757662,0.186414 -2.476706,0.02657 -1.597874,-0.346214 -2.76965,-1.544614 -4.47405,-1.651143 -1.118513,-0.07986 -2.237026,0.266314 -3.249013,0.665786 -1.464718,0.559257 -2.9827,1.2783 -4.553944,1.145143 -1.517981,-0.133143 -2.929437,-1.145143 -3.568587,-2.503343 -0.692413,-1.411457 -0.372837,-3.062586 0.05326,-4.474043 0.612519,-1.944086 1.731031,-3.568586 3.062594,-5.086571 0.905462,-1.011986 1.864187,-2.023972 3.089225,-2.663129 1.331562,-0.719043 2.876175,-0.985357 4.394157,-0.958714 0.772305,0 1.51798,0.106571 2.263655,0.239671 0.798938,0.159786 1.384826,0.479372 2.077238,0.9321 2.1305,1.384829 3.462062,3.515329 4.766994,5.619186 0.745674,1.198414 1.384826,2.450086 1.784294,3.8349 0.372837,1.304943 0.106529,3.0626 -1.06525,4.021328 z m 7.296961,-17.230429 c -0.292943,2.1305 -1.651137,4.287643 -3.249011,5.299629 -0.745676,0.479357 -1.544613,0.745671 -2.423444,0.745671 -1.677769,0 -2.796282,-1.384829 -3.169119,-2.9028 -0.745676,-3.009343 2.263656,-7.723072 5.486037,-8.016014 0.798937,-0.07986 1.464719,0.239685 2.023976,0.745671 1.225037,1.065257 1.544611,2.583243 1.331561,4.127843 z"
id="path4"
inkscape:connector-curvature="0"
style="fill:#6b519c;stroke-width:0.26631251" />
id="path8"
style="fill:#6b519b;stroke-width:0.061654"
d="m 19.703707,14.502266 v 0.0062 c -3.970522,0.06782 -7.694429,1.566152 -10.5120202,4.211112 -2.8854103,2.706613 -4.4694945,6.301341 -4.4694945,10.117727 v 0.301792 h 0.00568 c 0.1294733,4.451422 3.6995645,8.002625 9.5875287,9.519317 1.886615,0.487066 3.964124,0.746207 6.017203,0.746207 h 0.0925 c 2.108569,-0.01233 4.204824,-0.283607 6.060615,-0.801502 5.622848,-1.559849 8.829214,-5.074293 8.792223,-9.649024 -0.03699,-3.890372 -1.646645,-7.52801 -4.538221,-10.25312 -2.873078,-2.706614 -6.689241,-4.19871 -10.739912,-4.19871 z m 0.191202,2.306319 h 0.0987 c 3.471124,0 6.726416,1.270111 9.167917,3.569807 2.435336,2.293533 3.791643,5.345174 3.816302,8.600509 0.02466,3.452627 -2.564741,6.159413 -7.114809,7.423319 -1.670828,0.462407 -3.551369,0.709001 -5.450314,0.715203 h -0.0739 c -1.868119,0 -3.748181,-0.234566 -5.455998,-0.672311 C 9.9258243,35.168873 7.0587142,32.450255 7.0093913,28.929807 v -0.08061 c 0,-3.175187 1.3317326,-6.177643 3.7424067,-8.446514 2.42917,-2.281201 5.653491,-3.557105 9.143111,-3.594095 z" />
<path
id="path26"
style="fill:#6b519b;stroke-width:0.061654"
d="M 26.238191,0.59665452 C 25.201227,0.56851579 24.157001,1.0061208 23.235274,1.8627271 22.224144,2.8060343 21.46583,4.1686855 21.102071,5.7100374 20.738312,7.251389 20.799933,8.8113797 21.27467,10.09995 c 0.536391,1.455036 1.529238,2.422794 2.799312,2.724899 0.265113,0.06165 0.536424,0.0925 0.807703,0.0925 1.004962,1e-6 2.015954,-0.437841 2.916101,-1.264005 1.011129,-0.943308 1.769443,-2.3059584 2.133203,-3.8473105 C 30.294749,6.2646819 30.233125,4.7052079 29.758391,3.4166373 29.215834,1.9616013 28.223466,0.99332729 26.953392,0.69122239 26.71641,0.63457769 26.477491,0.60314808 26.238191,0.59665452 Z m -0.0863,2.29546728 c 0.09248,-3e-7 0.18495,0.01251 0.2651,0.031006 0.499396,0.1171429 0.912079,0.573587 1.177189,1.2826089 0.320601,0.875488 0.357614,1.9664889 0.0925,3.070097 -0.258947,1.103608 -0.782698,2.0593724 -1.460893,2.6944092 -0.554886,0.5117281 -1.134612,0.7336421 -1.634009,0.6164991 -0.493233,-0.117142 -0.906394,-0.57307 -1.171504,-1.2820916 -0.3206,-0.875488 -0.357614,-1.9670056 -0.0925,-3.0706136 0.258947,-1.1036078 0.783213,-2.0593725 1.461409,-2.6944092 0.456238,-0.425413 0.931128,-0.6475055 1.362708,-0.6475058 z" />
<path
id="path32"
style="fill:#6b519b;stroke-width:0.061654"
d="m 36.206575,6.0790071 c -0.733356,0.010554 -1.501195,0.2351881 -2.257226,0.6686931 -1.196092,0.6905254 -2.23805,1.8499745 -2.940905,3.2680178 -0.709025,1.42421 -0.998387,2.95298 -0.819589,4.3217 0.197294,1.535186 0.949338,2.700355 2.1146,3.279903 0.493231,0.240451 1.02331,0.363802 1.578197,0.363802 0.746014,0 1.535129,-0.221683 2.305802,-0.665593 1.196091,-0.690526 2.238049,-1.849974 2.940907,-3.268017 0.70902,-1.424209 0.998902,-2.952979 0.820105,-4.3217002 C 39.751174,8.190627 38.999128,7.0254581 37.833866,6.4459098 37.32676,6.1923575 36.776964,6.0707992 36.206575,6.0790071 Z m 0.04857,2.2965007 c 0.203459,0 0.394742,0.043388 0.561208,0.1297078 0.456239,0.22812 0.758661,0.7645595 0.85731,1.5229044 0.117145,0.924811 -0.09285,1.99131 -0.598413,3.008602 -0.50556,1.017292 -1.226796,1.837195 -2.028298,2.299601 -0.659699,0.37609 -1.275956,0.462214 -1.732196,0.234094 -0.456239,-0.22812 -0.758671,-0.770725 -0.857311,-1.522904 -0.117144,-0.924811 0.09233,-1.99131 0.597895,-3.008602 0.505563,-1.017292 1.227315,-1.8371952 2.028817,-2.2996011 0.419248,-0.240451 0.819563,-0.3638021 1.170988,-0.3638021 z" />
<path
id="path26-6"
style="fill:#6b519b;stroke-width:0.061654"
d="m 13.762467,0.59665452 c -0.239299,0.006494 -0.478218,0.0379232 -0.715202,0.0945679 -1.270074,0.3021049 -2.262958,1.27037888 -2.805513,2.72541488 -0.4747359,1.2885703 -0.5363581,2.8480446 -0.172599,4.3893962 0.363761,1.5413521 1.122075,2.9040025 2.133203,3.8473105 0.900148,0.826164 1.911656,1.264006 2.916618,1.264005 0.271279,0 0.542072,-0.03085 0.807185,-0.0925 1.270075,-0.302105 2.262922,-1.269863 2.799313,-2.724899 C 19.200209,8.8113797 19.26183,7.2513893 18.898071,5.7100374 18.534312,4.1686855 17.775998,2.8060343 16.764868,1.8627271 15.84314,1.0061207 14.799432,0.56851579 13.762467,0.59665452 Z m 0.0863,2.29546728 c 0.43158,0 0.905953,0.2220925 1.362191,0.6475055 0.678196,0.6350367 1.202462,1.5908014 1.461409,2.6944092 0.265113,1.103608 0.228099,2.1951256 -0.0925,3.0706136 C 16.314756,10.013672 15.901595,10.4696 15.408362,10.586742 14.908965,10.703885 14.329756,10.481971 13.77487,9.9702426 13.096676,9.3352058 12.572407,8.3794414 12.31346,7.2758334 c -0.265113,-1.1036081 -0.228099,-2.194609 0.0925,-3.070097 0.26511,-0.7090219 0.678309,-1.165466 1.177706,-1.2826089 0.08015,-0.018497 0.17262,-0.031006 0.2651,-0.031006 z" />
<path
id="path32-9"
style="fill:#6b519b;stroke-width:0.061654"
d="M 3.7935669,6.0790071 C 3.2231793,6.0707997 2.6733809,6.1923575 2.166276,6.4459098 1.001015,7.0254579 0.24896743,8.190627 0.05167643,9.7258128 c -0.178799,1.3687212 0.11056822,2.8974912 0.81958822,4.3217002 0.70285695,1.418043 1.74481575,2.577491 2.94090565,3.268017 0.7706752,0.44391 1.5603043,0.665593 2.3063192,0.665593 0.554886,0 1.0849652,-0.123351 1.5781983,-0.363802 1.165261,-0.579548 1.9173055,-1.744717 2.1145994,-3.279903 0.1787962,-1.36872 -0.1110818,-2.89749 -0.8201048,-4.3217 C 8.2883263,8.597675 7.2463667,7.4382256 6.0502767,6.7477002 5.2942444,6.3141952 4.5269224,6.0895602 3.7935669,6.0790071 Z m -0.049093,2.2965007 c 0.351427,0 0.7522567,0.1233511 1.1715046,0.3638021 0.801502,0.4624059 1.5227369,1.2823091 2.0283001,2.2996011 0.5055639,1.017292 0.7155568,2.083791 0.5984128,3.008602 -0.09864,0.752179 -0.4010707,1.294784 -0.8573119,1.522904 C 6.229142,15.798537 5.6128851,15.712413 4.9531859,15.336323 4.1516839,14.873917 3.4299313,14.054014 2.9243692,13.036722 2.4188063,12.01943 2.20933,10.952931 2.326473,10.02812 2.4251229,9.2697751 2.727544,8.7333356 3.1837849,8.5052156 3.3502499,8.4188955 3.5410153,8.3755078 3.7444739,8.3755078 Z" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -1,6 +1,6 @@
{
"name": "hedera-web",
"version": "1.407.32",
"version": "1.407.33",
"description": "Verdnatura web page",
"license": "GPL-3.0",
"repository": {

View File

@ -23,6 +23,15 @@ Hedera.DeliveryNote = new Class({
return form.get('quantity') * price *((100 - discount) / 100);
},
serviceSubtotal: function(column, form) {
column.value = form.get('quantity') * form.get('price');
},
onServicesChanged: function(model) {
this.$('services').node.style.display =
model.numRows > 0 ? 'block' : 'none';
},
onPackagesChanged: function(model) {
this.$('packages').node.style.display =
model.numRows > 0 ? 'block' : 'none';

View File

@ -9,7 +9,6 @@
h2
{
font-size: 1.2em;
margin-bottom: 8mm;
font-weight: bold;
}
.header
@ -18,29 +17,29 @@ h2
}
.header > div > p
{
text-align: right;
margin: .1em 0;
}
.address
{
margin-top: .8em;
}
.important
{
font-size: 1.2em;
font-weight: bold;
}
.address,
.total
{
margin-top: .8em;
}
.total
{
text-align: right;
}
.footer
.htk-grid
{
margin-top: .2em;
border-top: 1px solid #333;
padding-top: .3em;
margin-top: 1em;
}
.packages
{
width: 50%;
padding-top: 1em;
margin-left: 0;
display: none;
}

View File

@ -8,7 +8,7 @@
</vn-group>
<div id="report" class="sheet">
<h2>
<htk-text column="id" form="ticket"/>
@<htk-text column="id" form="ticket"/>
</h2>
<div class="header">
<div>
@ -35,6 +35,16 @@
(<htk-text form="ticket" column="province"/>)
</p>
</div>
<div class="total">
<p class="important">
<t>Total</t>
<htk-text format="%.2d€" form="ticket" column="taxBase"/>
</p>
<p class="important">
<t>Total + tax</t>
<htk-text format="%.2d€" form="ticket" column="total"/>
</p>
</div>
</div>
<htk-grid>
<db-model property="model" id="movements" conn="conn" batch="batch">
@ -49,15 +59,20 @@
<htk-column-spin title="_Disc" column="discount" unit="%" renderer="discountRenderer"/>
<htk-column-spin title="_Subtotal" unit="€" digits="2" renderer="subtotalRenderer"/>
</htk-grid>
<p class="footer important">
<htk-text format="%.2d€">
<db-calc-sum property="param" func="subtotal" model="movements"/>
</htk-text>
</p>
<p class="important">
<t>Total + tax</t>
<htk-text format="%.2d€" form="ticket" column="total"/>
</p>
<htk-grid id="services">
<db-model
property="model"
id="services"
conn="conn"
batch="batch"
on-status-changed="onServicesChanged">
CALL myTicket_getServices(#ticket)
</db-model>
<htk-column-text title="_Service" column="description"/>
<htk-column-spin title="_Amount" column="quantity"/>
<htk-column-spin title="_Price" column="price" unit="€" digits="2"/>
<htk-column-spin title="_Subtotal" unit="€" digits="2" renderer="serviceSubtotal"/>
</htk-grid>
<htk-grid id="packages" class="packages">
<db-model
property="model"
@ -68,7 +83,7 @@
</db-model>
<htk-column-spin title="_Ref" column="id"/>
<htk-column-spin title="_Amount" column="quantity"/>
<htk-column-text title="_Item" column="name"/>
<htk-column-text title="_Packaging" column="name"/>
</htk-grid>
</div>
</vn>

View File

@ -3,7 +3,7 @@
class Account {
static function trySync($db, $userName, $password = NULL) {
$isSync = $db->getValue(
'SELECT sync FROM account.user WHERE name = #',
'SELECT COUNT(*) > 0 FROM account.userSync WHERE name = #',
[$userName]
);
@ -13,243 +13,30 @@ class Account {
self::sync($db, $userName, $password);
}
static function sync($db, $userName, $password = NULL, $force = TRUE) {
$hasAccount = $db->getValue(
'SELECT COUNT(*) > 0
FROM account.user u
JOIN account.account a ON u.id = a.id
WHERE u.name = #',
[$userName]
);
if ($hasAccount) {
self::ldapSync($db, $userName, $password);
self::sambaSync($db, $userName, $password);
}
static function sync($db, $userName, $password = NULL) {
$bcryptPassword = password_hash($password, PASSWORD_BCRYPT);
$userId = $db->getValue(
'SELECT id FROM account.user WHERE `name` = #',
[$userName]
);
$db->query(
'CALL account.user_syncPassword(#, #)',
[$userId, $password]
);
$db->query(
'UPDATE account.user SET
sync = TRUE,
bcryptPassword = #
WHERE id = #',
[$bcryptPassword, $userId]
);
}
/**
* Synchronizes the user credentials in the LDAP server.
*/
static function ldapSync($db, $userName, $password) {
// Gets LDAP configuration parameters
$conf = $db->getObject(
'SELECT host, rdn, password, baseDn, filter
FROM account.ldapConfig'
);
// Connects an authenticates against server
$ds = ldap_connect($conf->host);
if (!$ds)
throw new Exception("Can't connect to LDAP server: ". ldapError($ds));
try {
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$bind = ldap_bind($ds, $conf->rdn, base64_decode($conf->password));
if (!$bind)
throw new Exception("Authentication failed on LDAP server: ". ldapError($ds));
// Prepares the data
$domain = $db->getValue('SELECT domain FROM account.mailConfig');
$user = $db->getObject(
'SELECT `id`, `nickname`, `lang`, `role`
FROM account.user
WHERE `name` = #',
$hasAccount = $db->getValue(
'SELECT COUNT(*) > 0
FROM account.user u
JOIN account.account a ON u.id = a.id
WHERE u.name = #',
[$userName]
);
$accountCfg = $db->getObject(
'SELECT homedir, shell, idBase
FROM account.accountConfig'
);
$cn = empty($user->nickname) ? $userName : $user->nickname;
$nameArgs = explode(' ', $user->nickname);
$givenName = $nameArgs[0];
if (count($nameArgs) > 1)
$sn = $nameArgs[1];
if (empty($sn))
$sn = 'Empty';
$attrs = [
'cn' => $cn,
'displayName' => $user->nickname,
'givenName' => $givenName,
'sn' => $sn,
'mail' => "$userName@{$domain}",
'userPassword' => sshaEncode($password),
'preferredLanguage' => $user->lang,
'homeDirectory' => "$accountCfg->homedir/$userName",
'loginShell' => $accountCfg->shell,
'uidNumber' => $accountCfg->idBase + $user->id,
'gidNumber' => $accountCfg->idBase + $user->role
];
// Search the user entry
$filter = "uid=$userName";
if (!empty($conf->filter))
$filter = "(&($filter)($conf->filter))";
$res = ldap_search($ds, $conf->baseDn, $filter);
if (!$res)
throw new Exception("Can't get the LDAP entry: ". ldapError($ds));
$dn = "uid=$userName,{$conf->baseDn}";
$entry = ldap_first_entry($ds, $res);
if ($entry) ldap_delete($ds, $dn);
$addAttrs = [];
foreach ($attrs as $attribute => $value)
if (!empty($value))
$addAttrs[$attribute] = $value;
$addAttrs = array_merge($addAttrs, [
'objectClass' => ['inetOrgPerson', 'posixAccount'],
'uid' => $userName
]);
$updated = ldap_add($ds, $dn, $addAttrs);
if (!$updated)
throw new Exception("Can't update the LDAP entry: ". ldapError($ds));
} catch (Exception $e) {
ldap_unbind($ds);
throw $e;
}
}
/**
* Synchronizes the user credentials in the Samba server.
*/
static function sambaSync($db, $userName, $password) {
$conf = $db->getObject(
'SELECT host, sshUser, sshPass
FROM account.sambaConfig'
);
$accountCfg = $db->getObject(
'SELECT idBase
FROM account.accountConfig'
);
$domain = $db->getValue('SELECT domain FROM account.mailConfig');
$samba = new SshConnection($conf->host
,$conf->sshUser
,base64_decode($conf->sshPass)
);
$scriptDir = '/mnt/storage/scripts';
// Creates the Samba user and initializes it's home directory
$userId = $db->getValue(
'SELECT id FROM account.user WHERE name = #', [$userName]);
$samba->exec("$scriptDir/create-user.sh %s %s %s"
,$userName
,$accountCfg->idBase + $userId
,"$userName@{$domain}"
);
// Syncronizes the Samba password
if (empty($password))
return;
$samba->exec("$scriptDir/set-password.sh %s %s"
,$userName
,$password
if (!$hasAccount)
$db->getValue('DELETE FROM account.userSync WHERE name = #',
[$userName]
);
}
}
function ldapError($ds) {
return ldap_errno($ds) .': '. ldap_error($ds);
}
function sshaEncode($value) {
mt_srand((double) microtime() * 1000000);
$salt = pack('CCCC', mt_rand(), mt_rand(), mt_rand(), mt_rand());
$hash = '{SSHA}' . base64_encode(pack('H*', sha1($value . $salt)) . $salt);
return $hash;
}
function sshaVerify($hash, $value) {
$ohash = base64_decode(substr($hash, 6));
$osalt = substr($ohash, 20);
$ohash = substr($ohash, 0, 20);
$nhash = pack('H*', sha1($value . $osalt));
return $ohash == $nhash;
}
class SshConnection {
var $connection;
/**
* Abrebiated method to make SSH connections.
*/
function __construct($host, $user, $password) {
$this->connection = $connection = ssh2_connect($host);
if (!$connection)
throw new Exception("Can't connect to SSH server $host");
$authOk = ssh2_auth_password($connection, $user, $password);
if (!$authOk)
throw new Exception("SSH authentication failed on server $host");
return $connection;
}
/**
* Executes a command on the host.
*/
function exec() {
$nargs = func_num_args();
$args = func_get_args();
for ($i = 1; $i < $nargs; $i++)
$args[$i] = self::escape($args[$i]);
$command = call_user_func_array('sprintf', $args);
return ssh2_exec($this->connection, $command);
}
/**
* Escapes the double quotes from an string.
*/
static function escape($str) {
return '"'. str_replace('"', '\\"', $str) .'"';
}
}

View File

@ -12,7 +12,7 @@ class ChangePassword extends Vn\Web\JsonRequest {
$newPassword = $_REQUEST['newPassword'];
$oldPassword = $_REQUEST['oldPassword'];
$db->query('CALL account.myUserChangePassword(#, #)',
$db->query('CALL account.myUser_changePassword(#, #)',
[$oldPassword, $newPassword]);
Account::sync($db, $_SESSION['user'], $newPassword);
return TRUE;

View File

@ -15,8 +15,12 @@ class SetPassword extends Vn\Web\JsonRequest {
$setUser = $_REQUEST['setUser'];
$setPassword = $_REQUEST['setPassword'];
$db->query('CALL account.userSetPassword(#, #)',
[$setUser, $setPassword]);
$userId = $db->getValue(
'SELECT id FROM account.user WHERE `name` = #',
[$setUser]
);
$db->query('CALL account.user_setPassword(#, #)',
[$userId, $setPassword]);
Account::sync($db, $setUser, $setPassword);
return TRUE;
}

View File

@ -29,7 +29,7 @@ class Sms extends Vn\Web\JsonRequest {
$db->query(
'INSERT INTO vn.sms SET
`senderFk` = account.myUserGetId(),
`senderFk` = account.myUser_getId(),
`destinationFk` = #,
`destination` = #,
`message` = #,

View File

@ -57,9 +57,9 @@ class RestService extends Service {
}
if ($method::SECURITY == Security::DEFINER)
$methodDb->query('CALL account.myUserLogout()');
$methodDb->query('CALL account.myUser_logout');
$db->query('CALL account.myUserLogout()');
$db->query('CALL account.myUser_logout');
return $res;
}

View File

@ -204,7 +204,7 @@ abstract class Service {
throw new UserDisabledException();
}
$db->query('CALL account.userLoginWithName(#)', [$user]);
$db->query('CALL account.myUser_loginWithName(#)', [$user]);
$userChanged = !$anonymousUser
&&(empty($_SESSION['user']) || $_SESSION['user'] != $user);
@ -251,7 +251,7 @@ abstract class Service {
$password = base64_decode($row->mysqlPassword);
$userDb = $this->app->createConnection($userName, $password, TRUE);
$userDb->query('CALL account.userLoginWithKey(#, #)', [$user, $row->loginKey]);
$userDb->query('CALL account.myUser_loginWithKey(#, #)', [$user, $row->loginKey]);
return $userDb;
}