Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2017-11-21 07:16:10 +01:00
commit 4658db9c21
9 changed files with 477 additions and 25 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
*.tar.gz
SeedDMS_*/*.tgz
ext/*

View File

@ -12,7 +12,7 @@
<email>uwe@steinmann.cx</email>
<active>yes</active>
</lead>
<date>2017-09-05</date>
<date>2017-11-07</date>
<time>09:19:24</time>
<version>
<release>6.0.1</release>
@ -1530,7 +1530,7 @@ returns just users which are not disabled
</release>
<release>
<date>2017-09-05</date>
<time>06:34:50</time>
<time>09:19:24</time>
<version>
<release>5.1.4</release>
<api>5.1.4</api>

16
TODO
View File

@ -2,16 +2,11 @@ Show workflow steps after document has been released (keep workflow tab)
Show documents in calendar when they where uploaded.
Add attribute type 'date'
Update comment and date of a review/approval, if the same status is set
again. Currently setting the same status is turned of, because it didn't
have any effect, which is quite confusing if the user can do an operation
which has not the expected result.
Show number of documents that needs care (approval, review, any other action
in a workflog) next to Login/Logout-Menu.
Show message on doc info page if documents expects an action like review,
approval, etc.
@ -34,23 +29,15 @@ Allow to specify fine grained notification (e.g. deleting a document, folder)
Have access rights depending on document status. This will allow to
restrict access when a document is in a workflow or has been rejected.
There are still global variable in class SeedetoDMS_Bootstrap_Style
Settings::searchConfigFilePath() and Settings::getConfigDir() use different
approaches to get the configuration directory.
Show expiration status of documents in document list
Export/Import content as xml (even for subfolders)
Copy folders recursivly
Allow operations like delete, move, approve, etc. on a list of documents
Upload of multiple documents without an applet
Do not show documents which are not reviewed or approved or rejected
installation script:
- user simply unpack the tar.gz in a server folder and access that folder
- on startup if there are installation problems php automatically run the configuration script
@ -70,9 +57,6 @@ Sometimes in the DB are written messages strings in plain language whose
language depends on the current user and will never be translated.
This can be avoided using only coded messages
The mail language is translated using the current user language but should use
the receiver language (not easy).
In my Documents->all documents there should be two lists: one (the current) with
the user's document, and another with the user's updated document (that's because
one user could have updated a document not owned by himself)

View File

@ -92,6 +92,7 @@ if (get_magic_quotes_gpc()) {
unset($process);
}
$indexconf = null;
if($settings->_enableFullSearch) {
if($settings->_fullSearchEngine == 'sqlitefts') {
$indexconf = array(

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: acabello (20), Admin (1040), angel (123), francisco (2), jaimem (14)
// Translators: acabello (20), Admin (1041), angel (123), francisco (2), jaimem (14)
$text = array(
'2_factor_auth' => '',
@ -319,7 +319,7 @@ URL: [url]',
'documentcontent' => 'Contenido del documento',
'documents' => 'Documentos',
'documents_checked_out_by_you' => '',
'documents_expired' => '',
'documents_expired' => 'Documentos Caducos',
'documents_in_process' => 'Documentos en proceso',
'documents_locked' => '',
'documents_locked_by_you' => 'Documentos bloqueados por usted',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1052), aydin (83)
// Translators: Admin (1053), aydin (83)
$text = array(
'2_factor_auth' => '',
@ -318,7 +318,7 @@ URL: [url]',
'documentcontent' => '',
'documents' => 'Dokümanlar',
'documents_checked_out_by_you' => '',
'documents_expired' => '',
'documents_expired' => 'Süresi dolan belgeler',
'documents_in_process' => 'İşlemdeki Dokümanlar',
'documents_locked' => '',
'documents_locked_by_you' => 'Doküman sizin tarafınızdan kilitlendi',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (732), archonwang (469), fengjohn (5)
// Translators: Admin (733), archonwang (469), fengjohn (5)
$text = array(
'2_factor_auth' => '双重认证',
@ -320,7 +320,7 @@ URL: [url]',
'documentcontent' => '文档内容',
'documents' => '文档',
'documents_checked_out_by_you' => '您签出的文档',
'documents_expired' => '',
'documents_expired' => '过期的文档',
'documents_in_process' => '待处理文档',
'documents_locked' => '已锁定的文档',
'documents_locked_by_you' => '被您锁定的文档',

View File

@ -33,7 +33,7 @@ include $settings->_rootDir . "languages/" . $settings->_language . "/lang.inc";
function _printMessage($heading, $message) { /* {{{ */
global $dms, $theme;
$view = UI::factory($theme, 'ErrorDlg', array('dms'=>$dms));
$view = UI::factory($theme, 'Login', array('dms'=>$dms));
$view->exitError($heading, $message, true);
return;
} /* }}} */

