introduce new app page layout
filter installed and not-installed apps properly kill unneeded file load category 'Installed' on page load adding documentation links new apps mgmt: first style adjustment apps mgmt: only show license and preview if they exist adding buttons new apps mgmt: fix for mobile use app icon if available new apps mgmt: position enable/disable toggle to the right new apps mgmt: proper display of icons or previews new apps mgmt: fix loading spinner reenable group selection for apps new apps mgmt: position enable button normally again new apps mgmt: clarify wording from 'Installed' to 'Enabled' reintroduce enable/disable Move rating image path generation to client-side Move expression outside of l10n fix group handling add buttons for 'More apps' and 'Add your app' again disable changed date of app for now adding recommended label style 'Recommended' app tag fixing php warning sort by rating adding meta-category 'Recommended' Only show existing documentation links lacy loading of screenshots making group based app activation work again adding support to get the app icon not only by the app name but also simply by the fixed name 'app.svg' adding app.svg for all core apps query string '?installed' is not longer needed update and uninstall is back + error feedback remove unneeded parameter fix alignment of 'recommended' labelremotes/origin/fix-10825
-
51apps/files_encryption/img/app.svg
-
212apps/files_external/img/app.svg
-
54apps/files_sharing/img/app.svg
-
54apps/files_trashbin/img/app.svg
-
103apps/files_versions/img/app.svg
-
61apps/user_ldap/img/app.svg
-
61apps/user_webdavauth/img/app.svg
-
BINcore/img/rating/s0.png
-
BINcore/img/rating/s1.png
-
BINcore/img/rating/s10.png
-
BINcore/img/rating/s11.png
-
BINcore/img/rating/s2.png
-
BINcore/img/rating/s3.png
-
BINcore/img/rating/s4.png
-
BINcore/img/rating/s5.png
-
BINcore/img/rating/s6.png
-
BINcore/img/rating/s7.png
-
BINcore/img/rating/s8.png
-
BINcore/img/rating/s9.png
-
2core/templates/layout.user.php
-
118lib/private/app.php
-
3lib/private/installer.php
-
2lib/private/ocsclient.php
-
30settings/ajax/apps/categories.php
-
65settings/ajax/apps/index.php
-
68settings/ajax/apps/ocs.php
-
21settings/ajax/updateapp.php
-
21settings/apps.php
-
61settings/css/settings.css
-
26settings/js/apps-custom.php
-
491settings/js/apps.js
-
0settings/js/old-apps.js
-
8settings/routes.php
-
127settings/templates/apps.php
@ -0,0 +1,51 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
xml:space="preserve" |
|||
height="16px" |
|||
width="16px" |
|||
version="1.1" |
|||
y="0px" |
|||
x="0px" |
|||
viewBox="0 0 71 100" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"><metadata |
|||
id="metadata10"><rdf:RDF><cc:Work |
|||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs |
|||
id="defs8" /><sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview6" |
|||
showgrid="false" |
|||
inkscape:zoom="14.75" |
|||
inkscape:cx="-21.423729" |
|||
inkscape:cy="8" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /><path |
|||
d="m8 1c-2.2091 0-4 1.7909-4 4v2h-1v7h10v-7h-1v-2c0-2.2091-1.791-4-4-4zm0 2c1.1046 0 2 0.89543 2 2v2h-4v-2c0-1.1046 0.8954-2 2-2z" |
|||
transform="matrix(6.25,0,0,6.25,-14.5,0)" |
|||
id="path4" |
|||
style="fill:#ffffff;fill-opacity:1" /><path |
|||
style="fill:none" |
|||
d="m 3.0644068,10.508475 0,-3.4576275 0.4655371,0 0.465537,0 0.049537,-1.2033899 C 4.1094633,4.2818838 4.1578923,4.0112428 4.4962182,3.3259708 4.7075644,2.8978935 4.9002217,2.6327599 5.2605792,2.2740624 6.7855365,0.75613022 8.9920507,0.69157582 10.623172,2.1171729 c 0.384104,0.3357058 0.882069,1.0763131 1.054177,1.5678422 0.147302,0.4206856 0.262873,1.6086448 0.266436,2.7387137 l 0.002,0.6271187 0.508474,0 0.508475,0 0,3.4576275 0,3.457627 -4.9491527,0 -4.9491525,0 0,-3.457627 z M 10.065882,6.3559322 c -0.02012,-0.3822034 -0.04774,-0.7076271 -0.0614,-0.7231639 -0.013653,-0.015537 -0.024824,0.281921 -0.024824,0.661017 l 0,0.6892655 -1.9630041,0 -1.963004,0 -0.023717,-0.4576271 -0.023717,-0.4576271 -0.013279,0.4915254 -0.013279,0.4915255 2.0613978,0 2.0613972,0 -0.03657,-0.6949153 0,0 z M 6.5396275,3.7118644 C 6.648082,3.5720339 6.7197092,3.4576271 6.6987988,3.4576271 c -0.062956,0 -0.5835446,0.6841947 -0.5835446,0.7669359 0,0.042237 0.051116,0.00136 0.1135916,-0.090834 0.062475,-0.092195 0.2023271,-0.2820343 0.3107817,-0.4218648 z M 9.7498983,4.0169492 C 9.6961899,3.9144068 9.5352369,3.723769 9.392225,3.5933098 L 9.1322034,3.356111 9.3784249,3.6272081 c 0.1354218,0.1491033 0.2814105,0.3397411 0.3244192,0.4236394 0.043009,0.083898 0.093162,0.1525423 0.1114515,0.1525423 0.01829,0 -0.010689,-0.083898 -0.064397,-0.1864406 l 0,0 z M 7.3032896,3.1315382 C 7.2704731,3.0987216 6.877102,3.3089557 6.8306315,3.3841466 6.8091904,3.4188389 6.911918,3.3813452 7.0589148,3.300827 7.2059117,3.2203088 7.3158803,3.1441289 7.3032896,3.1315382 l 0,0 z" |
|||
id="path3007" |
|||
inkscape:connector-curvature="0" |
|||
transform="matrix(6.25,0,0,6.25,-14.5,0)" /></svg> |
@ -0,0 +1,212 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
height="32px" |
|||
width="32px" |
|||
version="1.1" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"> |
|||
<metadata |
|||
id="metadata80"> |
|||
<rdf:RDF> |
|||
<cc:Work |
|||
rdf:about=""> |
|||
<dc:format>image/svg+xml</dc:format> |
|||
<dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
|||
</cc:Work> |
|||
</rdf:RDF> |
|||
</metadata> |
|||
<sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview78" |
|||
showgrid="false" |
|||
inkscape:zoom="7.375" |
|||
inkscape:cx="-13.559322" |
|||
inkscape:cy="16" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /> |
|||
<defs |
|||
id="defs4"> |
|||
<linearGradient |
|||
id="m" |
|||
y2="21.387" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="27.557" |
|||
gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)" |
|||
y1="7.1627" |
|||
x1="27.557"> |
|||
<stop |
|||
stop-color="#fff" |
|||
offset="0" |
|||
id="stop7" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".23529" |
|||
offset=".0097359" |
|||
id="stop9" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".15686" |
|||
offset=".99001" |
|||
id="stop11" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".39216" |
|||
offset="1" |
|||
id="stop13" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="l" |
|||
y2="43.761" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="35.793" |
|||
gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)" |
|||
y1="17.118" |
|||
x1="35.793"> |
|||
<stop |
|||
stop-color="#b4cee1" |
|||
offset="0" |
|||
id="stop16" /> |
|||
<stop |
|||
stop-color="#5d9fcd" |
|||
offset="1" |
|||
id="stop18" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="k" |
|||
y2="609.51" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="302.86" |
|||
gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" |
|||
y1="366.65" |
|||
x1="302.86"> |
|||
<stop |
|||
stop-opacity="0" |
|||
offset="0" |
|||
id="stop21" /> |
|||
<stop |
|||
offset=".5" |
|||
id="stop23" /> |
|||
<stop |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop25" /> |
|||
</linearGradient> |
|||
<radialGradient |
|||
id="n" |
|||
gradientUnits="userSpaceOnUse" |
|||
cy="486.65" |
|||
cx="605.71" |
|||
gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" |
|||
r="117.14"> |
|||
<stop |
|||
offset="0" |
|||
id="stop28" /> |
|||
<stop |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop30" /> |
|||
</radialGradient> |
|||
<radialGradient |
|||
id="o" |
|||
gradientUnits="userSpaceOnUse" |
|||
cy="486.65" |
|||
cx="605.71" |
|||
gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" |
|||
r="117.14"> |
|||
<stop |
|||
offset="0" |
|||
id="stop33" /> |
|||
<stop |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop35" /> |
|||
</radialGradient> |
|||
<linearGradient |
|||
id="j" |
|||
y2="34.143" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="21.37" |
|||
gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)" |
|||
y1="4.7324" |
|||
x1="21.37"> |
|||
<stop |
|||
stop-color="#fff" |
|||
offset="0" |
|||
id="stop38" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".23529" |
|||
offset=".11063" |
|||
id="stop40" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".15686" |
|||
offset=".99001" |
|||
id="stop42" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".39216" |
|||
offset="1" |
|||
id="stop44" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="i" |
|||
y2="16" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="62.989" |
|||
gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)" |
|||
y1="13" |
|||
x1="62.989"> |
|||
<stop |
|||
stop-color="#f9f9f9" |
|||
offset="0" |
|||
id="stop47" /> |
|||
<stop |
|||
stop-color="#d8d8d8" |
|||
offset="1" |
|||
id="stop49" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="d" |
|||
y2="3.6337" |
|||
gradientUnits="userSpaceOnUse" |
|||
y1="53.514" |
|||
gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)" |
|||
x2="-51.786" |
|||
x1="-51.786"> |
|||
<stop |
|||
stop-opacity=".32174" |
|||
offset="0" |
|||
id="stop52" /> |
|||
<stop |
|||
stop-opacity=".27826" |
|||
offset="1" |
|||
id="stop54" /> |
|||
</linearGradient> |
|||
</defs> |
|||
<path |
|||
d="m 14.902928,3.2372882 4.76117,4.5146377 -7.141758,6.7719561 4.761174,4.514639 7.141756,-6.771956 4.761171,4.514636 V 3.2372882 H 14.902928 z M 5.3805857,5.4946057 C 4.0617412,5.4946057 3,6.501372 3,7.7519259 V 25.810477 c 0,1.250555 1.0617412,2.257319 2.3805857,2.257319 H 24.42527 c 1.318844,0 2.380584,-1.006764 2.380584,-2.257319 v -6.771956 l -2.380584,-2.25732 v 9.029276 H 5.3805857 V 7.7519259 H 14.902928 L 12.52234,5.4946057 H 5.3805857 z" |
|||
id="path76" |
|||
inkscape:connector-curvature="0" |
|||
style="opacity:0.7;fill:#ffffff;fill-opacity:1" /> |
|||
</svg> |
@ -0,0 +1,54 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
height="16" |
|||
width="16" |
|||
version="1.1" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"> |
|||
<metadata |
|||
id="metadata12"> |
|||
<rdf:RDF> |
|||
<cc:Work |
|||
rdf:about=""> |
|||
<dc:format>image/svg+xml</dc:format> |
|||
<dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
|||
</cc:Work> |
|||
</rdf:RDF> |
|||
</metadata> |
|||
<defs |
|||
id="defs10" /> |
|||
<sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview8" |
|||
showgrid="false" |
|||
inkscape:zoom="14.75" |
|||
inkscape:cx="-6.6440678" |
|||
inkscape:cy="8" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path6" |
|||
d="m 12.228,1 c -1.3565,0 -2.4592,1.0977 -2.4592,2.4542 0,0.075 0.0084,0.1504 0.0149,0.2236 L 5.0491,6.0923 C 4.62,5.7256 4.06299,5.506 3.4544,5.506 c -1.3565,0 -2.4542,1.0977 -2.4542,2.4543 0,1.3565 1.0977,2.4542 2.4542,2.4542 0.54607,0 1.0528,-0.1755 1.4606,-0.477 l 4.8637,2.4741 c -0.0024,0.044 -0.0099,0.089 -0.0099,0.1342 0,1.3565 1.1027,2.4542 2.4592,2.4542 1.3565,0 2.4542,-1.0977 2.4542,-2.4542 0,-1.3565 -1.0977,-2.4592 -2.4542,-2.4592 -0.63653,0 -1.218,0.2437 -1.6544,0.6409 l -4.6953,-2.4 C 5.89722,8.2047 5.91308,8.0781 5.91308,7.95 c 0,-0.072 -0.0089,-0.1437 -0.0149,-0.2137 l 4.7395,-2.4145 c 0.42802,0.3627 0.98488,0.5813 1.5898,0.5813 1.3565,0 2.4542,-1.1027 2.4542,-2.4592 0,-1.3565 -1.0977,-2.4542 -2.4542,-2.4542 z" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
</svg> |
@ -0,0 +1,54 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
height="16" |
|||
width="16" |
|||
version="1.1" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"> |
|||
<metadata |
|||
id="metadata10"> |
|||
<rdf:RDF> |
|||
<cc:Work |
|||
rdf:about=""> |
|||
<dc:format>image/svg+xml</dc:format> |
|||
<dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
|||
</cc:Work> |
|||
</rdf:RDF> |
|||
</metadata> |
|||
<defs |
|||
id="defs8" /> |
|||
<sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview6" |
|||
showgrid="false" |
|||
inkscape:zoom="14.75" |
|||
inkscape:cx="-6.6440678" |
|||
inkscape:cy="8" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /> |
|||
<path |
|||
d="m6.5 1-0.5 1h-3c-0.554 0-1 0.446-1 1v1h12v-1c0-0.554-0.446-1-1-1h-3l-0.5-1zm-3.5 4 0.875 9c0.061 0.549 0.5729 1 1.125 1h6c0.55232 0 1.064-0.45102 1.125-1l0.875-9z" |
|||
fill-rule="evenodd" |
|||
id="path4" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
</svg> |
@ -0,0 +1,103 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
height="16" |
|||
width="16" |
|||
version="1.0" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"> |
|||
<metadata |
|||
id="metadata20"> |
|||
<rdf:RDF> |
|||
<cc:Work |
|||
rdf:about=""> |
|||
<dc:format>image/svg+xml</dc:format> |
|||
<dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
|||
</cc:Work> |
|||
</rdf:RDF> |
|||
</metadata> |
|||
<defs |
|||
id="defs18" /> |
|||
<sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview16" |
|||
showgrid="false" |
|||
inkscape:zoom="14.75" |
|||
inkscape:cx="-6.6440678" |
|||
inkscape:cy="8" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /> |
|||
<rect |
|||
rx=".5" |
|||
ry=".5" |
|||
height="4" |
|||
width="4" |
|||
y="1" |
|||
x="1" |
|||
id="rect4" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
<rect |
|||
rx=".5" |
|||
ry=".5" |
|||
height="1" |
|||
width="9" |
|||
y="2" |
|||
x="6" |
|||
id="rect6" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
<rect |
|||
rx=".5" |
|||
ry=".5" |
|||
height="4" |
|||
width="4" |
|||
y="6" |
|||
x="1" |
|||
id="rect8" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
<rect |
|||
rx=".5" |
|||
ry=".5" |
|||
height="1" |
|||
width="9" |
|||
y="7" |
|||
x="6" |
|||
id="rect10" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
<rect |
|||
rx=".5" |
|||
ry=".5" |
|||
height="4" |
|||
width="4" |
|||
y="11" |
|||
x="1" |
|||
id="rect12" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
<rect |
|||
rx=".5" |
|||
ry=".5" |
|||
height="1" |
|||
width="9" |
|||
y="12" |
|||
x="6" |
|||
id="rect14" |
|||
style="fill:#ffffff;fill-opacity:1" /> |
|||
</svg> |
@ -0,0 +1,61 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
height="16" |
|||
width="16" |
|||
version="1.0" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"> |
|||
<metadata |
|||
id="metadata12"> |
|||
<rdf:RDF> |
|||
<cc:Work |
|||
rdf:about=""> |
|||
<dc:format>image/svg+xml</dc:format> |
|||
<dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
|||
</cc:Work> |
|||
</rdf:RDF> |
|||
</metadata> |
|||
<defs |
|||
id="defs10" /> |
|||
<sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview8" |
|||
showgrid="false" |
|||
inkscape:zoom="14.75" |
|||
inkscape:cx="-6.6440678" |
|||
inkscape:cy="8" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /> |
|||
<rect |
|||
style="color:#000000" |
|||
fill-opacity="0" |
|||
height="97.986" |
|||
width="163.31" |
|||
y="-32.993" |
|||
x="-62.897" |
|||
id="rect4" /> |
|||
<path |
|||
style="block-progression:tb;color:#000000;text-transform:none;text-indent:0;fill:#ffffff;fill-opacity:1" |
|||
d="m8.4036 1c-1.7312 0-3.1998 1.2661-3.1998 2.9 0.012287 0.51643 0.058473 1.1532 0.36664 2.5v0.033333l0.033328 0.033333c0.098928 0.28338 0.24289 0.44549 0.4333 0.66666s0.41742 0.48149 0.63328 0.69999c0.025397 0.025708 0.041676 0.041633 0.066656 0.066677 0.04281 0.18631 0.094672 0.38681 0.13332 0.56666 0.10284 0.47851 0.092296 0.81737 0.066668 0.93332-0.74389 0.26121-1.6694 0.57228-2.4998 0.93332-0.46622 0.2027-0.8881 0.3837-1.2332 0.59999-0.34513 0.2163-0.68837 0.37971-0.79994 0.86666-0.16004 0.63293-0.19866 0.7539-0.39997 1.5333-0.027212 0.20914 0.083011 0.42961 0.26665 0.53333 1.5078 0.81451 3.824 1.1423 6.1329 1.1333s4.6066-0.35609 6.0662-1.1333c0.11739-0.07353 0.14304-0.10869 0.13332-0.2333-0.04365-0.68908-0.08154-1.3669-0.13332-1.7666-0.01807-0.09908-0.06492-0.19275-0.13332-0.26666-0.46366-0.5537-1.1564-0.89218-1.9665-1.2333-0.7396-0.31144-1.6067-0.63486-2.4665-0.99999-0.048123-0.10721-0.095926-0.41912 0-0.89999 0.025759-0.12912 0.066096-0.26742 0.099994-0.4 0.0808-0.090507 0.14378-0.16447 0.23332-0.26666 0.19096-0.21796 0.39614-0.44661 0.56662-0.66666s0.30996-0.40882 0.39997-0.66666l0.03333-0.033333c0.34839-1.4062 0.34857-1.9929 0.36664-2.5v-0.033333c0-1.6339-1.4686-2.9-3.1998-2.9z" |
|||
id="path6" /> |
|||
</svg> |
@ -0,0 +1,61 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
|||
height="16" |
|||
width="16" |
|||
version="1.0" |
|||
id="svg2" |
|||
inkscape:version="0.48.5 r10040" |
|||
sodipodi:docname="app.svg"> |
|||
<metadata |
|||
id="metadata12"> |
|||
<rdf:RDF> |
|||
<cc:Work |
|||
rdf:about=""> |
|||
<dc:format>image/svg+xml</dc:format> |
|||
<dc:type |
|||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
|||
</cc:Work> |
|||
</rdf:RDF> |
|||
</metadata> |
|||
<defs |
|||
id="defs10" /> |
|||
<sodipodi:namedview |
|||
pagecolor="#ffffff" |
|||
bordercolor="#666666" |
|||
borderopacity="1" |
|||
objecttolerance="10" |
|||
gridtolerance="10" |
|||
guidetolerance="10" |
|||
inkscape:pageopacity="0" |
|||
inkscape:pageshadow="2" |
|||
inkscape:window-width="1920" |
|||
inkscape:window-height="1014" |
|||
id="namedview8" |
|||
showgrid="false" |
|||
inkscape:zoom="14.75" |
|||
inkscape:cx="-6.6440678" |
|||
inkscape:cy="8" |
|||
inkscape:window-x="0" |
|||
inkscape:window-y="27" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" /> |
|||
<rect |
|||
style="color:#000000" |
|||
fill-opacity="0" |
|||
height="97.986" |
|||
width="163.31" |
|||
y="-32.993" |
|||
x="-62.897" |
|||
id="rect4" /> |
|||
<path |
|||
style="block-progression:tb;color:#000000;text-transform:none;text-indent:0;fill:#ffffff;fill-opacity:1" |
|||
d="m8.4036 1c-1.7312 0-3.1998 1.2661-3.1998 2.9 0.012287 0.51643 0.058473 1.1532 0.36664 2.5v0.033333l0.033328 0.033333c0.098928 0.28338 0.24289 0.44549 0.4333 0.66666s0.41742 0.48149 0.63328 0.69999c0.025397 0.025708 0.041676 0.041633 0.066656 0.066677 0.04281 0.18631 0.094672 0.38681 0.13332 0.56666 0.10284 0.47851 0.092296 0.81737 0.066668 0.93332-0.74389 0.26121-1.6694 0.57228-2.4998 0.93332-0.46622 0.2027-0.8881 0.3837-1.2332 0.59999-0.34513 0.2163-0.68837 0.37971-0.79994 0.86666-0.16004 0.63293-0.19866 0.7539-0.39997 1.5333-0.027212 0.20914 0.083011 0.42961 0.26665 0.53333 1.5078 0.81451 3.824 1.1423 6.1329 1.1333s4.6066-0.35609 6.0662-1.1333c0.11739-0.07353 0.14304-0.10869 0.13332-0.2333-0.04365-0.68908-0.08154-1.3669-0.13332-1.7666-0.01807-0.09908-0.06492-0.19275-0.13332-0.26666-0.46366-0.5537-1.1564-0.89218-1.9665-1.2333-0.7396-0.31144-1.6067-0.63486-2.4665-0.99999-0.048123-0.10721-0.095926-0.41912 0-0.89999 0.025759-0.12912 0.066096-0.26742 0.099994-0.4 0.0808-0.090507 0.14378-0.16447 0.23332-0.26666 0.19096-0.21796 0.39614-0.44661 0.56662-0.66666s0.30996-0.40882 0.39997-0.66666l0.03333-0.033333c0.34839-1.4062 0.34857-1.9929 0.36664-2.5v-0.033333c0-1.6339-1.4686-2.9-3.1998-2.9z" |
|||
id="path6" /> |
|||
</svg> |
After Width: 96 | Height: 18 | Size: 299 B |
Before Width: 96 | Height: 18 | Size: 299 B After Width: 96 | Height: 18 | Size: 441 B |
Before Width: 96 | Height: 18 | Size: 557 B After Width: 96 | Height: 18 | Size: 464 B |
Before Width: 96 | Height: 18 | Size: 464 B |
Before Width: 96 | Height: 18 | Size: 441 B After Width: 96 | Height: 18 | Size: 594 B |
Before Width: 96 | Height: 18 | Size: 594 B After Width: 96 | Height: 18 | Size: 620 B |
Before Width: 96 | Height: 18 | Size: 620 B After Width: 96 | Height: 18 | Size: 602 B |
Before Width: 96 | Height: 18 | Size: 602 B After Width: 96 | Height: 18 | Size: 621 B |
Before Width: 96 | Height: 18 | Size: 621 B After Width: 96 | Height: 18 | Size: 603 B |
Before Width: 96 | Height: 18 | Size: 603 B After Width: 96 | Height: 18 | Size: 621 B |
Before Width: 96 | Height: 18 | Size: 621 B After Width: 96 | Height: 18 | Size: 584 B |
Before Width: 96 | Height: 18 | Size: 584 B After Width: 96 | Height: 18 | Size: 557 B |
@ -0,0 +1,30 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
OC_JSON::checkAdminUser(); |
|||
|
|||
$l = OC_L10N::get('settings'); |
|||
|
|||
$categories = array( |
|||
array('id' => 0, 'displayName' => (string)$l->t('Enabled') ), |
|||
array('id' => 1, 'displayName' => (string)$l->t('Not enabled') ), |
|||
); |
|||
|
|||
if(OC_Config::getValue('appstoreenabled', true)) { |
|||
$categories[] = array('id' => 2, 'displayName' => (string)$l->t('Recommended') ); |
|||
// apps from external repo via OCS
|
|||
$ocs = OC_OCSClient::getCategories(); |
|||
foreach($ocs as $k => $v) { |
|||
$categories[] = array( |
|||
'id' => $k, |
|||
'displayName' => str_replace('ownCloud ', '', $v) |
|||
); |
|||
} |
|||
} |
|||
|
|||
OCP\JSON::success($categories); |
@ -0,0 +1,65 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
OC_JSON::checkAdminUser(); |
|||
|
|||
$l = OC_L10N::get('settings'); |
|||
|
|||
$category = intval($_GET['category']); |
|||
$apps = array(); |
|||
|
|||
switch($category) { |
|||
// installed apps
|
|||
case 0: |
|||
$apps = \OC_App::listAllApps(true); |
|||
$apps = array_filter($apps, function($app) { |
|||
return $app['active']; |
|||
}); |
|||
break; |
|||
// not-installed apps
|
|||
case 1: |
|||
$apps = \OC_App::listAllApps(true); |
|||
$apps = array_filter($apps, function($app) { |
|||
return !$app['active']; |
|||
}); |
|||
break; |
|||
default: |
|||
if ($category === 2) { |
|||
$apps = \OC_App::getAppstoreApps('approved'); |
|||
$apps = array_filter($apps, function($app) { |
|||
return isset($app['internalclass']) && $app['internalclass'] === 'recommendedapp'; |
|||
}); |
|||
} else { |
|||
$apps = \OC_App::getAppstoreApps('approved', $category); |
|||
} |
|||
if (!$apps) { |
|||
$apps = array(); |
|||
} |
|||
usort($apps, function ($a, $b) { |
|||
$a = (int)$a['score']; |
|||
$b = (int)$b['score']; |
|||
if ($a === $b) { |
|||
return 0; |
|||
} |
|||
return ($a > $b) ? -1 : 1; |
|||
}); |
|||
break; |
|||
} |
|||
|
|||
// fix groups to be an array
|
|||
$apps = array_map(function($app){ |
|||
$groups = array(); |
|||
if (is_string($app['groups'])) { |
|||
$groups = json_decode($app['groups']); |
|||
} |
|||
$app['groups'] = $groups; |
|||
$app['canUnInstall'] = !$app['active'] && $app['removable']; |
|||
return $app; |
|||
}, $apps); |
|||
|
|||
OCP\JSON::success(array("apps" => $apps)); |
@ -1,68 +0,0 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2012 Thomas Tanghus <thomas@tanghus.net> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
OC_JSON::checkAdminUser(); |
|||
|
|||
$l = \OC::$server->getL10N('settings'); |
|||
|
|||
if(OC_Config::getValue('appstoreenabled', true)==false) { |
|||
OCP\JSON::success(array('type' => 'external', 'data' => array())); |
|||
} |
|||
|
|||
$enabledApps=OC_App::getEnabledApps(); |
|||
|
|||
if(is_null($enabledApps)) { |
|||
OCP\JSON::error(array('data' => array('message' => $l->t('Unable to load list from App Store')))); |
|||
} |
|||
|
|||
$apps=array(); |
|||
|
|||
// apps from external repo via OCS
|
|||
$categoryNames=OC_OCSClient::getCategories(); |
|||
if(is_array($categoryNames)) { |
|||
$categories=array_keys($categoryNames); |
|||
$page=0; |
|||
$filter='approved'; |
|||
$externalApps=OC_OCSClient::getApplications($categories, $page, $filter); |
|||
foreach($externalApps as $app) { |
|||
// show only external apps that aren't enabled yet
|
|||
$local=false; |
|||
foreach($enabledApps as $a) { |
|||
if($a === $app['name']) { |
|||
$local=true; |
|||
} |
|||
} |
|||
|
|||
if(!$local) { |
|||
if($app['preview'] === '') { |
|||
$pre=OC_Helper::imagePath('settings', 'trans.png'); |
|||
} else { |
|||
$pre=$app['preview']; |
|||
} |
|||
if($app['label'] === 'recommended') { |
|||
$label='3rd Party'; |
|||
} else { |
|||
$label='Recommended'; |
|||
} |
|||
$apps[]=array( |
|||
'name'=>$app['name'], |
|||
'id'=>$app['id'], |
|||
'active'=>false, |
|||
'description'=>$app['description'], |
|||
'author'=>$app['personid'], |
|||
'license'=>$app['license'], |
|||
'preview'=>$pre, |
|||
'internal'=>false, |
|||
'internallabel'=>$label, |
|||
'update'=>false, |
|||
); |
|||
} |
|||
} |
|||
} |
|||
|
|||
OCP\JSON::success(array('type' => 'external', 'data' => $apps)); |
@ -1,26 +0,0 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2013 Lukas Reschke <lukas@statuscode.ch> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
// Check if admin user
|
|||
OC_Util::checkAdminUser(); |
|||
|
|||
// Set the content type to JS
|
|||
header('Content-type: application/javascript'); |
|||
|
|||
// Disallow caching
|
|||
header("Cache-Control: no-cache, must-revalidate"); |
|||
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); |
|||
|
|||
$combinedApps = OC_App::listAllApps(); |
|||
|
|||
foreach($combinedApps as $app) { |
|||
echo("appData_".$app['id']."=".json_encode($app)); |
|||
echo("\n"); |
|||
} |
|||
|
|||
echo ("var appid =".json_encode($_GET['appid']).";"); |
@ -1,65 +1,82 @@ |
|||
<?php /** |
|||
* Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com> |
|||
* This file is licensed under the Affero General Public License version 3 or later. |
|||
* See the COPYING-README file. |
|||
*/?>
|
|||
<script type="text/javascript" |
|||
src="<?php print_unescaped(OC_Helper::linkToRoute('apps_custom'));?>?appid=<?php p($_['appid']); ?>"></script> |
|||
<script type="text/javascript" src="<?php print_unescaped(OC_Helper::linkTo('settings/js', 'apps.js'));?>"></script> |
|||
<script id="categories-template" type="text/x-handlebars-template"> |
|||
{{#each this}}
|
|||
<li id="app-category-{{id}}" data-category-id="{{id}}"><a>{{displayName}}</a></li> |
|||
{{/each}} |
|||
|
|||
<div id="app-navigation"> |
|||
<ul class="applist"> |
|||
<?php if(OC_Config::getValue('appstoreenabled', true) === true): ?>
|
|||
<li> |
|||
<a class="app-external" target="_blank" href="http://owncloud.org/dev"><?php p($l->t('Add your App'));?> …</a>
|
|||
</li> |
|||
<?php endif; ?>
|
|||
<?php if(OC_Config::getValue('appstoreenabled', true) === true): ?>
|
|||
<li> |
|||
<a class="app-external" target="_blank" href="http://apps.owncloud.com/?xsortmode=high"><?php p($l->t('More apps'));?> …</a>
|
|||
</li> |
|||
<li> |
|||
<a class="app-external" target="_blank" href="http://owncloud.org/dev"><?php p($l->t('Add your app'));?> …</a>
|
|||
</li> |
|||
<?php endif; ?>
|
|||
</script> |
|||
|
|||
<?php foreach($_['apps'] as $app):?>
|
|||
<li <?php if($app['active']) print_unescaped('class="active"')?> data-id="<?php p($app['id']) ?>" data-groups="<?php p($app['groups']) ?>"
|
|||
<?php if ( isset( $app['ocs_id'] ) ) { print_unescaped("data-id-ocs=\"{".OC_Util::sanitizeHTML($app['ocs_id'])."}\""); } ?>
|
|||
data-type="<?php p($app['internal'] ? 'internal' : 'external') ?>" data-installed="1"> |
|||
<a class="app<?php if(!$app['internal']) p(' externalapp') ?>" |
|||
href="?appid=<?php p($app['id']) ?>"><?php p($app['name']) ?></a>
|
|||
<?php if(!$app['internal']) |
|||
print_unescaped('<small class="'.OC_Util::sanitizeHTML($app['internalclass']).' list">'.OC_Util::sanitizeHTML($app['internallabel']).'</small>') ?>
|
|||
</li> |
|||
<?php endforeach;?>
|
|||
|
|||
<?php if(OC_Config::getValue('appstoreenabled', true) === true): ?>
|
|||
<li> |
|||
<a class="app-external" target="_blank" href="http://apps.owncloud.com"><?php p($l->t('More Apps'));?> …</a>
|
|||
</li> |
|||
<?php endif; ?>
|
|||
</ul> |
|||
</div> |
|||
<div id="app-content"> |
|||
<div class="appinfo"> |
|||
<h3><strong><span class="name"><?php p($l->t('Select an App'));?></span></strong><span
|
|||
class="version"></span><small class="externalapp" style="visibility:hidden;"></small></h3> |
|||
<span class="score"></span> |
|||
<p class="description"></p> |
|||
<p class="documentation hidden"> |
|||
<script id="app-template" type="text/x-handlebars"> |
|||
<div class="section" id="app-{{id}}"> |
|||
{{#if preview}}
|
|||
<div class="app-image{{#if previewAsIcon}} app-image-icon{{/if}} hidden"> |
|||
</div> |
|||
{{/if}} |
|||
<h2 class="app-name"><a href="{{detailpage}}" target="_blank">{{name}}</a></h2> |
|||
<div class="app-version"> {{version}}</div> |
|||
<div class="app-author"><?php p($l->t('by')); ?> {{author}}
|
|||
{{#if license}}
|
|||
({{license}}-<?php p($l->t('licensed')); ?>)
|
|||
{{/if}} |
|||
</div> |
|||
{{#if score}}
|
|||
<div class="app-score">{{{score}}}</div> |
|||
{{/if}} |
|||
{{#if internalclass}}
|
|||
<div class="{{internalclass}} icon-checkmark">{{internallabel}}</div> |
|||
{{/if}} |
|||
<div class="app-detailpage"></div> |
|||
<div class="app-description"><pre>{{description}}</pre></div> |
|||
<!--<div class="app-changed">{{changed}}</div>--> |
|||
{{#if documentation}}
|
|||
<p class="documentation"> |
|||
<?php p($l->t("Documentation:"));?>
|
|||
<span class="userDocumentation appslink"></span> |
|||
<span class="adminDocumentation appslink"></span> |
|||
{{#if documentation.user}}
|
|||
<span class="userDocumentation appslink"> |
|||
<a id='userDocumentation' href='{{documentation.user}}' target="_blank"><?php p($l->t("User Documentation"));?></a>
|
|||
</span> |
|||
{{/if}} |
|||
|
|||
{{#if documentation.admin}}
|
|||
<span class="adminDocumentation appslink"> |
|||
<a id='adminDocumentation' href='{{documentation.admin}}' target="_blank"><?php p($l->t("Admin Documentation"));?></a>
|
|||
</span> |
|||
{{/if}} |
|||
</p> |
|||
<img src="" class="preview hidden" /> |
|||
<p class="appslink appstore hidden"><a id="appstorelink" href="#" target="_blank"><?php |
|||
p($l->t('See application page at apps.owncloud.com'));?></a></p>
|
|||
<p class="appslink website hidden"><a id="websitelink" href="#" target="_blank"><?php |
|||
p($l->t('See application website'));?></a></p>
|
|||
<p class="license hidden"><?php |
|||
print_unescaped($l->t('<span class="licence"></span>-licensed by <span class="author"></span>'));?></p>
|
|||
<input class="enable hidden" type="submit" /> |
|||
<input class="update hidden" type="submit" value="<?php p($l->t('Update')); ?>" /> |
|||
<a class="uninstall hidden" href="#"><?php p($l->t('Uninstall')); ?></a>
|
|||
<br /> |
|||
<input class="hidden" type="checkbox" id="groups_enable"/> |
|||
<label class="hidden" for="groups_enable"><?php p($l->t('Enable only for specific groups')); ?></label>
|
|||
{{/if}} |
|||
{{#if update}}
|
|||
<input class="update" type="submit" value="<?php p($l->t('Update to %s', array('{{update}}'))); ?>" data-appid="{{id}}" /> |
|||
{{/if}} |
|||
{{#if active}}
|
|||
<input class="enable" type="submit" data-appid="{{id}}" data-active="true" value="<?php p($l->t("Disable"));?>"/> |
|||
<input type="checkbox" class="groups-enable" id="groups_enable-{{id}}"/> |
|||
<label for="groups_enable-{{id}}"><?php p($l->t('Enable only for specific groups')); ?></label>
|
|||
<br /> |
|||
<input type="hidden" id="group_select" title="<?php p($l->t('All')); ?>" style="width: 200px"> |
|||
{{else}} |
|||
<input class="enable" type="submit" data-appid="{{id}}" data-active="false" value="<?php p($l->t("Enable"));?>"/> |
|||
{{/if}} |
|||
{{#if canUnInstall}}
|
|||
<input class="uninstall" type="submit" value="<?php p($l->t('Uninstall App')); ?>" data-appid="{{id}}" /> |
|||
{{/if}} |
|||
|
|||
<div class="warning hidden"></div> |
|||
|
|||
</div> |
|||
</script> |
|||
|
|||
<div id="app-navigation" class="icon-loading"> |
|||
<ul id="apps-categories"> |
|||
|
|||
</ul> |
|||
</div> |
|||
<div id="app-content"> |
|||
<div id="apps-list" class="icon-loading"></div> |
|||
</div> |