View File

@ -0,0 +1,466 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="240.00000"
inkscape:export-xdpi="240.00000"
inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/docs/BIGmime-text.png"
sodipodi:docname="empty.svg"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
sodipodi:version="0.32"
id="svg249"
height="48.000000px"
width="48.000000px"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs3">
<linearGradient
inkscape:collect="always"
id="linearGradient3520">
<stop
style="stop-color:#000000;stop-opacity:0.41295547"
offset="0"
id="stop3522" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3524" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3520"
id="linearGradient13786"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5946829,0,0,0.5927814,-62.327355,-48.725799)"
x1="-18.618725"
y1="10.211342"
x2="-30.558546"
y2="12.189651" />
<linearGradient
id="linearGradient3671">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3673" />
<stop
id="stop3691"
offset="0.47533694"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3675" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3671"
id="radialGradient13784"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2626416,-0.1805803,0.4842474,0.7055033,-76.987986,-55.026495)"
cx="-26.305403"
cy="10.108011"
fx="-26.305403"
fy="10.108011"
r="7.0421038" />
<linearGradient
inkscape:collect="always"
id="linearGradient3656">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3658" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3660" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3656"
id="linearGradient13792"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-90,-60)"
x1="-24.756966"
y1="9.5694666"
x2="-22.611664"
y2="7.4241643" />
<linearGradient
inkscape:collect="always"
id="linearGradient3741">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3743" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3745" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3741"
id="radialGradient13636"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.8860258,0,0,1.1764706,-3.5441033,-4.2352941)"
cx="4"
cy="5.2999997"
fx="4"
fy="5.2999997"
r="17" />
<linearGradient
inkscape:collect="always"
id="linearGradient3613">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop3615" />
<stop
style="stop-color:#babdb6;stop-opacity:1"
offset="1"
id="stop3617" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3613"
id="linearGradient13634"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-90,-60)"
x1="-47.5"
y1="49.020683"
x2="-62.75"
y2="-22.502075" />
<linearGradient
id="linearGradient3683">
<stop
id="stop3685"
offset="0"
style="stop-color:#f6f6f5;stop-opacity:1;" />
<stop
id="stop3689"
offset="1"
style="stop-color:#d3d7cf;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3683"
id="radialGradient13632"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.9957492,0,0,1.9350367,0.62141,-91.167422)"
cx="-30.249996"
cy="35.357208"
fx="-30.249996"
fy="35.357208"
r="18.000002" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3702"
id="linearGradient13630"
gradientUnits="userSpaceOnUse"
x1="25.058096"
y1="47.027729"
x2="25.058096"
y2="39.999443" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3688"
id="radialGradient13628"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
cx="4.9929786"
cy="43.5"
fx="4.9929786"
fy="43.5"
r="2.5" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3688"
id="radialGradient13626"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
cx="4.9929786"
cy="43.5"
fx="4.9929786"
fy="43.5"
r="2.5" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3702"
id="linearGradient13624"
gradientUnits="userSpaceOnUse"
x1="25.058096"
y1="47.027729"
x2="25.058096"
y2="39.999443" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3688"
id="radialGradient13622"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
cx="4.9929786"
cy="43.5"
fx="4.9929786"
fy="43.5"
r="2.5" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3688"
id="radialGradient13620"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
cx="4.9929786"
cy="43.5"
fx="4.9929786"
fy="43.5"
r="2.5" />
<linearGradient
id="linearGradient3702">
<stop
style="stop-color:black;stop-opacity:0;"
offset="0"
id="stop3704" />
<stop
id="stop3710"
offset="0.5"
style="stop-color:black;stop-opacity:1;" />
<stop
style="stop-color:black;stop-opacity:0;"
offset="1"
id="stop3706" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3688">
<stop
style="stop-color:black;stop-opacity:1;"
offset="0"
id="stop3690" />
<stop
style="stop-color:black;stop-opacity:0;"
offset="1"
id="stop3692" />
</linearGradient>
</defs>
<sodipodi:namedview
inkscape:window-y="33"
inkscape:window-x="0"
inkscape:window-height="1018"
inkscape:window-width="1920"
inkscape:document-units="px"
inkscape:grid-bbox="true"
showgrid="false"
inkscape:current-layer="layer5"
inkscape:cy="25.524092"
inkscape:cx="10.952889"
inkscape:zoom="5.6568542"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1"
bordercolor="#666"
pagecolor="#ffffff"
id="base"
inkscape:showpageshadow="false"
inkscape:window-maximized="1" />
<metadata
id="metadata4">
<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>Text Preview</dc:title>
<dc:subject>
<rdf:Bag>
<rdf:li>text</rdf:li>
<rdf:li>plaintext</rdf:li>
<rdf:li>regular</rdf:li>
<rdf:li>document</rdf:li>
</rdf:Bag>
</dc:subject>
<cc:license
rdf:resource="" />
<dc:creator>
<cc:Agent>
<dc:title>Lapo Calamandrei</dc:title>
</cc:Agent>
</dc:creator>
<dc:source />
<dc:date />
<dc:rights>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:publisher>
<dc:identifier />
<dc:relation />
<dc:language />
<dc:coverage />
<dc:description />
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Shadow" />
<g
style="display:inline"
inkscape:groupmode="layer"
inkscape:label="Base"
id="layer1" />
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Text"
style="display:inline">
<g
style="display:inline"
id="g13794"
transform="translate(150,60)">
<g
transform="translate(0,-60)"
id="g13584"
style="display:inline">
<rect
style="opacity:0;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
id="rect13586"
width="48"
height="48"
x="-150"
y="0" />
<g
id="g13588">
<g
transform="matrix(1.0464281,0,0,0.8888889,-151.18571,5.7222396)"
inkscape:label="Shadow"
id="g13590"
style="opacity:0.65587045;display:inline">
<g
transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)"
style="opacity:0.4"
id="g13592">
<rect
style="opacity:1;fill:url(#radialGradient13620);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect13594"
width="5"
height="7"
x="38"
y="40" />
<rect
style="opacity:1;fill:url(#radialGradient13622);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect13596"
width="5"
height="7"
x="-10"
y="-47"
transform="scale(-1,-1)" />
<rect
style="opacity:1;fill:url(#linearGradient13624);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect13598"
width="28"
height="7.0000005"
x="10"
y="40" />
</g>
</g>
<g
transform="matrix(0.9548466,0,0,0.5555562,-148.98776,19.888875)"
inkscape:label="Shadow"
id="g13600"
style="display:inline">
<g
transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)"
style="opacity:0.4"
id="g13602">
<rect
style="opacity:1;fill:url(#radialGradient13626);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect13604"
width="5"
height="7"
x="38"
y="40" />
<rect
style="opacity:1;fill:url(#radialGradient13628);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect13606"
width="5"
height="7"
x="-10"
y="-47"
transform="scale(-1,-1)" />
<rect
style="opacity:1;fill:url(#linearGradient13630);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect13608"
width="28"
height="7.0000005"
x="10"
y="40" />
</g>
</g>
<path
sodipodi:nodetypes="cccccccscc"
id="path13610"
transform="translate(0,60)"
d="M -141.46875,-56.5 C -142.58997,-56.5 -143.5,-55.589966 -143.5,-54.46875 L -143.5,-17.53125 C -143.5,-16.410033 -142.58997,-15.5 -141.46875,-15.5 L -110.53125,-15.5 C -109.41004,-15.5 -108.5,-16.410034 -108.5,-17.53125 C -108.5,-27.447917 -108.5,-37.364583 -108.5,-47.28125 C -108.75793,-49.746835 -110.13765,-51.573876 -111.78125,-53.21875 C -113.42485,-54.863625 -115.16982,-56.452007 -117.71875,-56.5 C -125.63542,-56.5 -133.55208,-56.5 -141.46875,-56.5 z"
style="fill:url(#radialGradient13632);fill-opacity:1;stroke:url(#linearGradient13634);stroke-width:1;stroke-miterlimit:4;display:inline" />
<path
transform="translate(-150,0)"
d="M 8.53125,4 C 7.6730803,4 7,4.6730802 7,5.53125 L 7,42.46875 C 7,43.32692 7.6730802,44 8.53125,44 L 39.46875,44 C 40.326919,44 41,43.326918 41,42.46875 C 41,42.46875 41,19 41,17.5 C 41,16.10803 40.513021,13.200521 38.65625,11.34375 C 36.65625,9.34375 35.65625,8.34375 33.65625,6.34375 C 31.799479,4.4869792 28.89197,4 27.5,4 C 26,4 8.53125,4 8.53125,4 z"
id="path13612"
style="opacity:0.68016196;fill:url(#radialGradient13636);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;display:inline"
inkscape:original="M 8.53125 3.5 C 7.410033 3.5 6.5 4.4100329 6.5 5.53125 L 6.5 42.46875 C 6.5 43.589967 7.4100329 44.5 8.53125 44.5 L 39.46875 44.5 C 40.589967 44.5 41.5 43.589966 41.5 42.46875 C 41.5 42.46875 41.5 19 41.5 17.5 C 41.5 16 41 13 39 11 C 37 9 36 8 34 6 C 32 4 29 3.5 27.5 3.5 C 26 3.5 8.5312499 3.5 8.53125 3.5 z "
inkscape:radius="-0.4861359"
sodipodi:type="inkscape:offset" />
<path
id="path13618"
transform="translate(0,60)"
d="M -141.46875,-55.5 C -142.05192,-55.5 -142.5,-55.051916 -142.5,-54.46875 L -142.5,-17.53125 C -142.5,-16.948085 -142.05191,-16.5 -141.46875,-16.5 L -110.53125,-16.5 C -109.94808,-16.5 -109.5,-16.948086 -109.5,-17.53125 C -109.5,-17.53125 -109.5,-41 -109.5,-42.5 C -109.5,-42.606586 -109.52415,-42.779716 -109.53125,-42.90625 C -109.53125,-44.658248 -109.53125,-47.01807 -109.53125,-47.28125 C -109.53125,-48.038629 -109.86422,-49.800936 -110.875,-50.8125 C -112.18988,-52.128398 -112.84137,-52.8091 -114.15625,-54.125 C -115.16704,-55.136562 -116.96195,-55.46875 -117.71875,-55.46875 C -118.06477,-55.46875 -120.11232,-55.46875 -122.09375,-55.46875 C -122.22028,-55.475855 -122.39341,-55.5 -122.5,-55.5 C -124,-55.5 -141.46875,-55.5 -141.46875,-55.5 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient13792);stroke-width:1;stroke-miterlimit:4;display:inline" />
</g>
</g>
<g
transform="translate(-36.006942,-8.993441)"
id="g13771">
<path
style="fill:url(#radialGradient13784);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;display:inline"
d="M -81.704642,-47 C -82.600168,-47 -81.731767,-46.679215 -80.83822,-46.274007 C -79.944674,-45.868798 -78.473456,-44.361864 -79,-42 C -74.43068,-42.707107 -73.851802,-39.822428 -73.644912,-39.074576 C -73.438023,-38.326725 -73.000134,-37.391796 -73.000134,-38.288084 C -72.981865,-40.743928 -74.834804,-42.438635 -76.123279,-43.874197 C -77.411755,-45.309758 -79.348756,-46.692333 -81.704642,-47 z"
id="path13676"
sodipodi:nodetypes="ccccczc" />
<path
style="opacity:0.87854249;fill:url(#linearGradient13786);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;display:inline"
d="M -80.994821,-46.345411 C -80.400137,-46.345411 -80,-42.5 -80,-40 C -77,-40 -74.29634,-39.548186 -74,-39 C -74.20689,-39.747852 -74.538563,-42.773398 -79,-42 C -78.442483,-44.500797 -80.212993,-46.107705 -80.994821,-46.345411 z"
id="path13678"
sodipodi:nodetypes="ccccc" />
</g>
</g>
<g
aria-label="?"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.33333397px;line-height:25px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text874"
transform="translate(-1.375,2.625)">
<path
d="M 27.260417,23.25 H 23.5 v -0.510417 q 0,-0.854167 0.34375,-1.510417 0.34375,-0.666666 1.447917,-1.6875 L 25.958334,18.9375 q 0.59375,-0.541667 0.864583,-1.020834 0.28125,-0.479166 0.28125,-0.958333 0,-0.729167 -0.5,-1.135417 -0.5,-0.416666 -1.395834,-0.416666 -0.84375,0 -1.822916,0.354166 -0.979167,0.34375 -2.041667,1.03125 v -3.270833 q 1.260417,-0.4375 2.302083,-0.645833 1.041667,-0.208334 2.010417,-0.208334 2.541667,0 3.875,1.041667 1.333334,1.03125 1.333334,3.020833 0,1.020834 -0.40625,1.833334 -0.40625,0.802083 -1.385417,1.729166 l -0.666667,0.59375 q -0.708333,0.645834 -0.927083,1.041667 -0.21875,0.385417 -0.21875,0.854167 z M 23.5,24.791667 h 3.760417 V 28.5 H 23.5 Z"
id="path876"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB