ελληνικά στο keycloak

Αυτό το commit περιλαμβάνεται σε:
infl00p 2023-04-21 17:31:54 +03:00
γονέας 892f6e6481
commit 8b13b36012
59 αρχεία άλλαξαν με 8031 προσθήκες και 462 διαγραφές

109
logos/hellug_flat_1.svg Κανονικό αρχείο

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg12299"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="hellug_flat_1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview12301"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.1893044"
inkscape:cx="25.224829"
inkscape:cy="439.75285"
inkscape:window-width="2492"
inkscape:window-height="1411"
inkscape:window-x="68"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs12296" />
<g
inkscape:label="Στρώση 1"
inkscape:groupmode="layer"
id="layer1">
<path
d="m 76.126162,28.699642 c -2.65e-4,-2.67e-4 -5.21e-4,-5.67e-4 -5.21e-4,-8.28e-4 -0.14196,-0.160228 -0.209584,-0.457294 -0.282306,-0.773775 -0.07254,-0.316247 -0.153681,-0.657292 -0.413321,-0.878337 -5.23e-4,-5.65e-4 -0.0012,-8.27e-4 -0.0016,-0.0015 -0.05147,-0.0449 -0.104331,-0.08278 -0.157434,-0.114372 -0.05331,-0.03158 -0.107367,-0.05731 -0.161375,-0.07766 0.360924,-1.070375 0.219408,-2.136282 -0.145025,-3.099316 -0.446965,-1.182183 -1.227525,-2.212068 -1.823763,-2.916607 -0.667348,-0.841844 -1.319982,-1.640883 -1.307094,-2.821196 0.01986,-1.801347 0.198099,-5.141824 -2.971858,-5.146269 -0.128885,-2.3e-4 -0.263384,0.0051 -0.403497,0.01637 -3.542342,0.285137 -2.602723,4.027708 -2.655353,5.280767 -0.0648,0.916462 -0.250519,1.638778 -0.880906,2.534655 -0.740328,0.880441 -1.783102,2.305658 -2.276887,3.789354 -0.232976,0.700096 -0.343848,1.413733 -0.24163,2.089268 -0.03204,0.02877 -0.06246,0.05896 -0.09169,0.08984 -0.217303,0.232273 -0.378,0.51341 -0.556941,0.702643 -0.167246,0.167034 -0.405368,0.230425 -0.667347,0.3242 -0.26198,0.09405 -0.549457,0.232506 -0.723954,0.567465 0,0 0,2.66e-4 -2.3e-4,2.66e-4 -2.3e-4,5.66e-4 -4.78e-4,0.0011 -8.95e-4,0.0016 -0.0821,0.153212 -0.108766,0.318587 -0.108766,0.486301 0,0.155081 0.02292,0.312294 0.04609,0.463611 0.04819,0.314842 0.09707,0.612587 0.03228,0.814243 -0.207246,0.566765 -0.233912,0.958564 -0.08794,1.243026 0.146429,0.284902 0.447004,0.410513 0.786876,0.481619 0.679744,0.14175 1.600183,0.106667 2.32554,0.491212 l 0.06246,-0.117656 -0.06175,0.117893 c 0.776583,0.406069 1.563926,0.550179 2.191975,0.40677 0.455658,-0.103834 0.825238,-0.375169 1.015173,-0.79249 0.491212,-0.0021 1.030377,-0.21052 1.893976,-0.257981 0.585945,-0.04727 1.317851,0.208159 2.159696,0.161375 0.02199,0.09123 0.05382,0.179175 0.09731,0.262682 4.77e-4,8.26e-4 8.95e-4,0.0016 0.0015,0.0021 0.326282,0.65261 0.932578,0.95108 1.578896,0.900088 0.646975,-0.05102 1.334906,-0.432501 1.891168,-1.094235 l -0.101983,-0.08561 0.102706,0.08467 c 0.530041,-0.642788 1.409778,-0.909211 1.993385,-1.261011 0.291687,-0.175901 0.528171,-0.396223 0.54665,-0.716235 0.0182,-0.319756 -0.169631,-0.678107 -0.60143,-1.157391 z"
id="path3"
style="fill:#027776;fill-opacity:1;stroke-width:0.023391"
fill="#000000" />
<path
fill="#D6A312"
d="m 76.461356,29.841828 c -0.01117,0.197395 -0.154147,0.344081 -0.418232,0.503141 -0.527726,0.318352 -1.463134,0.595302 -2.060284,1.318788 -0.518839,0.617288 -1.151334,0.956226 -1.708251,1.000202 -0.556918,0.04398 -1.037394,-0.18713 -1.320893,-0.755766 l -4.8e-4,-0.0011 -6.95e-4,-0.0015 c -0.175925,-0.334494 -0.102706,-0.861962 0.04536,-1.418646 0.148067,-0.556474 0.360925,-1.128151 0.389462,-1.592464 v -0.0015 c 0.02992,-0.595045 0.06339,-1.114817 0.163246,-1.515975 0.10011,-0.401158 0.257537,-0.672493 0.536381,-0.825236 0.0131,-0.007 0.02593,-0.01379 0.03881,-0.02012 0.03161,0.515305 0.286798,1.041158 0.737754,1.154815 0.493575,0.130078 1.204899,-0.293323 1.505239,-0.638809 0.06009,-0.0025 0.118569,-0.0054 0.175433,-0.0068 0.263618,-0.0063 0.484429,0.0089 0.710387,0.20631 l 6.96e-4,8.27e-4 6.96e-4,5.65e-4 c 0.173562,0.147127 0.256133,0.425016 0.32771,0.736115 0.0716,0.311359 0.128649,0.650272 0.343404,0.891901 l 2.64e-4,2.66e-4 2.65e-4,5.66e-4 c 0.412643,0.457762 0.54527,0.766992 0.533809,0.964647 z"
id="path5"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.023391" />
<path
d="m 66.432436,31.300961 -2.29e-4,0.0015 v 0.0016 c -0.04772,0.625476 -0.400456,0.966051 -0.942193,1.089789 -0.541268,0.123739 -1.275514,5.66e-4 -2.00859,-0.382913 -2.35e-4,0 -4.79e-4,-2.63e-4 -6.96e-4,-2.63e-4 -0.81122,-0.429726 -1.776101,-0.386918 -2.395262,-0.516271 -0.309465,-0.06456 -0.511563,-0.161867 -0.604192,-0.342447 -0.09263,-0.180812 -0.09474,-0.495889 0.102221,-1.033183 l 8.96e-4,-0.0025 6.95e-4,-0.0021 c 0.09754,-0.300575 0.02526,-0.629453 -0.02199,-0.938215 -0.04725,-0.308506 -0.07041,-0.589432 0.03509,-0.785004 l 8.96e-4,-0.0019 c 0.134967,-0.26012 0.332856,-0.353218 0.578462,-0.441169 0.245839,-0.08818 0.537058,-0.157395 0.766993,-0.388057 l 0.0015,-0.0011 0.0011,-0.0011 c 0.212624,-0.224319 0.372385,-0.505715 0.55928,-0.705241 0.157656,-0.168416 0.315546,-0.279991 0.553434,-0.281628 0.0028,2.67e-4 0.0054,2.67e-4 0.0081,0 0.04163,2.67e-4 0.08585,0.0037 0.132627,0.01106 0.315781,0.04773 0.591092,0.268505 0.856347,0.628261 l 0.765825,1.395744 2.34e-4,8.28e-4 4.78e-4,5.65e-4 c 0.203736,0.425482 0.634131,0.893538 0.998798,1.370949 0.364667,0.477201 0.646763,0.956485 0.610039,1.323257 z"
id="path7"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.023391"
fill="#D6A312" />
<path
d="M 70.25173,18.289446 C 70.19022,18.168983 70.064601,18.054367 69.850807,17.96665 l -4.78e-4,-2.3e-4 -6.97e-4,-2.29e-4 c -0.444666,-0.190412 -0.637643,-0.203979 -0.885822,-0.365378 -0.403963,-0.25964 -0.737754,-0.350632 -1.015172,-0.349461 -0.145258,4.77e-4 -0.275079,0.02619 -0.391333,0.06643 -0.338001,0.116254 -0.562321,0.35882 -0.702901,0.491915 l -2.29e-4,2.3e-4 c 0,2.29e-4 -2.3e-4,2.29e-4 -2.3e-4,4.78e-4 -0.0276,0.02619 -0.06316,0.05006 -0.149236,0.113213 -0.08677,0.06339 -0.216835,0.158826 -0.403963,0.299172 -0.166311,0.124675 -0.220344,0.287008 -0.162803,0.477177 0.05731,0.19017 0.240695,0.409578 0.576123,0.59928 l 4.78e-4,4.78e-4 6.96e-4,2.3e-4 c 0.20818,0.122336 0.350398,0.287243 0.513667,0.418466 0.08164,0.0655 0.16748,0.123973 0.270869,0.168181 0.103383,0.04422 0.224086,0.07415 0.375193,0.08305 0.354609,0.02058 0.615653,-0.08585 0.846055,-0.217772 0.230869,-0.131691 0.426396,-0.292855 0.65074,-0.365601 l 4.78e-4,-2.31e-4 4.79e-4,-2.3e-4 c 0.459845,-0.143621 0.787811,-0.432968 0.890475,-0.707814 0.05146,-0.137538 0.04982,-0.268061 -0.01147,-0.388525 z"
id="path9"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.023391"
fill="#D6A312" />
<path
d="m 69.084984,18.968255 c -0.365854,0.1907 -0.793192,0.421975 -1.247914,0.421975 -0.454489,0 -0.813542,-0.210052 -1.071778,-0.414723 -0.129119,-0.102221 -0.233912,-0.203971 -0.312974,-0.277886 -0.137172,-0.108281 -0.12074,-0.260148 -0.06438,-0.255666 0.09447,0.01179 0.108755,0.136177 0.16824,0.191808 0.08046,0.07533 0.18128,0.17286 0.303381,0.2697 0.244204,0.193443 0.569807,0.381742 0.977513,0.381742 0.407005,0 0.882119,-0.238944 1.172127,-0.401626 0.164303,-0.09217 0.373374,-0.257373 0.543996,-0.382617 0.130539,-0.09582 0.125779,-0.211203 0.233562,-0.198641 0.107784,0.01256 0.02806,0.127712 -0.122891,0.259443 -0.150941,0.131732 -0.38708,0.306516 -0.57888,0.406491 z"
id="path11"
inkscape:connector-curvature="0"
style="fill:#3e8aea;fill-opacity:1;stroke-width:0.023391"
sodipodi:nodetypes="sscccccssszzs" />
<path
d="m 74.687144,26.775259 c -0.05076,-0.0019 -0.10081,-0.0016 -0.149469,-5.66e-4 -0.0045,2.64e-4 -0.0089,2.64e-4 -0.01358,2.64e-4 0.125609,-0.396711 -0.152277,-0.689334 -0.892837,-1.024293 -0.76793,-0.337744 -1.379839,-0.304318 -1.483228,0.38104 -0.0065,0.03578 -0.01193,0.07252 -0.01591,0.109465 -0.05754,0.02013 -0.115083,0.04538 -0.173093,0.07697 -0.360457,0.197417 -0.55741,0.555302 -0.66688,0.994609 -0.10924,0.438815 -0.140814,0.969093 -0.170755,1.565332 0,2.63e-4 0,2.63e-4 0,5.65e-4 -0.01848,0.299662 -0.141983,0.705238 -0.266892,1.134722 -1.257971,0.897494 -3.003881,1.286252 -4.486407,0.274354 -0.100347,-0.158823 -0.215665,-0.316247 -0.334258,-0.471562 -0.07579,-0.09915 -0.153679,-0.197657 -0.23087,-0.29494 0.152043,2.66e-4 0.281395,-0.02482 0.385953,-0.07203 0.130055,-0.05918 0.22128,-0.153682 0.266658,-0.275339 0.09029,-0.243032 -4.78e-4,-0.585943 -0.289816,-0.977746 -0.289347,-0.391566 -0.77939,-0.833424 -1.499367,-1.275047 0,0 0,0 0,-2.64e-4 -0.529106,-0.329112 -0.824769,-0.732399 -0.963244,-1.170255 -0.138709,-0.438114 -0.119293,-0.911785 -0.01239,-1.379371 0.204906,-0.897516 0.731204,-1.770471 1.0671,-2.318289 0.09029,-0.06643 0.03228,0.123505 -0.340106,0.814945 -0.333557,0.632049 -0.957396,2.090694 -0.103383,3.229394 0.02292,-0.81029 0.216367,-1.636697 0.541269,-2.40977 0.473202,-1.072482 1.462878,-2.932774 1.541472,-4.415298 0.0407,0.02948 0.179877,0.123504 0.241863,0.158824 2.31e-4,2.3e-4 2.31e-4,2.3e-4 4.79e-4,2.3e-4 0.181514,0.106893 0.317885,0.26315 0.494488,0.405134 0.17707,0.142217 0.398115,0.265021 0.73214,0.284434 0.03204,0.0019 0.06339,0.0028 0.09403,0.0028 0.344315,0 0.612845,-0.112276 0.836464,-0.240227 0.243056,-0.138943 0.437179,-0.292856 0.62129,-0.352736 2.3e-4,-2.31e-4 4.78e-4,-2.31e-4 6.96e-4,-2.31e-4 0.388993,-0.121633 0.697989,-0.336831 0.873866,-0.587584 0.302214,1.191073 1.00488,2.911486 1.456585,3.750992 0.240227,0.445366 0.717849,1.391768 0.924182,2.532083 0.130756,-0.0041 0.274845,0.01498 0.428992,0.05448 0.539645,-1.399021 -0.457516,-2.905639 -0.913641,-3.325275 -0.184088,-0.178708 -0.192977,-0.258706 -0.101521,-0.254963 0.494488,0.437647 1.144034,1.317385 1.380308,2.31057 0.107807,0.452827 0.130756,0.929093 0.01518,1.399019 0.05637,0.02339 0.113915,0.04889 0.172158,0.07651 0.86617,0.421718 1.186396,0.78849 1.032481,1.28906 z"
id="path13"
fill="#ffffff"
style="stroke-width:0.023391" />
<path
d="m 70.292431,16.917327 c 0.0019,0.236016 -0.03883,0.436945 -0.128418,0.642085 -0.05099,0.116955 -0.10968,0.215198 -0.180088,0.300341 -0.02388,-0.01146 -0.04865,-0.02246 -0.0744,-0.03299 -0.08912,-0.03813 -0.167948,-0.06947 -0.238566,-0.09614 -0.07066,-0.02667 -0.125795,-0.04488 -0.182659,-0.06454 0.04119,-0.04982 0.122337,-0.10854 0.152535,-0.182216 0.04585,-0.111114 0.06831,-0.219643 0.07252,-0.348996 0,-0.0051 0.0016,-0.0096 0.0016,-0.01568 0.0026,-0.123973 -0.0138,-0.229934 -0.05006,-0.338468 -0.0379,-0.113914 -0.08611,-0.195784 -0.155784,-0.263852 -0.06995,-0.06807 -0.139646,-0.09895 -0.223385,-0.101746 -0.004,-2.35e-4 -0.0077,-2.35e-4 -0.01169,-2.35e-4 -0.07859,2.35e-4 -0.146896,0.02737 -0.21756,0.08631 -0.07416,0.06199 -0.129119,0.141282 -0.174942,0.251687 -0.0456,0.110402 -0.06807,0.219877 -0.07254,0.349932 -6.96e-4,0.0051 -6.96e-4,0.0096 -6.96e-4,0.01474 -0.0016,0.07157 0.003,0.137071 0.01404,0.200694 -0.160931,-0.08023 -0.366821,-0.138732 -0.509039,-0.17265 -0.0081,-0.06151 -0.01286,-0.124908 -0.01427,-0.191339 v -0.01801 c -0.0026,-0.235315 0.03603,-0.43718 0.126548,-0.642086 0.09052,-0.205138 0.202566,-0.352503 0.360199,-0.472499 0.15789,-0.119762 0.312996,-0.174731 0.496593,-0.176602 h 0.0087 c 0.179644,0 0.333322,0.05286 0.491212,0.167246 0.16023,0.116487 0.27578,0.26198 0.368877,0.465483 0.09123,0.198355 0.135201,0.392267 0.139669,0.622201 -2.5e-5,0.0061 -2.5e-5,0.01117 0.0016,0.01731 z"
id="path15"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke-width:0.023391"
sodipodi:nodetypes="ccccccccccccccccccccccccscccc" />
<path
d="m 67.577195,17.152407 c -0.02362,0.0068 -0.04655,0.01404 -0.06923,0.02176 -0.12865,0.04444 -0.230795,0.09349 -0.329506,0.158751 0.0096,-0.06831 0.01095,-0.13754 0.0035,-0.214965 -6.96e-4,-0.0042 -6.96e-4,-0.0077 -6.96e-4,-0.01193 -0.01027,-0.102683 -0.03205,-0.188766 -0.06831,-0.275781 -0.03858,-0.09053 -0.08187,-0.154382 -0.13871,-0.203502 -0.05146,-0.04444 -0.10011,-0.06502 -0.153912,-0.06456 -0.0054,0 -0.01095,2.34e-4 -0.01661,6.96e-4 -0.06034,0.0051 -0.110402,0.03461 -0.15789,0.09239 -0.04725,0.05754 -0.07836,0.129119 -0.10081,0.224086 -0.02246,0.09474 -0.0283,0.187831 -0.01895,0.294728 0,0.0042 8.95e-4,0.0077 8.95e-4,0.01193 0.01027,0.10362 0.03111,0.189701 0.06807,0.276716 0.0379,0.08959 0.08187,0.153445 0.138709,0.202567 0.0096,0.0081 0.01895,0.01568 0.0283,0.02222 -0.05895,0.04561 -0.09855,0.07797 -0.147202,0.11352 -0.03111,0.0227 -0.06807,0.04982 -0.111113,0.08164 -0.0938,-0.08794 -0.167012,-0.198355 -0.231102,-0.344082 -0.07579,-0.172158 -0.116255,-0.344551 -0.128418,-0.548053 v -0.0016 c -0.01117,-0.203502 0.0087,-0.378468 0.06456,-0.559514 0.05613,-0.181047 0.13099,-0.312037 0.239759,-0.419636 0.108529,-0.107829 0.218004,-0.1621 0.349929,-0.168883 0.01027,-4.79e-4 0.02035,-6.97e-4 0.03041,-6.97e-4 0.119528,2.35e-4 0.226192,0.03999 0.336597,0.128183 0.119763,0.09567 0.210286,0.218005 0.286072,0.390398 0.07603,0.172392 0.116489,0.344784 0.127716,0.548286 v 0.0016 c 0.0054,0.08538 0.0046,0.165842 -0.0021,0.243736 z"
id="path17"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke-width:0.023391"
sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
<path
sodipodi:nodetypes="aaaaaaa"
inkscape:connector-curvature="0"
id="path28396-7"
d="m 68.17733,17.639168 c 0.01513,0.04856 0.09341,0.04051 0.138622,0.06381 0.03968,0.02044 0.0716,0.06523 0.116215,0.06653 0.04258,0.0012 0.108856,-0.01475 0.114392,-0.05699 0.0073,-0.0558 -0.07417,-0.09126 -0.126606,-0.111711 -0.06749,-0.02631 -0.153926,-0.03966 -0.217222,-0.0045 -0.0145,0.008 -0.03034,0.02697 -0.0254,0.04283 z"
style="fill:#202020;fill-opacity:1;stroke:none;stroke-width:0.023391" />
<path
style="fill:#202020;fill-opacity:1;stroke:none;stroke-width:0.023391"
d="m 67.715022,17.639168 c -0.01513,0.04856 -0.09341,0.04051 -0.138623,0.06381 -0.03968,0.02044 -0.0716,0.06523 -0.116213,0.06653 -0.04258,0.0012 -0.108857,-0.01475 -0.114392,-0.05699 -0.0073,-0.0558 0.07417,-0.09126 0.126604,-0.111711 0.06747,-0.02631 0.153927,-0.03966 0.217224,-0.0045 0.0145,0.008 0.03034,0.02697 0.0254,0.04283 z"
id="path5461"
inkscape:connector-curvature="0"
sodipodi:nodetypes="aaaaaaa" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.4px;line-height:125%;font-family:Unifont;-inkscape-font-specification:'Unifont, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="76.248558"
y="31.750183"
id="text13378"><tspan
sodipodi:role="line"
id="tspan13376"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.4px;font-family:Unifont;-inkscape-font-specification:'Unifont, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#808080;stroke-width:0.264583px"
x="76.248558"
y="31.750183">hellug</tspan></text>
</g>
</svg>

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 15 KiB

@ -0,0 +1,378 @@
# encoding: UTF-8
role_manage-identity-providers=Διαχείριση παρόχων ταυτότητας
doRemove=Αφαίρεση
doAdd=Προσθήκη
doSignOut=Έξοδος
doLink=Σύνδεση
personalInfoSidebarTitle=Προσωπικά στοιχεία
accountSecuritySidebarTitle=Ασφάλεια λογαριασμού
signingInSidebarTitle=Σε είσοδο
deviceActivitySidebarTitle=Δραστηριότητα συσκευών
role_manage-account-links=Διαχείριση συνδέσεων λογαριασμού
linkedAccountsSidebarTitle=Συνδεδεμένοι λογαριασμοί
editAccountHtmlTitle=Επεξεργασία Λογαριασμού
personalInfoHtmlTitle=Προσωπικά Στοιχεία
changePasswordHtmlTitle=Αλλαγή Κωδικού
requiredFields=Απαιτούμενα πεδία
sessionsHtmlTitle=Συνεδρίες
accountManagementTitle=Διαχείριση Λογαριασμού Keycloak
authenticatorTitle=Εφαρμογή Ταυτοποίησης
applicationsHtmlTitle=Εφαρμογές
linkedAccountsHtmlTitle=Συνδεδεμένοι λογαριασμοί
accountManagementWelcomeMessage=Καλώς Ήλθατε στη Διαχείριση Λογαριασμού στο Keycloak
personalInfoIntroMessage=Διαχειριστείτε τα βασικά στοιχεία
accountSecurityIntroMessage=Ελέγξτε το κωδικό και τη πρόσβαση σας
passwordLastUpdateMessage=Ο κωδικός πρόσβασης σας ενημερώθηκε στις
updatePasswordMessageTitle=Βεβαιωθείτε ότι επιλέξατε ένα ισχυρό κωδικό
updatePasswordMessage=Ένας ισχυρός κωδικός πρόσβασης είναι συνδυασμός ψηφίων, γραμμάτων και συμβόλων. Είναι δύσκολο να βρεθεί, δεν είναι υπαρκτή λέξη και το χρησιμοποιείται μόνο σε αυτό το λογαριασμό.
email=Email
firstName=Όνομα
lastName=Επώνυμο
familyName=Επώνυμο
password=Κωδικός Πρόσβασης
passwordConfirm=Επιβεβαίωση
currentPassword=Τρέχων Κωδικός Πρόσβασης
passwordNew=Νέος Κωδικός Πρόσβασης
username=Όνομα χρήστη
address=Διεύθυνση
street=Οδός
locality=Πόλη ή Δήμος
postal_code=Ταχυδρομικός Κώδικας
country=Χώρα
emailVerified=Επιβεβαιωμένο Email
website=Ιστοσελίδα
phoneNumber=Τηλέφωνο
phoneNumberVerified=Επιβεβαιωμένο τηλέφωνο
gender=Φύλο
birthday=Ημερομηνία γέννησης
zoneinfo=Ζώνη ώρας
gssDelegationCredential=GSS διαπιστευτήρια εξουσιοδότησης
profileScopeConsentText=Προφίλ χρήστη
emailScopeConsentText=Διεύθυνση email
addressScopeConsentText=Διεύθυνση
phoneScopeConsentText=Τηλέφωνο
samlRoleListScopeConsentText=Οι Ρόλοι Μου
rolesScopeConsentText=Ρόλοι χρήστη
role_admin=Διαχειριστής
role_view-identity-providers=Εμφάνιση παρόχων ταυτότητας
role_manage-realm=Διαχείριση τομέα
role_manage-users=Διαχείριση χρηστών
role_manage-applications=Διαχείριση εφαρμογών
role_realm-admin=Διαχειριστή Τόπου
role_create-realm=Δημιουργία τομέα
role_view-realm=Εμφάνιση τομέα
role_view-users=Εμφάνιση χρηστών
role_view-applications=Εμφάνιση εφαρμογών
role_view-clients=Εμφάνιση πελατών
role_view-events=Εμφάνιση συμβάντων
role_manage-clients=Διαχείριση πελατών
role_manage-events=Διαχείριση συμβάντων
role_view-profile=Εμφάνιση προφίλ
role_manage-account=Διαχείριση λογαριασμού
role_read-token=Ανάγνωση διακριτικού
role_offline-access=Πρόσβαση εκτός-σύνδεσης
client_account=Λογαριασμός
client_account-console=Κονσόλα Λογαριασμού
client_admin-cli=CLI Διαχείρισης
client_realm-management=Διαχείριση Τομέα
client_broker=Μεσολαβητής
inResource=σε
totpAppFreeOTPName=FreeOTP
totpAppGoogleName=Google Authenticator
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
invalidEmailMessage=Μη έγκυρη διεύθυνση email.
accountDisabledMessage=Ο λογαριασμός έχει απενεργοποιηθεί, επικοινωνήστε με το διαχειριστή.
consentDenied=Άρνηση Συναίνεσης.
locale_ca=Català
locale_cs=Čeština
locale_de=Deutsch
locale_es=Español
locale_fr=Français
locale_hu=Magyar
locale_it=Italiano
locale_ja=日本語
locale_lt=Lietuvių
locale_nl=Nederlands
locale_no=Norsk
locale_pl=Polski
locale_pt-BR=Português (Brasil)
locale_ru=Русский
locale_sk=Slovenčina
locale_sv=Svenska
locale_tr=Türkçe
locale_zh-CN=中文简体
locale_fi=Suomi
doSave=Αποθήκευση
doCancel=Ακύρωση
doLogIn=Είσοδος
updatePasswordTitle=Ενημέρωση Κωδικού Πρόσβασης
locale_ar=عربي
authenticatorCode=Κωδικός μίας-χρήσης
locale_en=English
givenName=Όνομα
region=Νομός ή Περιφέρεια
fullName=Ονοματεπώνυμο
offlineAccessScopeConsentText=Πρόσβαση εκτός-σύνδεσης
accountSecurityTitle=Ασφάλεια Λογαριασμού
invalidPasswordGenericMessage=Μη έγκυρος κωδικός πρόσβασης: ο νέος κωδικός δε συμφωνεί με τις πολιτικές κωδικών.
invalidPasswordHistoryMessage=Μη έγκυρος κωδικός πρόσβασης: δε πρέπει να είναι το ίδιο με τους τελευταίους {0} κωδικούς.
invalidPasswordRegexPatternMessage=Μη έγκυρος κωδικός πρόσβασης: δε ταιριάζει με τα μοτίβα regex.
invalidPasswordNotEmailMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να μην είναι ίδιο με το email.
invalidPasswordNotUsernameMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να μην είναι ίδιο με το όνομα χρήστη.
invalidPasswordMinSpecialCharsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} ειδικούς χαρακτήρες.
invalidPasswordMinUpperCaseCharsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} κεφαλαίους χαρακτήρες.
invalidPasswordMinLowerCaseCharsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} πεζούς χαρακτήρες.
invalidPasswordMinDigitsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} ψηφία.
invalidPasswordMaxLengthMessage=Μη έγκυρος κωδικός πρόσβασης: μέγιστο μήκος {0}.
invalidPasswordMinLengthMessage=Μη έγκυρος κωδικός πρόσβασης: ελάχιστο μήκος {0}.
accountPasswordUpdatedMessage=Ο κωδικός πρόσβασης ενημερώθηκε.
accountUpdatedMessage=Ο λογαριασμός σας έχει ενημερωθεί.
emailExistsMessage=Το email υπάρχει ήδη.
usernameExistsMessage=Το όνομα χρήστη υπάρχει ήδη.
invalidTotpMessage=Μη έγκυρος κωδικός μίας χρήσης.
invalidPasswordConfirmMessage=Η επιβεβαίωση του κωδικού πρόσβασης δε ταιριάζει.
invalidPasswordBlacklistedMessage=Μη έγκυρος κωδικός πρόσβασης: ο κωδικός πρόσβασης είναι απαγορευμένος.
invalidPasswordExistingMessage=Μη έγκυρος υπάρχοντας κωδικός πρόσβασης.
error-invalid-date=Μη έγκυρη ημερομηνία.
error-invalid-uri-fragment=Μη έγκυρο κομμάτι URL.
error-invalid-uri-scheme=Μη έγκυρο σχήμα URL.
error-invalid-uri=Μη έγκυρο URL.
error-pattern-no-match=Μη έγκυρη τιμή.
error-invalid-number=Μη έγκυρος αριθμός.
error-invalid-email=Μη έγκυρη διεύθυνση email.
error-empty=Παρακαλώ ορίστε τιμή.
error-invalid-blank=Παρακαλώ ορίστε τιμή.
error-invalid-value=Μη έγκυρη τιμή.
notMatchPasswordMessage=Οι κωδικοί πρόσβασης δε ταιριάζουν.
missingTotpDeviceNameMessage=Παρακαλώ ορίστε όνομα συσκευής.
missingTotpMessage=Παρακαλώ εισάγετε ένα κωδικό από εφαρμογή ταυτοποίησης.
missingPasswordMessage=Παρακαλώ ορίστε κωδικό πρόσβασης.
missingUsernameMessage=Παρακαλώ ορίστε όνομα χρήστη.
missingEmailMessage=Παρακαλώ ορίστε email.
missingLastNameMessage=Παρακαλώ ορίστε επώνυμο.
missingFirstNameMessage=Παρακαλώ ορίστε ένα όνομα.
readOnlyUsernameMessage=Δε μπορείτε να ενημερώσετε το όνομα χρήστη σας καθώς είναι μόνο-για-ανάγνωση.
access-denied-when-idp-auth=Δεν επιτρέπεται η πρόσβαση κατά τη ταυτοποίηση με {0}
accountUnusable=Κάθε μεταγενέστερη χρήση αυτής της εφαρμογής δεν θα είναι δυνατή με αυτό το λογαριασμό
loggingOutImmediately=Άμεση αποσύνδεση σας
errasingData=Διαγραφή όλων των δεδομένων σας
deletingImplies=Η διαγραφή του λογαριασμού σας συνεπάγεται:
irreversibleAction=Αυτή η ενέργεια είναι μη αναστρέψιμη
openshift.scope.list-projects=Εμφάνιση λίστας έργων
openshift.scope.user_full=Πλήρης Πρόσβαση
openshift.scope.user_check-access=Πληροφορίες πρόσβασης χρήστη
# Openshift messages
openshift.scope.user_info=Πληροφορίες χρήστη
clientNotFoundMessage=Ο πελάτης δε βρέθηκε.
identityProviderAlreadyLinkedMessage=Η ομόσπονδη ταυτότητα που επιστρέφει το {0} είναι ήδη συνδεδεμένη με ένα άλλο χρήστη.
role_view-groups=Εμφάνιση ομάδων
role_uma_authorization=Απόκτηση δικαιωμάτων
client_security-admin-console=κονσόλα διαχειριστή ασφαλείας
allFieldsRequired=Απαιτούνται όλα τα πεδία
backTo=Πίσω στο{0}
date=Ημερομηνία
event=Γεγονός
ip=IP
client=Πελάτης
clients=Πελάτες
details=Λεπτομέρειες
started=Ξεκίνησε
expires=Λήγει
applications=Εφαρμογές
account=Λογαριασμός
federatedIdentity=Ομόσπονδη Ταυτότητα
device-activity=Δραστηριότητα συσκευών
sessions=Συνεδρίες
log=Λογότυπο
application=Εφαρμογή
availableRoles=Διαθέσιμοι Ρόλοι
grantedPersonalInfo=Εκχωρημένες Προσωπικές Πληροφορίες
additionalGrants=Επιπλέον Χορηγήσεις
action=Δράση
doLogOutAllSessions=Έξοδος από όλες τις συνεδρίες
accountLogHtmlTitle=Αρχείο Λογαριασμού
noAccessMessage=Δεν επιτρέπεται η πρόσβαση
deviceActivityHtmlTitle=Δραστηριότητα Συσκευών
federatedIdentitiesHtmlTitle=Ομόσπονδες Ταυτότητες
applicationsIntroMessage=Διαχειριστείτε το δικαίωμα της εφαρμογής σας να έχει πρόσβαση στο λογαριασμό σας
resourceIntroMessage=Μοιράστε τους πόρους σας μεταξύ των μελών της ομάδας
personalSubTitle=Τα Προσωπικά σας Στοιχεία
personalSubMessage=Διαχειριστείτε τα βασικά στοιχεία σας.
role_view-consent=Εμφάνιση εγκρίσεων
role_manage-consent=Διαχείριση εγκρίσεων
backToApplication=&laquo; Πίσω στην εφαρμογή
lastAccess=Τελευταία Πρόσβαση
authenticator=Ταυτοποιητής
grantedPermissions=Εκχωρημένα Δικαιώματα
fullAccess=Πλήρης Πρόσβαση
configureAuthenticators=Ρυθμισμένες Εφαρμογές Ταυτοποίησης
mobile=Κινητό
totpStep2=Ανοίξτε την εφαρμογή και σαρώστε την εικόνα του κωδικού:
totpStep3DeviceName=Ορίστε ένα Όνομα Συσκευής για να σας βοηθήσει στη διαχείριση των συσκευών OTP.
totpManualStep2=Ξεκινήστε την εφαρμογή και εισάγετε το κλειδί:
totpUnableToScan=Αδυναμία σάρωσης;
totpScanBarcode=Σάρωση της εικόνας του κωδικού;
totpStep1=Εγκαταστήστε μία από τις παρακάτω εφαρμογές στο κινητό σας:
totpStep3=Δώστε το κωδικό μίας χρήσης όπως εμφανίζεται στην εφαρμογή σας και επιλέξτε το Αποθήκευση για να ολοκληρωθεί η αρχική ρύθμιση.
totp.totp=Χρονικός
totp.hotp=Σειριακός
totpType=Τύπος
totpAlgorithm=Αλγόριθμος
totpDigits=Ψηφία
totpInterval=Διάστημα
totpCounter=Μετρητής
totpDeviceName=Όνομα Συσκευής
offlineToken=Διακριτικό Εκτός Σύνδεσης
revoke=Ανάκληση Χορήγησης
totpManualStep3=Χρησιμοποιείστε τις παρακάτω τιμές ρυθμίσεων αν η εφαρμογή το υποστηρίζει:
invalidUserMessage=Μη έγκυρος χρήστης
updateReadOnlyAttributesRejectedMessage=Απορρίφθηκε η ενημέρωση του μόνο-ανάγνωσης χαρακτηριστικού
readOnlyUserMessage=Δε μπορείτε να ενημερώσετε το λογαριασμό σας καθώς είναι μόνο-για-ανάγνωση.
successTotpMessage=Ενεργοποιήθηκε η εφαρμογή ταυτοποίησης στο κινητό.
successGrantRevokedMessage=Η χορήγηση ανακλήθηκε επιτυχώς.
invalidFederatedIdentityActionMessage=Μη έγκυρη ή απούσα δράση.
identityProviderNotFoundMessage=Δε βρέθηκε ο ορισμένος πάροχος ταυτότητας.
federatedIdentityLinkNotActiveMessage=Αυτή η ταυτότητα δεν είναι πια ενεργή.
identityProviderRedirectErrorMessage=Αποτυχία στην ανακατεύθυνση προς το πάροχο ταυτότητας.
identityProviderRemovedMessage=Ο πάροχος ταυτότητας αφαιρέθηκε επιτυχώς.
# Authorization
myResources=Οι Πόροι Μου
myResourcesSub=Οι πόροι μου
doDeny=Άρνηση
doRevoke=Ανάκληση
doApprove=Έγκριση
doRemoveSharing=Αφαίρεση Διαμοιρασμού
doRemoveRequest=Αφαίρεση Αίτησης
peopleAccessResource=Άτομα με πρόσβαση σε αυτό το πόρο
resourceNoPermissionsGrantingAccess=Καμιά άδεια που χορηγεί πρόσβαση σε αυτό το πόρο
anyAction=Κάθε δράση
name=Όνομα
scopes=Πεδία
resource=Πόρος
user=Χρήστης
shareWithOthers=Διαμοιρασμός με άλλους
needMyApproval=Χρειάζεται την έγκριση μου
requestsWaitingApproval=Οι αιτήσεις που αναμένουν έγκριση
icon=Εικονίδιο
requestor=Αιτών
owner=Ιδιοκτήτης
permissionRequestion=Αίτηση Άδειας
permission=Άδεια
shares=διαμοιρασμός(οί)
notBeingShared=Αυτός ο πόρος δε διαμοιράζεται.
notHaveAnyResource=Δεν έχετε κανένα πόρο
havePermissionRequestsWaitingForApproval=Έχετε {0} αιτήση(εις) για άδεια σε αναμονή προς έγκριση.
clickHereForDetails=Πατήστε εδώ για λεπτομέρειες.
# Applications
applicationName=Όνομα
applicationInUse=Μόνο εφαρμογή σε-χρήση
clearAllFilter=Καθαρισμός φίλτρων
activeFilters=Ενεργά φίλτρα
filterByName=Φιλτράρισμα Ανά Όνομα ...
internalApps=Εσωτερικές εφαρμογές
thirdpartyApps=Εφαρμογές Τρίτων
appResults=Αποτελέσματα
authenticatorSubTitle=Ορισμός Ταυτοποίησης Δύο-Παραγόντων
authenticatorMobileTitle=Εφαρμογή Ταυτοποίησης στο Κινητό
authenticatorMobileMessage=Χρησιμοποιείστε μία Εφαρμογή Ταυτοποίησης στο κινητό για να έχετε τους κωδικούς Επιβεβαίωσης σαν ταυτοποίηση δύο-παραγόντων.
authenticatorMobileFinishSetUpMessage=Η εφαρμογή ταυτοποίησης έχει δεθεί με το κινητό σας.
authenticatorActionSetup=Ρύθμιση
authenticatorSMSTitle=Κωδικός SMS
authenticatorSMSFinishSetUpMessage=Μηνύματα κειμένου στέλνονται στο
authenticatorDefaultStatus=Προεπιλογή
# Linked account
authorizedProvider=Πιστοποιημένος Πάροχος
identityProvider=Πάροχος Ταυτότητας
identityProviderMessage=Για να συνδέσετε το λογαριασμό σας με παρόχους ταυτότητας που έχετε ρυθμίσει
socialLogin=Κοινωνική Είσοδος
userDefined=Ορισμένη από το Χρήστη
removeAccess=Αφαίρεση Πρόσβασης
#Authenticator
authenticatorStatusMessage=Η ταυτοποίηση δύο-παραγόντων αυτή τη στιγμή είναι
authenticatorFinishSetUpTitle=Η Ταυτοποίηση Δύο Παραγόντων Σας
smscodeIntroMessage=Ορίστε ένα αριθμό τηλεφώνου και ένας κωδικός επιβεβαίωσης θα σταλεί στο κινητό σας.
mobileSetupStep2=Ανοίξτε την εφαρμογή και σαρώστε το κωδικό QR:
scanBarCode=Θέλετε να σαρώσετε το κωδικό QR;
enterBarCode=Εισάγετε το κωδικό μίας-φοράς
doCopy=Αντιγραφή
doFinish=Ολοκλήρωση
#Authenticator - SMS Code setup
authenticatorSMSCodeSetupTitle=Ρύθμιση Κωδικού SMS
chooseYourCountry=Επιλέξτε τη χώρα σας
enterYourPhoneNumber=Εισάγετε το τηλεφωνικό αριθμό σας
sendVerficationCode=Αποστολή Κωδικού Επιβεβαίωσης
enterYourVerficationCode=Εισάγετε το κωδικό επιβεβαίωσης
realmName=Τομέας
doDownload=Λήψη
doPrint=Εκτύπωση
generateNewBackupCodes=Παραγωγή Νέων Κωδικών Ανάκτησης Ταυτοποίησης
backtoAuthenticatorPage=Πίσω στη Σελίδα Εφαρμογής Ταυτοποίησης
#Resources
resources=Πόροι
share=Διαμοιρασμός
sharedwith=Μοιράζεται με
permissionRequests=Αιτήσεις Αδειών
approve=Έγκριση
approveAll=Έγκριση όλων
people=άτομα
perPage=ανά σελίδα
currentPage=Τρέχουσα Σελίδα
sharetheResource=Διαμοιρασμός πόρου
group=Ομάδα
addPeople=Προσθήκη ατόμων στα οποία θα διαμοιράσετε το πόρο σας
myPermissions=Οι Άδειες Μου
waitingforApproval=Αναμονή για έγκριση
anyPermission=Κάθε Άδεια
error-invalid-length-too-short=Το χαρακτηριστικό {0} πρέπει να έχει ελάχιστο μήκος {1}.
error-number-out-of-range-too-small=Το χαρακτηριστικό {0} πρέπει να έχει ελάχιστη τιμή {1}.
error-user-attribute-required=Παρακαλώ ορίστε το χαρακτηριστικό {0}.
error-user-attribute-read-only=Το πεδίο {0} είναι μόνο για ανάγνωση.
error-person-name-invalid-character=Το όνομα περιέχει ένα μη έγκυρο χαρακτήρα.
readOnlyPasswordMessage=Δε μπορείτε να ενημερώσετε το κωδικό πρόσβασης σας καθώς είναι μόνο-για-ανάγνωση.
successTotpRemovedMessage=Αφαιρέθηκε η εφαρμογή ταυτοποίησης στο κινητό.
authenticatorFinishSetUpMessage=Κάθε φορά που συνδέστε στο λογαριασμό σας στο Keycloak, θα πρέπει να παρέχετε ένα κωδικό ταυτοποίησης δύο-παραγόντων.
authenticatorSubMessage=Για να βελτιώσετε τη ασφάλεια του λογαριασμού σας, ενεργοποιήστε τουλάχιστον μια από τις διαθέσιμες μεθόδους ταυτοποίησης δύο-παραγόντων.
authenticatorSMSMessage=Το Keycloak θα στείλει ένα κωδικό Επιβεβαίωσης στο κινητό σαν ταυτοποίηση δύο-παραγόντων.
authenticatorChangePhone=Αλλαγή Τηλεφωνικού Αριθμού
#Authenticator - Mobile Authenticator setup
authenticatorMobileSetupTitle=Ρύθμιση Εφαρμογής Ταυτοποίησης
mobileSetupStep1=Εγκαταστήστε μία εφαρμογή ταυτοποίησης στο κινητό σας. Υποστηρίζονται οι παρακάτω εφαρμογές.
mobileSetupStep3=Εισάγετε το κωδικό μίας-φοράς που παρήχθει από την εφαρμογή και πατήστε Αποθήκευση για ολοκλήρωση.
#Authenticator - backup Code setup
authenticatorBackupCodesSetupTitle=Ρύθμιση Κωδικών Ανάκτησης Ταυτοποίησης
sharedwithMe=Μοιράζονται με Εμένα
accessPermissions=Άδειες Πρόσβασης
selectPermission=Επιλογή Άδειας
addTeam=Προσθήκη ομάδας στην οποία θα διαμοιράσετε το πόρο σας
error-invalid-length=Το χαρακτηριστικό {0} πρέπει να έχει μήκος μεταξύ {1} και {2}.
error-number-out-of-range=Το χαρακτηριστικό {0} πρέπει να είναι ένας αριθμός μεταξύ {1} και {2}.
error-number-out-of-range-too-big=Το χαρακτηριστικό {0} πρέπει να έχει μέγιστη τιμή {2}.
error-username-invalid-character=Το όνομα χρήστη περιέχει ένα μη έγκυρο χαρακτήρα.
missingIdentityProviderMessage=Δεν ορίστηκε πάροχος ταυτότητας.
federatedIdentityRemovingLastProviderMessage=Δε μπορείτε να αφαιρέσετε τη τελευταία ομόσπονδη ταυτότητα καθώς δεν έχετε κωδικό πρόσβασης.
staleCodeAccountMessage=Η σελίδα έληξε. Παρακαλώ δοκιμάστε άλλη μια φορά.
accountTemporarilyDisabledMessage=Ο λογαριασμός έχει απενεργοποιηθεί προσωρινά, επικοινωνήστε με το διαχειριστή ή δοκιμάστε αργότερα.
resourceManagedPolicies=Άδειες που χορηγούν πρόσβαση σε αυτό το πόρο
description=Περιγραφή
peopleSharingThisResource=Άτομα που διαμοιράζουν αυτό το πόρο
resourcesSharedWithMe=Πόροι μου διαμοιράζονται με εμένα
noResourcesSharedWithYou=Δε διαμοιράζεται πόρος με εσάς
resourceIsNotBeingShared=Αυτός ο πόρος δεν διαμοιράζεται
applicationType=Τύπος Εφαρμογής
allApps=Όλες οι εφαρμογές
authorizedProviderMessage=Πιστοποιημένοι Πάροχοι που είναι συνδεδεμένοι με το λογαριασμό σας
removeAccessMessage=Πρέπει να χορηγήσετε ξανά πρόσβαση, αν θέλετε να χρησιμοποιήσετε αυτό το λογαριασμό εφαρμογής.
error-invalid-length-too-long=Το χαρακτηριστικό {0} πρέπει να έχει μέγιστο μήκος {2}.

@ -1 +1,2 @@
accountManagementTitle=Hellug Auth Account Management
# encoding: UTF-8
locale_el=Ελληνικά

@ -1,279 +0,0 @@
html {
height: 100%;
}
body {
background-color: #F9F9F9;
margin: 0;
padding: 0;
height: 100%;
}
header .navbar {
margin-bottom: 0;
min-height: inherit;
}
.header .container {
position: relative;
}
.navbar-title {
background-image: url('../img/brand.svg');
height: 25px;
background-repeat: no-repeat;
width: 172px;
margin: 3px 10px 5px;
text-indent: -99999px;
position: relative;
top: 8px;
}
.navbar-pf .navbar-utility {
right: 20px;
top: -34px;
font-size: 12px;
}
.navbar-pf .navbar-utility > li > a {
color: #fff !important;
padding-bottom: 12px;
padding-top: 11px;
border-left: medium none;
}
.container {
height: 100%;
}
.content-area {
background-color: #fff;
border-color: #CECECE;
border-style: solid;
border-width: 0 1px;
height: 100%;
padding: 0 30px;
}
.margin-bottom {
margin-bottom: 10px;
}
/* Sidebar */
.bs-sidebar {
background-color: #f9f9f9;
padding-top: 44px;
padding-right: 0;
padding-left: 0;
z-index: 20;
}
.bs-sidebar ul {
list-style: none;
padding-left: 12px;
}
.bs-sidebar ul li {
margin-bottom: 0.5em;
margin-left: -1em;
}
.bs-sidebar ul li a {
font-size: 14px;
padding-left: 25px;
color: #4d5258;
line-height: 28px;
display: block;
border-width: 1px 0 1px 1px;
border-style: solid;
border-color: #f9f9f9;
}
.bs-sidebar ul li a:hover,
.bs-sidebar ul li a:focus {
text-decoration: none;
color: #777777;
border-right: 2px solid #aaa;
}
.bs-sidebar ul li.active a {
background-color: #c7e5f0;
border-color: #56bae0;
font-weight: bold;
background-image: url(../img/icon-sidebar-active.png);
background-repeat: no-repeat;
background-position: right center;
}
.bs-sidebar ul li.active a:hover {
border-right: none;
}
.content-area h2 {
font-family: "Open Sans", sans-serif;
font-weight: 100;
font-size: 24px;
margin-bottom: 25px;
margin-top: 25px;
}
.subtitle {
text-align: right;
margin-top: 30px;
color: #909090;
}
.required {
color: #CB2915;
}
.alert {
margin-top: 30px;
margin-bottom: 0;
}
.feedback-aligner .alert {
background-position: 1.27273em center;
background-repeat: no-repeat;
border-radius: 2px;
border-width: 1px;
color: #4D5258;
display: inline-block;
font-size: 1.1em;
line-height: 1.4em;
margin: 0;
padding: 0.909091em 3.63636em;
position: relative;
text-align: left;
}
.alert.alert-success {
background-color: #E4F1E1;
border-color: #4B9E39;
}
.alert.alert-error {
background-color: #F8E7E7;
border-color: #B91415;
}
.alert.alert-warning {
background-color: #FEF1E9;
border-color: #F17528;
}
.alert.alert-info {
background-color: #E4F3FA;
border-color: #5994B2;
}
.form-horizontal {
border-top: 1px solid #E9E8E8;
padding-top: 23px;
}
.form-horizontal .control-label {
color: #909090;
line-height: 1.4em;
padding-top: 5px;
position: relative;
text-align: right;
width: 100%;
}
.form-group {
position: relative;
}
.control-label + .required {
position: absolute;
right: -2px;
top: 0;
}
#kc-form-buttons {
text-align: right;
margin-top: 10px;
}
#kc-form-buttons .btn-primary {
float: right;
margin-left: 8px;
}
/* Authenticator page */
ol {
padding-left: 40px;
}
ol li {
font-size: 13px;
margin-bottom: 10px;
position: relative;
}
ol li img {
margin-top: 15px;
margin-bottom: 5px;
border: 1px solid #eee;
}
hr + .form-horizontal {
border: none;
padding-top: 0;
}
.kc-dropdown{
position: relative;
}
.kc-dropdown > a{
display:block;
padding: 11px 10px 12px;
line-height: 12px;
font-size: 12px;
color: #fff !important;
text-decoration: none;
}
.kc-dropdown > a::after{
content: "\2c5";
margin-left: 4px;
}
.kc-dropdown:hover > a{
background-color: rgba(0,0,0,0.2);
}
.kc-dropdown ul li a{
padding: 1px 11px;
font-size: 12px;
color: #000 !important;
border: 1px solid #fff;
text-decoration: none;
display:block;
line-height: 20px;
}
.kc-dropdown ul li a:hover{
color: #4d5258;
background-color: #d4edfa;
border-color: #b3d3e7;
}
.kc-dropdown ul{
position: absolute;
z-index: 2000;
list-style:none;
display:none;
padding: 5px 0px;
margin: 0px;
background-color: #fff !important;
border: 1px solid #b6b6b6;
border-radius: 1px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
min-width: 100px;
}
.kc-dropdown:hover ul{
display:block;
}
#kc-totp-secret-key {
border: 1px solid #eee;
font-size: 16px;
padding: 10px;
margin: 50px 0;
}

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 202 B

@ -1,3 +1,2 @@
parent=keycloak
styles=css/account.css
locales=en,el

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 223.4 12.5"
style="enable-background:new 0 0 223.4 12.5;"
xml:space="preserve"
sodipodi:docname="brand.svg"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs67" /><sodipodi:namedview
id="namedview65"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="6.2891676"
inkscape:cx="153.67694"
inkscape:cy="6.2806404"
inkscape:window-width="2490"
inkscape:window-height="1411"
inkscape:window-x="70"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g28" />
<style
type="text/css"
id="style2">
.st0{fill:#FFFFFF;}
</style>
<g
id="g62">
<g
id="g28">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Bitstream Vera Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="6.5633998"
y="2.5796833"
id="text387"><tspan
sodipodi:role="line"
id="tspan385"
x="6.5633998"
y="2.5796833" /></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;line-height:108.8%;font-family:Sans;-inkscape-font-specification:'Bitstream Vera Sans Bold';letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:289.295;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="7.1732883"
y="-17.182526"
id="text391"
transform="translate(-5.6460431,26.663326)"><tspan
x="7.1732883"
y="-17.182526"
id="tspan1088"><tspan
style="font-weight:normal;font-family:'Noto Mono';-inkscape-font-specification:'Noto Mono'"
id="tspan1086">Hellug Authentication Service</tspan></tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Bitstream Vera Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="7.2640285"
y="-16.759977"
id="text1072"><tspan
sodipodi:role="line"
id="tspan1070"
x="7.2640285"
y="-16.759977" /></text></g>
</g>
</svg>

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 3 KiB

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 2,5 KiB

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 627 B

Πριν Μετά
Πριν Μετά

Το diff αρχείων καταστέλλεται επειδή μία ή περισσότερες γραμμές είναι πολύ μεγάλες

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2013 Steve
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

@ -0,0 +1,122 @@
Angular Treeview
================
Pure [AngularJS](https://www.angularjs.org) based tree menu directive.
[![ScreenShot](https://github.com/eu81273/angular.treeview/raw/master/img/preview.png)](https://jsfiddle.net/eu81273/8LWUc/)
## Installation
Copy the script and css into your project and add a script and link tag to your page.
```html
<script type="text/javascript" src="/angular.treeview.js"></script>
<link rel="stylesheet" type="text/css" href="css/angular.treeview.css">
```
Add a dependency to your application module.
```javascript
angular.module('myApp', ['angularTreeview']);
```
Add a tree to your application. See [Usage](#usage).
## Usage
Attributes of angular treeview are below.
- angular-treeview: the treeview directive.
- tree-id : each tree's unique id.
- tree-model : the tree model on $scope.
- node-id : each node's id.
- node-label : each node's label.
- node-children: each node's children.
Here is a simple example.
```html
<div
data-angular-treeview="true"
data-tree-id="abc"
data-tree-model="treedata"
data-node-id="id"
data-node-label="label"
data-node-children="children" >
</div>
```
Example model:
```javascript
$scope.treedata =
[
{ "label" : "User", "id" : "role1", "children" : [
{ "label" : "subUser1", "id" : "role11", "children" : [] },
{ "label" : "subUser2", "id" : "role12", "children" : [
{ "label" : "subUser2-1", "id" : "role121", "children" : [
{ "label" : "subUser2-1-1", "id" : "role1211", "children" : [] },
{ "label" : "subUser2-1-2", "id" : "role1212", "children" : [] }
]}
]}
]},
{ "label" : "Admin", "id" : "role2", "children" : [] },
{ "label" : "Guest", "id" : "role3", "children" : [] }
];
```
## Selection
If tree node is selected, then that selected tree node is saved to $scope."TREE ID".currentNode. By using $watch, the controller can recognize the tree selection.
```javascript
$scope.$watch( 'abc.currentNode', function( newObj, oldObj ) {
if( $scope.abc && angular.isObject($scope.abc.currentNode) ) {
console.log( 'Node Selected!!' );
console.log( $scope.abc.currentNode );
}
}, false);
```
## Examples
#### Basic example
[![ScreenShot](https://github.com/eu81273/angular.treeview/raw/master/img/jsfiddle01.png)](https://jsfiddle.net/eu81273/8LWUc/)
[jsFiddle - http://jsfiddle.net/eu81273/8LWUc/](https://jsfiddle.net/eu81273/8LWUc/)
#### Multiple treeview example
[![ScreenShot](https://github.com/eu81273/angular.treeview/raw/master/img/jsfiddle02.png)](https://jsfiddle.net/eu81273/b9Pnw/)
[jsFiddle - http://jsfiddle.net/eu81273/b9Pnw/](https://jsfiddle.net/eu81273/b9Pnw/)
## Browser Compatibility
Same with AngularJS. Safari, Chrome, Firefox, Opera, IE8, IE9 and mobile browsers (Android, Chrome Mobile, iOS Safari).
## Changelogs
#### version 0.1.6
- Fixed the bug that 'null' string appears before each 'div' generated. (Thanks to Iaac)
#### version 0.1.5
- support multiple treeview. (Thanks to Axel Pesme)
#### version 0.1.4
- prevented memory leaks.
#### version 0.1.3
- removed unnecessary codes.
#### version 0.1.2
- removed some jQuery dependency. (Issue #2)
## License
The MIT License.
Copyright ⓒ 2013 AHN JAE-HA.
See [LICENSE](https://github.com/eu81273/angular.treeview/blob/master/LICENSE)

@ -0,0 +1,95 @@
/*
@license Angular Treeview version 0.1.6
2013 AHN JAE-HA http://github.com/eu81273/angular.treeview
License: MIT
[TREE attribute]
angular-treeview: the treeview directive
tree-id : each tree's unique id.
tree-model : the tree model on $scope.
node-id : each node's id
node-label : each node's label
node-children: each node's children
<div
data-angular-treeview="true"
data-tree-id="tree"
data-tree-model="roleList"
data-node-id="roleId"
data-node-label="roleName"
data-node-children="children" >
</div>
*/
(function ( angular ) {
'use strict';
angular.module( 'angularTreeview', [] ).directive( 'treeModel', ['$compile', function( $compile ) {
return {
restrict: 'A',
link: function ( scope, element, attrs ) {
//tree id
var treeId = attrs.treeId;
//tree model
var treeModel = attrs.treeModel;
//node id
var nodeId = attrs.nodeId || 'id';
//node label
var nodeLabel = attrs.nodeLabel || 'label';
//children
var nodeChildren = attrs.nodeChildren || 'children';
//tree template
var template =
'<ul>' +
'<li data-ng-repeat="node in ' + treeModel + '">' +
'<i ng-class="getGroupClass(node)" data-ng-click="' + treeId + '.selectNodeHead(node)"></i>' +
'<span data-ng-class="getSelectedClass(node)" ng-dblclick="edit(node)" data-ng-click="' + treeId + '.selectNodeLabel(node)">{{node.' + nodeLabel + '}}</span>' +
'<div data-ng-hide="node.collapsed" data-tree-id="' + treeId + '" data-tree-model="node.' + nodeChildren + '" data-node-id=' + nodeId + ' data-node-label=' + nodeLabel + ' data-node-children=' + nodeChildren + '></div>' +
'</li>' +
'</ul>';
//check tree id, tree model
if( treeId && treeModel ) {
//root node
if( attrs.angularTreeview ) {
//create tree object if not exists
scope[treeId] = scope[treeId] || {};
//if node head clicks,
scope[treeId].selectNodeHead = scope[treeId].selectNodeHead || function( selectedNode ){
//Collapse or Expand
selectedNode.collapsed = !selectedNode.collapsed;
scope[treeId].selectNodeLabel(selectedNode);
};
//if node label clicks,
scope[treeId].selectNodeLabel = scope[treeId].selectNodeLabel || function( selectedNode ){
//remove highlight from previous node
if( scope[treeId].currentNode && scope[treeId].currentNode.selected ) {
scope[treeId].currentNode.selected = undefined;
}
//set highlight to selected node
selectedNode.selected = 'selected';
//set currentNode
scope[treeId].currentNode = selectedNode;
};
}
//Rendering template.
element.html('').append( $compile( template )( scope ) );
}
}
};
}]);
})( angular );

@ -0,0 +1,9 @@
/*
@license Angular Treeview version 0.1.6
2013 AHN JAE-HA http://github.com/eu81273/angular.treeview
License: MIT
*/
(function(f){f.module("angularTreeview",[]).directive("treeModel",function($compile){return{restrict:"A",link:function(b,h,c){var a=c.treeId,g=c.treeModel,e=c.nodeLabel||"label",d=c.nodeChildren||"children",e='<ul><li data-ng-repeat="node in '+g+'"><i class="collapsed" data-ng-show="node.'+d+'.length && node.collapsed" data-ng-click="'+a+'.selectNodeHead(node)"></i><i class="expanded" data-ng-show="node.'+d+'.length && !node.collapsed" data-ng-click="'+a+'.selectNodeHead(node)"></i><i class="normal" data-ng-hide="node.'+
d+'.length"></i> <span data-ng-class="node.selected" data-ng-click="'+a+'.selectNodeLabel(node)">{{node.'+e+'}}</span><div data-ng-hide="node.collapsed" data-tree-id="'+a+'" data-tree-model="node.'+d+'" data-node-id='+(c.nodeId||"id")+" data-node-label="+e+" data-node-children="+d+"></div></li></ul>";a&&g&&(c.angularTreeview&&(b[a]=b[a]||{},b[a].selectNodeHead=b[a].selectNodeHead||function(a){a.collapsed=!a.collapsed},b[a].selectNodeLabel=b[a].selectNodeLabel||function(c){b[a].currentNode&&b[a].currentNode.selected&&
(b[a].currentNode.selected=void 0);c.selected="selected";b[a].currentNode=c}),h.html('').append($compile(e)(b)))}}})})(angular);

@ -0,0 +1,99 @@
div[angular-treeview] {
/* prevent user selection */
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
/* default */
font-family: Tahoma;
font-size:13px;
color: #555;
text-decoration: none;
}
div[tree-model] ul {
margin: 0;
padding: 0;
list-style: none;
border: none;
overflow: hidden;
}
div[tree-model] li {
position: relative;
padding: 0 0 0 20px;
line-height: 20px;
}
div[tree-model] li .expanded {
padding: 1px 10px;
background-image: url("../img/folder.png");
background-repeat: no-repeat;
}
div[tree-model] li .collapsed {
padding: 1px 10px;
background-image: url("../img/folder-closed.png");
background-repeat: no-repeat;
}
div[tree-model] li .normal {
padding: 1px 10px;
background-image: url("../img/file.png");
background-repeat: no-repeat;
}
div[tree-model] li i, div[tree-model] li span {
cursor: pointer;
}
div[tree-model] li .selected {
background-color: #aaddff;
font-weight: bold;
padding: 1px 5px;
}
div[tree-model] li .cut {
font-weight: bold;
color: gray
}
/*
.angular-ui-tree-handle {
cursor: grab;
text-decoration: none;
font-weight: bold;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
min-height: 20px;
line-height: 20px;
}
*/
.angular-ui-tree-handle {
/* background: #f8faff; */
/*
color: #7c9eb2; */
border: 1px solid #dae2ea;
padding: 10px 10px;
cursor: pointer;
}
.expanded-folder {
padding: 1px 10px;
background-image: url("../img/folder.png");
background-repeat: no-repeat;
cursor: pointer;
}
.collapsed-folder {
padding: 1px 10px;
background-image: url("../img/folder-closed.png");
background-repeat: no-repeat;
cursor: pointer;
}

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 263 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 281 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 289 B

Το diff αρχείου καταστέλλεται επειδή είναι πολύ μεγάλο Φόρτωση διαφορών

@ -0,0 +1 @@
{"raw":"v1.4.4","major":1,"minor":4,"patch":4,"prerelease":[],"build":[],"version":"1.4.4","codeName":"pylon-requirement","full":"1.4.4","branch":"v1.4.x","cdn":{"raw":"v1.4.3","major":1,"minor":4,"patch":3,"prerelease":[],"build":[],"version":"1.4.3","docsUrl":"http://code.angularjs.org/1.4.3/docs"}}

@ -0,0 +1,188 @@
/* FileSaver.js
* A saveAs() FileSaver implementation.
* 1.3.2
* 2016-06-16 18:25:19
*
* By Eli Grey, http://eligrey.com
* License: MIT
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
*/
/*global self */
/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
var saveAs = saveAs || (function(view) {
"use strict";
// IE <10 is explicitly unsupported
if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
return;
}
var
doc = view.document
// only get URL when necessary in case Blob.js hasn't overridden it yet
, get_URL = function() {
return view.URL || view.webkitURL || view;
}
, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
, can_use_save_link = "download" in save_link
, click = function(node) {
var event = new MouseEvent("click");
node.dispatchEvent(event);
}
, is_safari = /constructor/i.test(view.HTMLElement) || view.safari
, is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
, throw_outside = function(ex) {
(view.setImmediate || view.setTimeout)(function() {
throw ex;
}, 0);
}
, force_saveable_type = "application/octet-stream"
// the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
, arbitrary_revoke_timeout = 1000 * 40 // in ms
, revoke = function(file) {
var revoker = function() {
if (typeof file === "string") { // file is an object URL
get_URL().revokeObjectURL(file);
} else { // file is a File
file.remove();
}
};
setTimeout(revoker, arbitrary_revoke_timeout);
}
, dispatch = function(filesaver, event_types, event) {
event_types = [].concat(event_types);
var i = event_types.length;
while (i--) {
var listener = filesaver["on" + event_types[i]];
if (typeof listener === "function") {
try {
listener.call(filesaver, event || filesaver);
} catch (ex) {
throw_outside(ex);
}
}
}
}
, auto_bom = function(blob) {
// prepend BOM for UTF-8 XML and text/* types (including HTML)
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
}
return blob;
}
, FileSaver = function(blob, name, no_auto_bom) {
if (!no_auto_bom) {
blob = auto_bom(blob);
}
// First try a.download, then web filesystem, then object URLs
var
filesaver = this
, type = blob.type
, force = type === force_saveable_type
, object_url
, dispatch_all = function() {
dispatch(filesaver, "writestart progress write writeend".split(" "));
}
// on any filesys errors revert to saving with object URLs
, fs_error = function() {
if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
// Safari doesn't allow downloading of blob urls
var reader = new FileReader();
reader.onloadend = function() {
var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
var popup = view.open(url, '_blank');
if(!popup) view.location.href = url;
url=undefined; // release reference before dispatching
filesaver.readyState = filesaver.DONE;
dispatch_all();
};
reader.readAsDataURL(blob);
filesaver.readyState = filesaver.INIT;
return;
}
// don't create more object URLs than needed
if (!object_url) {
object_url = get_URL().createObjectURL(blob);
}
if (force) {
view.location.href = object_url;
} else {
var opened = view.open(object_url, "_blank");
if (!opened) {
// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
view.location.href = object_url;
}
}
filesaver.readyState = filesaver.DONE;
dispatch_all();
revoke(object_url);
}
;
filesaver.readyState = filesaver.INIT;
if (can_use_save_link) {
object_url = get_URL().createObjectURL(blob);
setTimeout(function() {
save_link.href = object_url;
save_link.download = name;
click(save_link);
dispatch_all();
revoke(object_url);
filesaver.readyState = filesaver.DONE;
});
return;
}
fs_error();
}
, FS_proto = FileSaver.prototype
, saveAs = function(blob, name, no_auto_bom) {
return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
}
;
// IE 10+ (native saveAs)
if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
return function(blob, name, no_auto_bom) {
name = name || blob.name || "download";
if (!no_auto_bom) {
blob = auto_bom(blob);
}
return navigator.msSaveOrOpenBlob(blob, name);
};
}
FS_proto.abort = function(){};
FS_proto.readyState = FS_proto.INIT = 0;
FS_proto.WRITING = 1;
FS_proto.DONE = 2;
FS_proto.error =
FS_proto.onwritestart =
FS_proto.onprogress =
FS_proto.onwrite =
FS_proto.onabort =
FS_proto.onerror =
FS_proto.onwriteend =
null;
return saveAs;
}(
typeof self !== "undefined" && self
|| typeof window !== "undefined" && window
|| this.content
));
// `self` is undefined in Firefox for Android content script context
// while `this` is nsIContentFrameMessageManager
// with an attribute `content` that corresponds to the window
if (typeof module !== "undefined" && module.exports) {
module.exports.saveAs = saveAs;
} else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
define("FileSaver.js", function() {
return saveAs;
});
}

72
themes/hellug-keycloak/common/resources/lib/fileupload/FileAPI.min.js εξωτερικό Κανονικό αρχείο

@ -0,0 +1,72 @@
/**!
* FileAPI a set of tools for working with files
*
* @author RubaXa <trash@rubaxa.org>
* @build lib/canvas-to-blob lib/FileAPI.core lib/FileAPI.Image lib/FileAPI.Form lib/FileAPI.XHR lib/FileAPI.Flash
*/
(function(a){var k=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,g;if(g=a.Blob)try{g=Boolean(new Blob)}catch(j){g=!1}var m=g;if(g=m)if(g=a.Uint8Array)try{g=100===(new Blob([new Uint8Array(100)])).size}catch(f){g=!1}var c=g,e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,q=(m||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var l,f,u,g;l=0<=a.split(",")[0].indexOf("base64")?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]);f=new ArrayBuffer(l.length);u=new Uint8Array(f);
for(g=0;g<l.length;g+=1)u[g]=l.charCodeAt(g);a=a.split(",")[0].split(":")[1].split(";")[0];if(m)return new Blob([c?u:f],{type:a});u=new e;u.append(f);return u.getBlob(a)};a.HTMLCanvasElement&&!k.toBlob&&(k.mozGetAsFile?k.toBlob=function(a,c){a(this.mozGetAsFile("blob",c))}:k.toDataURL&&q&&(k.toBlob=function(a,c){a(q(this.toDataURL(c)))}));"function"===typeof define&&define.amd?define(function(){return q}):a.dataURLtoBlob=q})(this);
(function(a,k){function g(b,E,a){if(b)if(l(b))for(var d=0,c=b.length;d<c;d++)d in b&&E.call(a,b[d],d,b);else for(d in b)b.hasOwnProperty(d)&&E.call(a,b[d],d,b)}function j(b,d,a){if(b){var c=h.uid(b);D[c]||(D[c]={});g(d.split(/\s+/),function(d){n?n.event.add(b,d,a):(D[c][d]||(D[c][d]=[]),D[c][d].push(a),b.addEventListener?b.addEventListener(d,a,!1):b.attachEvent?b.attachEvent("on"+d,a):b["on"+d]=a)})}}function m(b,d,a){if(b){var c=h.uid(b),e=D[c]||{};g(d.split(/\s+/),function(d){if(n)n.event.remove(b,
d,a);else{for(var E=e[d]||[],c=E.length;c--;)if(E[c]===a){E.splice(c,1);break}b.addEventListener?b.removeEventListener(d,a,!1):b.detachEvent?b.detachEvent("on"+d,a):b["on"+d]=null}})}}function f(b,d,a){j(b,d,function P(c){m(b,d,P);a(c)})}function c(b,d,a,c,e){b={type:a.type||a,target:b,result:c};h.extend(b,e);d(b)}function e(b,d,a,e){if(h.isFile(b)&&p&&p.prototype["readAs"+a]){var n=new p;j(n,K,function Q(a){var e=a.type;"progress"==e?c(b,d,a,a.target.result,{loaded:a.loaded,total:a.total}):"loadend"==
e?(m(n,K,Q),n=null):c(b,d,a,a.target.result)});try{if(e)n["readAs"+a](e,b);else n["readAs"+a](b)}catch(l){c(b,d,"error",k,{error:l.toString()})}}else c(b,d,"error",k,{error:"filreader_not_support_"+a})}function q(b){var d;b.getAsEntry?d=b.getAsEntry():b.webkitGetAsEntry&&(d=b.webkitGetAsEntry());return d}function t(b,d){if(b)if(b.isFile)b.file(function(b){d(!1,[b])},function(){d("entry_file")});else if(b.isDirectory){var a=[];b.createReader().readEntries(function(b){h.afor(b,function(b,c){t(c,function(c,
e){c||(a=a.concat(e));b?b():d(!1,a)})})},function(){d("directory_reader")})}else t(q(b),d);else d("empty_entry")}function l(b){return"object"==typeof b&&b&&"length"in b}function A(b){b.target||(b.target=a.event&&a.event.srcElement||M);3===b.target.nodeType&&(b.target=event.target.parentNode);return b}var u=1,C=function(){},s=navigator.userAgent,y=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL&&webkitURL,r=a.Blob,v=a.File,p=a.FileReader,w=a.FormData,d=a.XMLHttpRequest,n=a.jQuery,
x=!(!v||!p||!a.Uint8Array&&!w&&!d.prototype.sendAsBinary)&&!(/safari\//i.test(s)&&!/chrome\//i.test(s)&&/windows/i.test(s)),s=x&&"withCredentials"in new d,r=x&&!!r&&!(!r.prototype.webkitSlice&&!r.prototype.mozSlice&&!r.prototype.slice),M=a.document,F=a.dataURLtoBlob,T=/img/i,U=/canvas/i,V=/img|canvas/,L=/input/i,I=/^data:[^,]+,/,G=Math.pow,W=Math.round,z=Number,w=function(b){return W(b*this)},H=new z(1024),N=new z(G(H,2)),J=new z(G(H,3)),G=new z(G(H,4)),D={},O=[],K="abort progress error load loadend",
X="status statusText readyState response responseXML responseText responseBody".split(" "),h={version:"1.2.5",cors:!1,html5:!0,debug:!1,pingUrl:!1,withCredentials:!0,staticPath:"./",flashUrl:0,flashImageUrl:0,accept:{"image/*":"art bm bmp dwg dxf cbr cbz fif fpx gif ico iefs jfif jpe jpeg jpg jps jut mcf nap nif pbm pcx pgm pict pm png pnm qif qtif ras rast rf rp svf tga tif tiff xbm xbm xpm xwd","audio/*":"m4a flac aac rm mpa wav wma ogg mp3 mp2 m3u mod amf dmf dsm far gdm imf it m15 med okt s3m stm sfx ult uni xm sid ac3 dts cue aif aiff wpl ape mac mpc mpp shn wv nsf spc gym adplug adx dsp adp ymf ast afc hps xs",
"video/*":"m4v 3gp nsv ts ty strm rm rmvb m3u ifo mov qt divx xvid bivx vob nrg img iso pva wmv asf asx ogm m2v avi bin dat dvr-ms mpg mpeg mp4 mkv avc vp3 svq3 nuv viv dv fli flv wpl"},chunkSize:0,chunkUploadRetry:0,chunkNetworkDownRetryTimeout:2E3,KB:(H.from=w,H),MB:(N.from=w,N),GB:(J.from=w,J),TB:(G.from=w,G),expando:"fileapi"+(new Date).getTime(),uid:function(b){return b?b[h.expando]=b[h.expando]||h.uid():(++u,h.expando+u)},log:function(){h.debug&&(a.console&&console.log)&&(console.log.apply?
console.log.apply(console,arguments):console.log([].join.call(arguments," ")))},getXHR:function(){var b;if(d)b=new d;else if(a.ActiveXObject)try{b=new ActiveXObject("MSXML2.XMLHttp.3.0")}catch(c){b=new ActiveXObject("Microsoft.XMLHTTP")}return b},isArray:l,support:{dnd:s&&"ondrop"in M.createElement("div"),cors:s,html5:x,chunked:r,dataURI:!0},event:{on:j,off:m,one:f,fix:A},throttle:function(b,d){var c,e;return function(){e=arguments;c||(b.apply(a,e),c=setTimeout(function(){c=0;b.apply(a,e)},d))}},
F:function(){},parseJSON:function(b){return a.JSON&&JSON.parse?JSON.parse(b):(new Function("return ("+b.replace(/([\r\n])/g,"\\$1")+");"))()},trim:function(b){b=String(b);return b.trim?b.trim():b.replace(/^\s+|\s+$/g,"")},defer:function(){var b=[],d,a,c={resolve:function(e,n){c.resolve=C;a=e||!1;for(d=n;n=b.shift();)n(a,d)},then:function(c){a!==k?c(a,d):b.push(c)}};return c},queue:function(b){var d=0,a=0,c=!1,e=!1,n={inc:function(){a++},next:function(){d++;setTimeout(n.check,0)},check:function(){d>=
a&&!c&&n.end()},isFail:function(){return c},fail:function(){!c&&b(c=!0)},end:function(){e||(e=!0,b())}};return n},each:g,afor:function(b,d){var a=0,c=b.length;l(b)&&c--?function B(){d(c!=a&&B,b[a],a++)}():d(!1)},extend:function(b){g(arguments,function(d){g(d,function(d,a){b[a]=d})});return b},isFile:function(b){return x&&b&&b instanceof v},isCanvas:function(b){return b&&U.test(b.nodeName)},getFilesFilter:function(b){return(b="string"==typeof b?b:b.getAttribute&&b.getAttribute("accept")||"")?RegExp("("+
b.replace(/\./g,"\\.").replace(/,/g,"|")+")$","i"):/./},readAsDataURL:function(b,d){h.isCanvas(b)?c(b,d,"load",h.toDataURL(b)):e(b,d,"DataURL")},readAsBinaryString:function(b,d){p&&p.prototype.readAsBinaryString?e(b,d,"BinaryString"):e(b,function(b){if("load"==b.type)try{b.result=h.toBinaryString(b.result)}catch(a){b.type="error",b.message=a.toString()}d(b)},"DataURL")},readAsArrayBuffer:function(b,d){e(b,d,"ArrayBuffer")},readAsText:function(b,d,a){a||(a=d,d="utf-8");e(b,a,"Text",d)},toDataURL:function(b){if("string"==
typeof b)return b;if(b.toDataURL)return b.toDataURL("image/png")},toBinaryString:function(b){return a.atob(h.toDataURL(b).replace(I,""))},readAsImage:function(b,d,a){if(h.isFile(b))if(y){var e=y.createObjectURL(b);e===k?c(b,d,"error"):h.readAsImage(e,d,a)}else h.readAsDataURL(b,function(e){"load"==e.type?h.readAsImage(e.result,d,a):(a||"error"==e.type)&&c(b,d,e,null,{loaded:e.loaded,total:e.total})});else h.isCanvas(b)?c(b,d,"load",b):T.test(b.nodeName)?b.complete?c(b,d,"load",b):f(b,"error abort load",
function B(a){"load"==a.type&&y&&y.revokeObjectURL(b.src);m(b,"error abort load",B);c(b,d,a,b)}):b.iframe?c(b,d,{type:"error"}):(e=new Image,e.src=b.dataURL||b,h.readAsImage(e,d,a))},checkFileObj:function(b){var d={},a=h.accept;"object"==typeof b?d=b:d.name=(b+"").split(/\\|\//g).pop();null==d.type&&(d.type=d.name.split(".").pop());g(a,function(b,a){b=RegExp(b.replace(/\s/g,"|"),"i");b.test(d.type)&&(d.type=a.split("/")[0]+"/"+d.type)});return d},getDropFiles:function(b,d){var a=[],c=(b.originalEvent||
b||"").dataTransfer||{},e=l(c.items)&&c.items[0]&&q(c.items[0]),n=h.queue(function(){d(a)});g((e?c.items:c.files)||[],function(b){n.inc();if(e)t(b,function(b,d){!b&&a.push.apply(a,d);n.next()});else{var d=function(d){d&&a.push(b);n.next()};if(!b.type&&0==b.size%4096&&102400>=b.size)if(p)try{var c=new p;f(c,K,function(b){b="error"!=b.type;d(b);b&&c.abort()});c.readAsDataURL(b)}catch(l){d(!1)}else d(null);else d(!0)}});n.check()},getFiles:function(b,d,a){var c=[];if(a)return h.filterFiles(h.getFiles(b),
d,a),null;b.jquery&&(b.each(function(){c=c.concat(h.getFiles(this))}),b=c,c=[]);"string"==typeof d&&(d=h.getFilesFilter(d));b.originalEvent?b=A(b.originalEvent):b.srcElement&&(b=A(b));b.dataTransfer?b=b.dataTransfer:b.target&&(b=b.target);b.files?c=b.files:!x&&L.test(b&&b.tagName)?h.trim(b.value)&&(c=[h.checkFileObj(b.value)],c[0].blob=b,c[0].iframe=!0):l(b)&&(c=b);return h.filter(c,function(b){return!d||d.test(b.name)})},getInfo:function(b,d){var a={},c=O.concat();h.isFile(b)?function B(){var e=
c.shift();e?e.test(b.type)?e(b,function(b,c){b?d(b):(h.extend(a,c),B())}):B():d(!1,a)}():d("not_support",a)},addInfoReader:function(b,d){d.test=function(d){return b.test(d)};O.push(d)},filter:function(b,d){for(var a=[],c=0,e=b.length,n;c<e;c++)c in b&&(n=b[c],d.call(n,n,c,b)&&a.push(n));return a},filterFiles:function(b,d,a){if(b.length){var c=b.concat(),e,n=[],l=[];(function R(){c.length?(e=c.shift(),h.getInfo(e,function(b,a){(d(e,b?!1:a)?n:l).push(e);R()})):a(n,l)})()}else a([],b)},upload:function(b){b=
h.extend({prepare:h.F,beforeupload:h.F,upload:h.F,fileupload:h.F,fileprogress:h.F,filecomplete:h.F,progress:h.F,complete:h.F,pause:h.F,chunkSize:h.chunkSize,chunkUpoloadRetry:h.chunkUploadRetry},b);b.imageAutoOrientation&&!b.imageTransform&&(b.imageTransform={rotate:"auto"});var d=new h.XHR(b),a=this._getFilesDataArray(b.files),c=0,e=0,n=this,l,f=!1;g(a,function(b){c+=b.size});d.files=[];g(a,function(b){d.files.push(b.file)});d.total=c;d.loaded=0;b.beforeupload(d,b);(l=function S(){var l=a.shift(),
t=l&&l.file,x=!1,u={};g(b,function(b,d){b&&"object"===typeof b&&(b=h.extend({},b));u[d]=b});t&&t.name===h.expando&&(t=null,h.log("[warn] FileAPI.upload() \u2014 called without files"));("abort"!=d.statusText||d.current)&&l?(f=!1,(d.currentFile=t)&&b.prepare(t,u),this._getFormData(u,l,function(a){e||b.upload(d,b);var f=new h.XHR(h.extend({},u,{upload:t?function(){b.fileupload(t,f,u)}:C,progress:t?function(a){x||(b.fileprogress({type:"progress",total:l.total=a.total,loaded:l.loaded=a.loaded},t,f,u),
b.progress({type:"progress",total:c,loaded:d.loaded=e+l.size*(a.loaded/a.total)|0},t,f,u))}:C,complete:function(a){x=!0;g(X,function(b){d[b]=f[b]});t&&(l.loaded=l.total,this.progress(l),e+=l.size,d.loaded=e,b.filecomplete(a,f,t,u));S.call(n)}}));d.abort=function(b){this.current=b;f.abort()};f.send(a)})):(b.complete(200==d.status||201==d.status?!1:d.statusText||"error",d,b),f=!0)}).call(this);d.append=function(b,e){b=h._getFilesDataArray([].concat(b));g(b,function(b){c+=b.size;d.files.push(b.file);
e?a.unshift(b):a.push(b)});f&&l.call(n)};d.remove=function(b){var d=-1;g(a,function(c){d++;if(c.file==b)return a.splice(d,1)})};return d},_getFilesDataArray:function(b){var d=[],a={};if(L.test(b&&b.tagName)){var c=h.getFiles(b);a[b.name||"file"]=null!==b.getAttribute("multiple")?c:c[0]}else l(b)&&L.test(b[0]&&b[0].tagName)?g(b,function(b){a[b.name||"file"]=h.getFiles(b)}):a=b;g(a,function B(b,a){l(b)?g(b,function(b){B(b,a)}):b&&b.name&&d.push({name:a,file:b,size:b.size,total:b.size,loaded:0})});d.length||
d.push({file:{name:h.expando}});return d},_getFormData:function(b,d,a){var c=d.file,e=d.name,n=c.name,l=c.type;d=h.support.transform&&b.imageTransform;var f=new h.Form,t=h.queue(function(){a(f)}),x=d&&(0<parseInt(d.maxWidth||d.minWidth||d.width,10)||d.rotate);h.Image&&d&&(/image/.test(c.type)||V.test(c.nodeType))?(t.inc(),x&&(d=[d]),h.Image.transform(c,d,b.imageAutoOrientation,function(d,a){x&&!d?(!F&&!h.flashEngine&&(a[0]=h.toBinaryString(a[0]),f.multipart=!0),f.append(e,a[0],n,l)):(d||(g(a,function(b,
d){!F&&!h.flashEngine&&(b=h.toBinaryString(b),f.multipart=!0);f.append(e+"["+d+"]",b,n,l)}),e+="[original]"),(d||b.imageOriginal)&&f.append(e,c,n,l));t.next()})):n!==h.expando&&f.append(e,c,n);g(b.data,function Y(b,d){"object"==typeof b?g(b,function(b,a){Y(b,d+"["+a+"]")}):f.append(d,b)});t.check()},reset:function(b){var d,a;n?(a=n(b).clone(!0).insertBefore(b).val("")[0],n(b).remove()):(d=b.parentNode,a=d.insertBefore(b.cloneNode(!0),b),a.value="",d.removeChild(b),g(D[h.uid(b)],function(d,c){g(d,
function(d){m(b,c,d);j(a,c,d)})}));return a},load:function(b,d){var a=h.getXHR();a?(a.open("GET",b,!0),a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined"),j(a,"progress",function(b){b.lengthComputable&&d({type:b.type,loaded:b.loaded,total:b.total},a)}),a.onreadystatechange=function(){if(4==a.readyState)if(a.onreadystatechange=null,200==a.status){b=b.split("/");var c={name:b[b.length-1],size:a.getResponseHeader("Content-Length"),type:a.getResponseHeader("Content-Type")};c.dataURL=
"data:"+c.type+";base64,"+h.encode64(a.responseBody||a.responseText);d({type:"load",result:c})}else d({type:"error"})},a.send(null)):d({type:"error"});return a},encode64:function(b){var d="",a=0;for("string"!==typeof b&&(b=String(b));a<b.length;){var c=b.charCodeAt(a++)&255,e=b.charCodeAt(a++)&255,n=b.charCodeAt(a++)&255,l=c>>2,c=(c&3)<<4|e>>4;isNaN(e)?e=n=64:(e=(e&15)<<2|n>>6,n=isNaN(n)?64:n&63);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(l)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(c)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(e)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(n)}return d}};h.addInfoReader(/^image/,function(b,d){if(!b.__dimensions){var a=b.__dimensions=h.defer();h.readAsImage(b,function(b){var d=b.target;a.resolve("load"==b.type?!1:"error",{width:d.width,height:d.height})})}b.__dimensions.then(d)});h.event.dnd=function(b,d,a){var c,e;a||(a=d,d=h.F);p?(j(b,"dragenter dragleave dragover",function(b){for(var a=
((b.originalEvent||b||"").dataTransfer||{}).types,n=a&&a.length;n--;)~a[n].indexOf("File")&&(b.preventDefault(),e!==b.type&&(e=b.type,"dragleave"!=e&&d.call(b.currentTarget,!0,b),clearTimeout(c),c=setTimeout(function(){d.call(b.currentTarget,"dragleave"!=e,b)},50)))}),j(b,"drop",function(b){b.preventDefault();e=0;d.call(b.currentTarget,!1,b);h.getDropFiles(b,function(d){a.call(b.currentTarget,d,b)})})):h.log("Drag'n'Drop -- not supported")};n&&!n.fn.dnd&&(n.fn.dnd=function(b,d){return this.each(function(){h.event.dnd(this,
b,d)})});a.FileAPI=h.extend(h,a.FileAPI);h.flashUrl||(h.flashUrl=h.staticPath+"FileAPI.flash.swf");h.flashImageUrl||(h.flashImageUrl=h.staticPath+"FileAPI.flash.image.swf")})(window);
(function(a,k,g){function j(a,c){if(!(this instanceof j))return new j(a);this.file=a;this.better=!c;this.matrix={sx:0,sy:0,sw:0,sh:0,dx:0,dy:0,dw:0,dh:0,resize:0,deg:0}}var m=Math.min,f=Math.round,c=!1,e={8:270,3:180,6:90};try{c=-1<k.createElement("canvas").toDataURL("image/png").indexOf("data:image/png")}catch(q){}j.prototype={constructor:j,set:function(c){a.extend(this.matrix,c);return this},crop:function(a,c,e,f){e===g&&(e=a,f=c,a=c=0);return this.set({sx:a,sy:c,sw:e,sh:f||e})},resize:function(a,
c,e){"string"==typeof c&&(e=c,c=a);return this.set({dw:a,dh:c,resize:e})},preview:function(a,c){return this.set({dw:a,dh:c||a,resize:"preview"})},rotate:function(a){return this.set({deg:a})},_load:function(c,e){var f=this;a.readAsImage(c,function(a){e.call(f,"load"!=a.type,a.result)})},_apply:function(a,c){var e=k.createElement("canvas"),f=this.getMatrix(a),g=e.getContext("2d"),m=f.deg,q=f.dw,r=f.dh,v=a.width,p=a.height,j,d=a;if(this.better)for(;2<Math.min(v/q,p/r);)v=~~(v/2+0.5),p=~~(p/2+0.5),j=
k.createElement("canvas"),j.width=v,j.height=p,d!==a?(j.getContext("2d").drawImage(d,0,0,d.width,d.height,0,0,v,p),d=j):(d=j,d.getContext("2d").drawImage(a,f.sx,f.sy,f.sw,f.sh,0,0,v,p),f.sx=f.sy=f.sw=f.sh=0);e.width=!(m%180)?q:r;e.height=m%180?q:r;g.rotate(m*Math.PI/180);g.drawImage(d,f.sx,f.sy,f.sw||d.width,f.sh||d.height,180==m||270==m?-q:0,90==m||180==m?-r:0,q,r);c.call(this,!1,e)},getMatrix:function(c){var e=a.extend({},this.matrix),g=e.sw=e.sw||c.width;c=e.sh=e.sh||c.height;var q=e.dw=e.dw||
e.sw,k=e.dh=e.dh||e.sh,s=g/c,j=q/k,r=e.resize;if("preview"==r){if(q!=g||k!=c)if(j>=s?(s=g,r=s/j):(r=c,s=r*j),s!=g||r!=c)e.sx=~~((g-s)/2),e.sy=~~((c-r)/2),g=s,c=r}else r&&("min"==r?(q=f(s<j?m(g,q):k*s),k=f(s<j?q/s:m(c,k))):(q=f(s>=j?m(g,q):k*s),k=f(s>=j?q/s:m(c,k))));e.sw=g;e.sh=c;e.dw=q;e.dh=k;return e},_trans:function(a){this._load(this.file,function(c,e){c?a(c):this._apply(e,a)})},get:function(c){if(a.support.transform){var f=this;"auto"==f.matrix.deg?a.getInfo(this.file,function(a,g){f.matrix.deg=
e[g&&g.exif&&g.exif.Orientation]||0;f._trans(c)}):f._trans(c)}else c("not_support")},toData:function(a){this.get(a)}};j.exifOrientation=e;j.transform=function(c,e,f,q){a.getInfo(c,function(m,k){var y={},r=a.queue(function(a){q(a,y)});m?r.fail():a.each(e,function(a,e){if(!r.isFail()){var l=j(k.nodeType?k:c);if("function"==typeof a)a(k,l);else if(a.width)l[a.preview?"preview":"resize"](a.width,a.height,a.type);else a.maxWidth&&(k.width>a.maxWidth||k.height>a.maxHeight)&&l.resize(a.maxWidth,a.maxHeight,
"max");a.rotate===g&&f&&(a.rotate="auto");l.rotate(a.rotate);r.inc();l.toData(function(d,a){d?r.fail():(y[e]=a,r.next())})}})})};a.support.canvas=a.support.transform=c;a.Image=j})(FileAPI,document);
(function(a,k,g){var j=k.encodeURIComponent,m=k.FormData;k=function(){this.items=[]};k.prototype={append:function(a,c,e,g){this.items.push({name:a,blob:c&&c.blob||(void 0==c?"":c),file:c&&(e||c.name),type:c&&(g||c.type)})},each:function(a){for(var c=0,e=this.items.length;c<e;c++)a.call(this,this.items[c])},toData:function(f,c){c._chunked=a.support.chunked&&0<c.chunkSize&&1==a.filter(this.items,function(a){return a.file}).length;a.support.html5?this.multipart||!m?(a.log("FileAPI.Form.toMultipartData"),
this.toMultipartData(f)):c._chunked?(a.log("FileAPI.Form.toPlainData"),this.toPlainData(f)):(a.log("FileAPI.Form.toFormData"),this.toFormData(f)):(a.log("FileAPI.Form.toHtmlData"),this.toHtmlData(f))},_to:function(f,c,e,g){var m=a.queue(function(){c(f)});this.each(function(a){e(a,f,m,g)});m.check()},toHtmlData:function(f){this._to(g.createDocumentFragment(),f,function(c,e){var f=c.blob,m;c.file?(a.reset(f),f.name=c.name,e.appendChild(f)):(m=g.createElement("input"),m.name=c.name,m.type="hidden",m.value=
f,e.appendChild(m))})},toPlainData:function(a){this._to({},a,function(a,e,f){a.file&&(e.type=a.file);a.blob.toBlob?(f.inc(),a.blob.toBlob(function(g){e.name=a.name;e.file=g;e.size=g.length;e.type=a.type;f.next()},"image/png")):a.file?(e.name=a.blob.name,e.file=a.blob,e.size=a.blob.size,e.type=a.type):(e.params||(e.params=[]),e.params.push(encodeURIComponent(a.name)+"="+encodeURIComponent(a.blob)));e.start=-1;e.end=e.file.FileAPIReadPosition||-1;e.retry=0})},toFormData:function(a){this._to(new m,a,
function(a,e,f){a.file&&e.append("_"+a.name,a.file);a.blob&&a.blob.toBlob?(f.inc(),a.blob.toBlob(function(g){e.append(a.name,g,a.file);f.next()},"image/png")):a.file?e.append(a.name,a.blob,a.file):e.append(a.name,a.blob)})},toMultipartData:function(f){this._to([],f,function(c,e,f,g){var l=!!c.file,m=c.blob,k=function(a){e.push("--_"+g+('\r\nContent-Disposition: form-data; name="'+c.name+'"'+(l?'; filename="'+j(c.file)+'"':"")+(l?"\r\nContent-Type: "+(c.type||"application/octet-stream"):"")+"\r\n\r\n"+
(l?a:j(a))+"\r\n"));f.next()};f.inc();a.isFile(m)?a.readAsBinaryString(m,function(a){"load"==a.type&&k(a.result)}):k(m)},a.expando)}};a.Form=k})(FileAPI,window,document);
(function(a,k){var g=function(){},j=function(a){this.uid=k.uid();this.xhr={abort:g,getResponseHeader:g,getAllResponseHeaders:g};this.options=a};j.prototype={status:0,statusText:"",getResponseHeader:function(a){return this.xhr.getResponseHeader(a)},getAllResponseHeaders:function(){return this.xhr.getAllResponseHeaders()||{}},end:function(m,f){var c=this,e=c.options;c.end=c.abort=g;c.status=m;f&&(c.statusText=f);k.log("xhr.end:",m,f);e.complete(200==m||201==m?!1:c.statusText||"unknown",c);c.xhr&&c.xhr.node&&
setTimeout(function(){var e=c.xhr.node;try{e.parentNode.removeChild(e)}catch(f){}try{delete a[c.uid]}catch(g){}a[c.uid]=c.xhr.node=null},9)},abort:function(){this.end(0,"abort");this.xhr&&(this.xhr.aborted=!0,this.xhr.abort())},send:function(a){var f=this,c=this.options;a.toData(function(a){c.upload(c,f);f._send.call(f,c,a)},c)},_send:function(g,f){var c=this,e,q=c.uid,j=g.url;k.log("XHR._send:",f);j+=(~j.indexOf("?")?"&":"?")+k.uid();f.nodeName?(g.upload(g,c),e=document.createElement("div"),e.innerHTML=
'<form target="'+q+'" action="'+j+'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;"><iframe name="'+q+'" src="javascript:false;"></iframe><input value="'+q+'" name="callback" type="hidden"/></form>',c.xhr.abort=function(){var a=e.getElementsByName("iframe")[0];if(a)try{a.stop?a.stop():a.contentWindow.stop?a.contentWindow.stop():a.contentWindow.document.execCommand("Stop")}catch(c){}e=null},j=e.getElementsByTagName("form")[0],
j.appendChild(f),k.log(j.parentNode.innerHTML),document.body.appendChild(e),c.xhr.node=e,a[q]=function(a,f,g){c.readyState=4;c.responseText=g;c.end(a,f);e=null},c.readyState=2,j.submit(),j=null):this.xhr&&this.xhr.aborted?k.log("Error: already aborted"):(e=c.xhr=k.getXHR(),f.params&&(j+=(0>j.indexOf("?")?"?":"&")+f.params.join("&")),e.open("POST",j,!0),k.withCredentials&&(e.withCredentials="true"),(!g.headers||!g.headers["X-Requested-With"])&&e.setRequestHeader("X-Requested-With","XMLHttpRequest"),
k.each(g.headers,function(a,c){e.setRequestHeader(c,a)}),g._chunked?(e.upload&&e.upload.addEventListener("progress",function(a){f.retry||g.progress({type:a.type,total:f.size,loaded:f.start+a.loaded,totalSize:f.size},c,g)},!1),e.onreadystatechange=function(){c.status=e.status;c.statusText=e.statusText;c.readyState=e.readyState;if(4==e.readyState){for(var a in{"":1,XML:1,Text:1,Body:1})c["response"+a]=e["response"+a];e.onreadystatechange=null;if(!e.status||0<e.status-201)if(k.log("Error: "+e.status),
(!e.status&&!e.aborted||500==e.status||416==e.status)&&++f.retry<=g.chunkUploadRetry){a=e.status?0:k.chunkNetworkDownRetryTimeout;g.pause(f.file,g);var j=parseInt(e.getResponseHeader("X-Last-Known-Byte"),10);k.log("X-Last-Known-Byte: "+j);f.end=j?j:f.start-1;setTimeout(function(){c._send(g,f)},a)}else c.end(e.status);else f.retry=0,f.end==f.size-1?c.end(e.status):(j=parseInt(e.getResponseHeader("X-Last-Known-Byte"),10),k.log("X-Last-Known-Byte: "+j),j&&(f.end=j),f.file.FileAPIReadPosition=f.end,setTimeout(function(){c._send(g,
f)},0));e=null}},f.start=f.end+1,f.end=Math.max(Math.min(f.start+g.chunkSize,f.size)-1,f.start),(q="slice")in f.file||(q="mozSlice")in f.file||(q="webkitSlice"),e.setRequestHeader("Content-Range","bytes "+f.start+"-"+f.end+"/"+f.size),e.setRequestHeader("Content-Disposition","attachment; filename="+encodeURIComponent(f.name)),e.setRequestHeader("Content-Type",f.type||"application/octet-stream"),q=f.file[q](f.start,f.end+1),e.send(q),q=null):(e.upload&&e.upload.addEventListener("progress",k.throttle(function(a){g.progress(a,
c,g)},100),!1),e.onreadystatechange=function(){c.status=e.status;c.statusText=e.statusText;c.readyState=e.readyState;if(4==e.readyState){for(var a in{"":1,XML:1,Text:1,Body:1})c["response"+a]=e["response"+a];e.onreadystatechange=null;c.end(e.status);e=null}},k.isArray(f)?(e.setRequestHeader("Content-Type","multipart/form-data; boundary=_"+k.expando),f=f.join("")+"--_"+k.expando+"--",e.sendAsBinary?e.sendAsBinary(f):(q=Array.prototype.map.call(f,function(a){return a.charCodeAt(0)&255}),e.send((new Uint8Array(q)).buffer))):
e.send(f)))}};k.XHR=j})(window,FileAPI);
(function(a,k,g){var j=a.support,m=k.navigator,f=m.mimeTypes,c=!1;if(m.plugins&&"object"==typeof m.plugins["Shockwave Flash"])c=m.plugins["Shockwave Flash"].description&&!(f&&f["application/x-shockwave-flash"]&&!f["application/x-shockwave-flash"].enabledPlugin);else try{c=!(!k.ActiveXObject||!new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))}catch(e){a.log("ShockwaveFlash.ShockwaveFlash -- does not supported.")}j.flash=c;if(a.support.flash&&(!a.html5||!a.support.html5||a.cors&&!a.support.cors)){var q=
function(a){return('<object id="#id#" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+(a.width||"100%")+'" height="'+(a.height||"100%")+'"><param name="movie" value="#src#" /><param name="flashvars" value="#flashvars#" /><param name="swliveconnect" value="true" /><param name="allowscriptaccess" value="always" /><param name="allownetworking" value="all" /><param name="menu" value="false" /><param name="wmode" value="#wmode#" /><embed flashvars="#flashvars#" swliveconnect="true" allownetworking="all" allowscriptaccess="always" name="#id#" src="#src#" width="'+
(a.width||"100%")+'" height="'+(a.height||"100%")+'" menu="false" wmode="transparent" type="application/x-shockwave-flash"></embed></object>').replace(/#(\w+)#/ig,function(c,e){return a[e]})},t=function(a,c){if(a&&a.style){var e,f;for(e in c){f=c[e];"number"==typeof f&&(f+="px");try{a.style[e]=f}catch(g){}}}},l=function(d,c){a.each(c,function(a,c){var e=d[c];d[c]=function(){this.parent=e;return a.apply(this,arguments)}})},A=function(d){var c=d.wid=a.uid();p._fn[c]=d;return"FileAPI.Flash._fn."+c},
u=function(a){try{p._fn[a.wid]=null,delete p._fn[a.wid]}catch(c){}},C=function(a,c){if(!v.test(a)){if(/^\.\//.test(a)||"/"!=a.charAt(0)){var e=location.pathname,e=e.substr(0,e.lastIndexOf("/"));a=(e+"/"+a).replace("/./","/")}"//"!=a.substr(0,2)&&(a="//"+location.host+a);v.test(a)||(a=location.protocol+a)}c&&(a+=(/\?/.test(a)?"&":"?")+c);return a},s=a.uid(),y=0,r={},v=/^https?:/i,p={_fn:{},init:function(){var d=g.body&&g.body.firstChild;if(d){do if(1==d.nodeType){a.log("FlashAPI.Flash.init...");var c=
g.createElement("div");t(c,{top:1,right:1,width:5,height:5,position:"absolute"});d.parentNode.insertBefore(c,d);p.publish(c,s);return}while(d=d.nextSibling)}10>y&&setTimeout(p.init,50*++y)},publish:function(d,c){d.innerHTML=q({id:c,src:C(a.flashUrl,"r="+a.version),wmode:"transparent",flashvars:"callback=FileAPI.Flash.event&flashId="+c+"&storeKey="+navigator.userAgent.match(/\d/ig).join("")+"_"+a.version+(p.isReady||(a.pingUrl?"&ping="+a.pingUrl:""))})},ready:function(){p.ready=a.F;p.isReady=!0;p.patch();
a.event.on(g,"mouseover",p.mouseover);a.event.on(g,"click",function(a){p.mouseover(a)&&(a.preventDefault?a.preventDefault():a.returnValue=!0)})},getWrapper:function(a){do if(/js-fileapi-wrapper/.test(a.className))return a;while((a=a.parentNode)&&a!==g.body)},mouseover:function(d){d=a.event.fix(d).target;if(/input/i.test(d.nodeName)&&"file"==d.type){var c=d.getAttribute(s);if("i"==c||"r"==c)return!1;if("p"!=c){d.setAttribute(s,"i");var c=g.createElement("div"),e=p.getWrapper(d);if(!e){a.log("flash.mouseover.error: js-fileapi-wrapper not found");
return}t(c,{top:0,left:0,width:d.offsetWidth+100,height:d.offsetHeight+100,zIndex:"1000000",position:"absolute"});e.appendChild(c);p.publish(c,a.uid());d.setAttribute(s,"p")}return!0}},event:function(d){var c=d.type;if("ready"==c){try{p.getInput(d.flashId).setAttribute(s,"r")}catch(e){}p.ready();setTimeout(function(){p.mouseenter(d)},50);return!0}"ping"===c?a.log("(flash -> js).ping:",[d.status,d.savedStatus],d.error):"log"===c?a.log("(flash -> js).log:",d.target):c in p&&setTimeout(function(){a.log("Flash.event."+
d.type+":",d);p[c](d)},1)},mouseenter:function(d){var c=p.getInput(d.flashId);if(c){p.cmd(d,"multiple",null!=c.getAttribute("multiple"));var e=[],f={};a.each((c.getAttribute("accept")||"").split(/,\s*/),function(d){a.accept[d]&&a.each(a.accept[d].split(" "),function(a){f[a]=1})});a.each(f,function(a,d){e.push(d)});p.cmd(d,"accept",e.length?e.join(",")+","+e.join(",").toUpperCase():"*")}},get:function(a){return g[a]||k[a]||g.embeds[a]},getInput:function(d){try{var c=p.getWrapper(p.get(d));if(c)return c.getElementsByTagName("input")[0]}catch(e){a.log('Can not find "input" by flashId:',
d,e)}},select:function(d){var c=p.getInput(d.flashId),e=a.uid(c);d=d.target.files;a.each(d,function(d){a.checkFileObj(d)});r[e]=d;g.createEvent?(e=g.createEvent("Event"),e.initEvent("change",!0,!1),c.dispatchEvent(e)):g.createEventObject&&(e=g.createEventObject(),c.fireEvent("onchange",e))},cmd:function(d,c,e,f){try{return a.log("(js -> flash)."+c+":",e),p.get(d.flashId||d).cmd(c,e)}catch(g){a.log("(js -> flash).onError:",g),f||setTimeout(function(){p.cmd(d,c,e,!0)},50)}},patch:function(){a.flashEngine=
a.support.transform=!0;l(a,{getFiles:function(d,c,e){if(e)return a.filterFiles(a.getFiles(d),c,e),null;var f=a.isArray(d)?d:r[a.uid(d.target||d.srcElement||d)];if(!f)return this.parent.apply(this,arguments);c&&(c=a.getFilesFilter(c),f=a.filter(f,function(a){return c.test(a.name)}));return f},getInfo:function(d,c){if(d&&!d.flashId)this.parent.apply(this,arguments);else{if(!d.__info){var e=d.__info=a.defer();p.cmd(d,"getFileInfo",{id:d.id,callback:A(function F(a,c){u(F);e.resolve(a,d.info=c)})})}d.__info.then(c)}}});
a.support.transform=!0;a.Image&&l(a.Image.prototype,{get:function(a,c){this.set({scaleMode:c||"noScale"});this.parent(a)},_load:function(d,c){a.log("FileAPI.Image._load:",d);if(d&&!d.flashId)this.parent.apply(this,arguments);else{var e=this;a.getInfo(d,function(a){c.call(e,a,d)})}},_apply:function(d,c){a.log("FileAPI.Image._apply:",d);if(d&&!d.flashId)this.parent.apply(this,arguments);else{var e=this.getMatrix(d.info);p.cmd(d,"imageTransform",{id:d.id,matrix:e,callback:A(function F(f,k){a.log("FileAPI.Image._apply.callback:",
f);u(F);if(f)c(f);else if(!a.support.dataURI||3E4<k.length){var j={width:!(e.deg%180)?e.dw:e.dh,height:e.deg%180?e.dw:e.dh,scale:e.scaleMode},l=c,m=function(){try{p.get(s).setImage(k)}catch(d){a.log('flash.setImage -- can not set "base64":',d)}},r,s=a.uid(),z=g.createElement("div");for(r in j)z.setAttribute("data-img-"+r,j[r]);t(z,j);z.innerHTML=q(a.extend({id:s,src:C(a.flashImageUrl,"r="+a.uid()),wmode:"opaque",flashvars:"scale="+j.scale+"&callback="+A(function J(){u(J);setTimeout(m,99);return!0})},
j));l(!1,z);z=null}else{var v=new Image;a.event.one(v,"error abort load",function(a){c("load"!=a.type&&a.type,v);v=null});v.src="data:"+d.type+";base64,"+k}})})}},toData:function(d){var c=this.file,e=c.info,f=this.getMatrix(e);c&&!c.flashId?this.parent.apply(this,arguments):("auto"==f.deg&&(f.deg=a.Image.exifOrientation[e&&e.exif&&e.exif.Orientation]||0),d.call(this,!c.info,{id:c.id,flashId:c.flashId,name:c.name,type:c.type,matrix:f}))}});l(a.Form.prototype,{toData:function(d){for(var c=this.items,
e=c.length;e--;)if(c[e].file&&c[e].blob&&!c[e].blob.flashId)return this.parent.apply(this,arguments);a.log("flash.Form.toData");d(c)}});l(a.XHR.prototype,{_send:function(c,e){if(e.nodeName||e.append&&a.support.html5||a.isArray(e)&&"string"===typeof e[0])return this.parent.apply(this,arguments);var f={},g={},j=this,k,l;a.each(e,function(a){a.file?(g[a.name]=a={id:a.blob.id,name:a.blob.name,matrix:a.blob.matrix,flashId:a.blob.flashId},l=a.id,k=a.flashId):f[a.name]=a.blob});if(!l&&!k)return this.parent.apply(this,
arguments);a.log("flash.XHR._send:",k,l,g);j.xhr={headers:{},abort:function(){p.cmd(k,"abort",{id:l})},getResponseHeader:function(a){return this.headers[a]},getAllResponseHeaders:function(){return this.headers}};var m=a.queue(function(){p.cmd(k,"upload",{url:C(c.url),data:f,files:g,headers:c.headers,callback:A(function I(e){var f=e.type,g=e.result;a.log("flash.upload."+f+":",e);if("progress"==f)e.loaded=Math.min(e.loaded,e.total),e.lengthComputable=!0,c.progress(e);else if("complete"==f)u(I),"string"==
typeof g&&(j.responseText=g.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),j.end(e.status||200);else if("abort"==f||"error"==f)j.end(e.status||0,e.message),u(I)})})});a.each(g,function(c){m.inc();a.getInfo(c,m.next)});m.check()}})}};a.Flash=p;var w=new Image;a.event.one(w,"error load",function(){a.support.dataURI=!(1!=w.width||1!=w.height);w=null;p.init()});w.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="}})(FileAPI,window,document);
"undefined"!==typeof ajs&&ajs.loaded&&ajs.loaded("{fileapi}FileAPI.min");"function"===typeof define&&define.amd&&define("FileAPI",[],function(){return window.FileAPI||{}});

@ -0,0 +1,25 @@
/**!
* AngularJS file upload shim for angular XHR HTML5 browsers
* @author Danial <danial.farid@gmail.com>
* @version 1.1.10
*/
if (window.XMLHttpRequest) {
if (window.FormData) {
// allow access to Angular XHR private field: https://github.com/angular/angular.js/issues/1934
XMLHttpRequest = (function(origXHR) {
return function() {
var xhr = new origXHR();
xhr.send = (function(orig) {
return function() {
if (arguments[0] instanceof FormData && arguments[0].__setXHR_) {
var formData = arguments[0];
formData.__setXHR_(xhr);
}
orig.apply(xhr, arguments);
}
})(xhr.send);
return xhr;
}
})(XMLHttpRequest);
}
}

@ -0,0 +1,2 @@
/*! 1.1.10 */
window.XMLHttpRequest&&window.FormData&&(XMLHttpRequest=function(a){return function(){var b=new a;return b.send=function(a){return function(){if(arguments[0]instanceof FormData&&arguments[0].__setXHR_){var c=arguments[0];c.__setXHR_(b)}a.apply(b,arguments)}}(b.send),b}}(XMLHttpRequest));

215
themes/hellug-keycloak/common/resources/lib/fileupload/angular-file-upload-shim.js εξωτερικό Κανονικό αρχείο

@ -0,0 +1,215 @@
/**!
* AngularJS file upload shim for HTML5 FormData
* @author Danial <danial.farid@gmail.com>
* @version 1.1.10
*/
(function() {
if (window.XMLHttpRequest) {
if (window.FormData) {
// allow access to Angular XHR private field: https://github.com/angular/angular.js/issues/1934
XMLHttpRequest = (function(origXHR) {
return function() {
var xhr = new origXHR();
xhr.send = (function(orig) {
return function() {
if (arguments[0] instanceof FormData && arguments[0].__setXHR_) {
var formData = arguments[0];
formData.__setXHR_(xhr);
}
orig.apply(xhr, arguments);
}
})(xhr.send);
return xhr;
}
})(XMLHttpRequest);
} else {
XMLHttpRequest = (function(origXHR) {
return function() {
var xhr = new origXHR();
var origSend = xhr.send;
xhr.__requestHeaders = [];
xhr.open = (function(orig) {
xhr.upload = {
addEventListener: function(t, fn, b) {
if (t == 'progress') {
xhr.__progress = fn;
}
}
};
return function(m, url, b) {
orig.apply(xhr, [m, url, b]);
xhr.__url = url;
}
})(xhr.open);
xhr.getResponseHeader = (function(orig) {
return function(h) {
return xhr.__fileApiXHR ? xhr.__fileApiXHR.getResponseHeader(h) : orig.apply(xhr, [h]);
}
})(xhr.getResponseHeader);
xhr.getAllResponseHeaders = (function(orig) {
return function() {
return xhr.__fileApiXHR ? xhr.__fileApiXHR.getAllResponseHeaders() : orig.apply(xhr);
}
})(xhr.getAllResponseHeaders);
xhr.abort = (function(orig) {
return function() {
return xhr.__fileApiXHR ? xhr.__fileApiXHR.abort() : (orig == null ? null : orig.apply(xhr));
}
})(xhr.abort);
xhr.send = function() {
if (arguments[0] != null && arguments[0].__isShim && arguments[0].__setXHR_) {
var formData = arguments[0];
if (arguments[0].__setXHR_) {
var formData = arguments[0];
formData.__setXHR_(xhr);
}
var config = {
url: xhr.__url,
complete: function(err, fileApiXHR) {
Object.defineProperty(xhr, 'status', {get: function() {return fileApiXHR.status}});
Object.defineProperty(xhr, 'statusText', {get: function() {return fileApiXHR.statusText}});
Object.defineProperty(xhr, 'readyState', {get: function() {return 4}});
Object.defineProperty(xhr, 'response', {get: function() {return fileApiXHR.response}});
Object.defineProperty(xhr, 'responseText', {get: function() {return fileApiXHR.responseText}});
xhr.__fileApiXHR = fileApiXHR;
xhr.onreadystatechange();
},
progress: function(e) {
xhr.__progress(e);
},
headers: xhr.__requestHeaders
}
config.data = {};
config.files = {}
for (var i = 0; i < formData.data.length; i++) {
var item = formData.data[i];
if (item.val != null && item.val.name != null && item.val.size != null && item.val.type != null) {
config.files[item.key] = item.val;
} else {
config.data[item.key] = item.val;
}
}
setTimeout(function() {
xhr.__fileApiXHR = FileAPI.upload(config);
}, 1);
} else {
origSend.apply(xhr, arguments);
}
}
return xhr;
}
})(XMLHttpRequest);
}
}
if (!window.FormData) {
var hasFlash = false;
try {
var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if (fo) hasFlash = true;
} catch(e) {
if (navigator.mimeTypes["application/x-shockwave-flash"] != undefined) hasFlash = true;
}
var wrapFileApi = function(elem) {
if (!elem.__isWrapped && (elem.getAttribute('ng-file-select') != null || elem.getAttribute('data-ng-file-select') != null)) {
var wrap = document.createElement('div');
wrap.innerHTML = '<div class="js-fileapi-wrapper" style="position:relative; overflow:hidden"></div>';
wrap = wrap.firstChild;
var parent = elem.parentNode;
parent.insertBefore(wrap, elem);
parent.removeChild(elem);
wrap.appendChild(elem);
if (!hasFlash) {
wrap.appendChild(document.createTextNode('Flash is required'));
}
elem.__isWrapped = true;
}
};
var changeFnWrapper = function(fn) {
return function(evt) {
var files = FileAPI.getFiles(evt);
if (!evt.target) {
evt.target = {};
}
evt.target.files = files;
evt.target.files.item = function(i) {
return evt.target.files[i] || null;
}
fn(evt);
};
};
var isFileChange = function(elem, e) {
return (e.toLowerCase() === 'change' || e.toLowerCase() === 'onchange') && elem.getAttribute('type') == 'file';
}
if (HTMLInputElement.prototype.addEventListener) {
HTMLInputElement.prototype.addEventListener = (function(origAddEventListener) {
return function(e, fn, b, d) {
if (isFileChange(this, e)) {
wrapFileApi(this);
origAddEventListener.apply(this, [e, changeFnWrapper(fn), b, d]);
} else {
origAddEventListener.apply(this, [e, fn, b, d]);
}
}
})(HTMLInputElement.prototype.addEventListener);
}
if (HTMLInputElement.prototype.attachEvent) {
HTMLInputElement.prototype.attachEvent = (function(origAttachEvent) {
return function(e, fn) {
if (isFileChange(this, e)) {
wrapFileApi(this);
origAttachEvent.apply(this, [e, changeFnWrapper(fn)]);
} else {
origAttachEvent.apply(this, [e, fn]);
}
}
})(HTMLInputElement.prototype.attachEvent);
}
window.FormData = FormData = function() {
return {
append: function(key, val, name) {
this.data.push({
key: key,
val: val,
name: name
});
},
data: [],
__isShim: true
};
};
(function () {
//load FileAPI
if (!window.FileAPI || !FileAPI.upload) {
var base = '', script = document.createElement('script'), allScripts = document.getElementsByTagName('script'), i, index, src;
if (window.FileAPI && window.FileAPI.jsPath) {
base = window.FileAPI.jsPath;
} else {
for (i = 0; i < allScripts.length; i++) {
src = allScripts[i].src;
index = src.indexOf('angular-file-upload-shim.js')
if (index == -1) {
index = src.indexOf('angular-file-upload-shim.min.js');
}
if (index > -1) {
base = src.substring(0, index);
break;
}
}
}
if (!window.FileAPI || FileAPI.staticPath == null) {
FileAPI = {
staticPath: base
}
}
script.setAttribute('src', base + "FileAPI.min.js");
document.getElementsByTagName('head')[0].appendChild(script);
}
})();
}})();

@ -0,0 +1,2 @@
/*! 1.1.10 */
!function(){if(window.XMLHttpRequest&&(XMLHttpRequest=window.FormData?function(a){return function(){var b=new a;return b.send=function(a){return function(){if(arguments[0]instanceof FormData&&arguments[0].__setXHR_){var c=arguments[0];c.__setXHR_(b)}a.apply(b,arguments)}}(b.send),b}}(XMLHttpRequest):function(a){return function(){var b=new a,c=b.send;return b.__requestHeaders=[],b.open=function(a){return b.upload={addEventListener:function(a,c){"progress"==a&&(b.__progress=c)}},function(c,d,e){a.apply(b,[c,d,e]),b.__url=d}}(b.open),b.getResponseHeader=function(a){return function(c){return b.__fileApiXHR?b.__fileApiXHR.getResponseHeader(c):a.apply(b,[c])}}(b.getResponseHeader),b.getAllResponseHeaders=function(a){return function(){return b.__fileApiXHR?b.__fileApiXHR.getAllResponseHeaders():a.apply(b)}}(b.getAllResponseHeaders),b.abort=function(a){return function(){return b.__fileApiXHR?b.__fileApiXHR.abort():null==a?null:a.apply(b)}}(b.abort),b.send=function(){if(null!=arguments[0]&&arguments[0].__isShim&&arguments[0].__setXHR_){var a=arguments[0];if(arguments[0].__setXHR_){var a=arguments[0];a.__setXHR_(b)}var d={url:b.__url,complete:function(a,c){Object.defineProperty(b,"status",{get:function(){return c.status}}),Object.defineProperty(b,"statusText",{get:function(){return c.statusText}}),Object.defineProperty(b,"readyState",{get:function(){return 4}}),Object.defineProperty(b,"response",{get:function(){return c.response}}),Object.defineProperty(b,"responseText",{get:function(){return c.responseText}}),b.__fileApiXHR=c,b.onreadystatechange()},progress:function(a){b.__progress(a)},headers:b.__requestHeaders};d.data={},d.files={};for(var e=0;e<a.data.length;e++){var f=a.data[e];null!=f.val&&null!=f.val.name&&null!=f.val.size&&null!=f.val.type?d.files[f.key]=f.val:d.data[f.key]=f.val}setTimeout(function(){b.__fileApiXHR=FileAPI.upload(d)},1)}else c.apply(b,arguments)},b}}(XMLHttpRequest)),!window.FormData){var a=!1;try{var b=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");b&&(a=!0)}catch(c){void 0!=navigator.mimeTypes["application/x-shockwave-flash"]&&(a=!0)}var d=function(b){if(!b.__isWrapped&&(null!=b.getAttribute("ng-file-select")||null!=b.getAttribute("data-ng-file-select"))){var c=document.createElement("div");c.innerHTML='<div class="js-fileapi-wrapper" style="position:relative; overflow:hidden"></div>',c=c.firstChild;var d=b.parentNode;d.insertBefore(c,b),d.removeChild(b),c.appendChild(b),a||c.appendChild(document.createTextNode("Flash is required")),b.__isWrapped=!0}},e=function(a){return function(b){var c=FileAPI.getFiles(b);b.target||(b.target={}),b.target.files=c,b.target.files.item=function(a){return b.target.files[a]||null},a(b)}},f=function(a,b){return("change"===b.toLowerCase()||"onchange"===b.toLowerCase())&&"file"==a.getAttribute("type")};HTMLInputElement.prototype.addEventListener&&(HTMLInputElement.prototype.addEventListener=function(a){return function(b,c,g,h){f(this,b)?(d(this),a.apply(this,[b,e(c),g,h])):a.apply(this,[b,c,g,h])}}(HTMLInputElement.prototype.addEventListener)),HTMLInputElement.prototype.attachEvent&&(HTMLInputElement.prototype.attachEvent=function(a){return function(b,c){f(this,b)?(d(this),a.apply(this,[b,e(c)])):a.apply(this,[b,c])}}(HTMLInputElement.prototype.attachEvent)),window.FormData=FormData=function(){return{append:function(a,b,c){this.data.push({key:a,val:b,name:c})},data:[],__isShim:!0}},function(){if(!window.FileAPI||!FileAPI.upload){var a,b,c,d="",e=document.createElement("script"),f=document.getElementsByTagName("script");if(window.FileAPI&&window.FileAPI.jsPath)d=window.FileAPI.jsPath;else for(a=0;a<f.length;a++)if(c=f[a].src,b=c.indexOf("angular-file-upload-shim.js"),-1==b&&(b=c.indexOf("angular-file-upload-shim.min.js")),b>-1){d=c.substring(0,b);break}window.FileAPI&&null!=FileAPI.staticPath||(FileAPI={staticPath:d}),e.setAttribute("src",d+"FileAPI.min.js"),document.getElementsByTagName("head")[0].appendChild(e)}}()}}();

156
themes/hellug-keycloak/common/resources/lib/fileupload/angular-file-upload.js εξωτερικό Κανονικό αρχείο

@ -0,0 +1,156 @@
/**!
* AngularJS file upload/drop directive with http post and progress
* @author Danial <danial.farid@gmail.com>
* @version 1.1.10
*/
(function() {
var angularFileUpload = angular.module('angularFileUpload', []);
angularFileUpload.service('$upload', ['$http', '$rootScope', '$timeout', function($http, $rootScope, $timeout) {
this.upload = function(config) {
config.method = config.method || 'POST';
config.headers = config.headers || {};
config.headers['Content-Type'] = undefined;
config.transformRequest = config.transformRequest || $http.defaults.transformRequest;
var formData = new FormData();
if (config.data) {
for (var key in config.data) {
var val = config.data[key];
if (!config.formDataAppender) {
if (typeof config.transformRequest == 'function') {
val = config.transformRequest(val);
} else {
for (var i = 0; i < config.transformRequest.length; i++) {
var fn = config.transformRequest[i];
if (typeof fn == 'function') {
val = fn(val);
}
}
}
formData.append(key, val);
} else {
config.formDataAppender(formData, key, val);
}
}
}
config.transformRequest = angular.identity;
formData.append(config.fileFormDataName || 'file', config.file, config.file.name);
formData['__setXHR_'] = function(xhr) {
config.__XHR = xhr;
xhr.upload.addEventListener('progress', function(e) {
if (config.progress) {
$timeout(function() {
config.progress(e);
});
}
}, false);
//fix for firefox not firing upload progress end
xhr.upload.addEventListener('load', function(e) {
if (e.lengthComputable) {
$timeout(function() {
config.progress(e);
});
}
}, false);
};
config.data = formData;
var promise = $http(config);
promise.progress = function(fn) {
config.progress = fn;
return promise;
};
promise.abort = function() {
if (config.__XHR) {
$timeout(function() {
config.__XHR.abort();
});
}
return promise;
};
promise.then = (function(promise, origThen) {
return function(s, e, p) {
config.progress = p || config.progress;
origThen.apply(promise, [s, e, p]);
return promise;
};
})(promise, promise.then);
return promise;
};
}]);
angularFileUpload.directive('ngFileSelect', [ '$parse', '$http', '$timeout', function($parse, $http, $timeout) {
return function(scope, elem, attr) {
var fn = $parse(attr['ngFileSelect']);
elem.bind('change', function(evt) {
var files = [], fileList, i;
fileList = evt.target.files;
if (fileList != null) {
for (i = 0; i < fileList.length; i++) {
files.push(fileList.item(i));
}
}
$timeout(function() {
fn(scope, {
$files : files,
$event : evt
});
});
});
elem.bind('click', function(){
this.value = null;
});
};
} ]);
angularFileUpload.directive('ngFileDropAvailable', [ '$parse', '$http', '$timeout', function($parse, $http, $timeout) {
return function(scope, elem, attr) {
if ('draggable' in document.createElement('span')) {
var fn = $parse(attr['ngFileDropAvailable']);
$timeout(function() {
fn(scope);
});
}
};
} ]);
angularFileUpload.directive('ngFileDrop', [ '$parse', '$http', '$timeout', function($parse, $http, $timeout) {
return function(scope, elem, attr) {
if ('draggable' in document.createElement('span')) {
var fn = $parse(attr['ngFileDrop']);
elem[0].addEventListener("dragover", function(evt) {
evt.stopPropagation();
evt.preventDefault();
elem.addClass(attr['ngFileDragOverClass'] || "dragover");
}, false);
elem[0].addEventListener("dragleave", function(evt) {
elem.removeClass(attr['ngFileDragOverClass'] || "dragover");
}, false);
elem[0].addEventListener("drop", function(evt) {
evt.stopPropagation();
evt.preventDefault();
elem.removeClass(attr['ngFileDragOverClass'] || "dragover");
var files = [], fileList = evt.dataTransfer.files, i;
if (fileList != null) {
for (i = 0; i < fileList.length; i++) {
files.push(fileList.item(i));
}
}
$timeout(function() {
fn(scope, {
$files : files,
$event : evt
});
});
}, false);
}
};
} ]);
})();

@ -0,0 +1,2 @@
/*! 1.1.10 */
!function(){var a=angular.module("angularFileUpload",[]);a.service("$upload",["$http","$rootScope","$timeout",function(a,b,c){this.upload=function(b){b.method=b.method||"POST",b.headers=b.headers||{},b.headers["Content-Type"]=void 0,b.transformRequest=b.transformRequest||a.defaults.transformRequest;var d=new FormData;if(b.data)for(var e in b.data){var f=b.data[e];if(b.formDataAppender)b.formDataAppender(d,e,f);else{if("function"==typeof b.transformRequest)f=b.transformRequest(f);else for(var g=0;g<b.transformRequest.length;g++){var h=b.transformRequest[g];"function"==typeof h&&(f=h(f))}d.append(e,f)}}b.transformRequest=angular.identity,d.append(b.fileFormDataName||"file",b.file,b.file.name),d.__setXHR_=function(a){b.__XHR=a,a.upload.addEventListener("progress",function(a){b.progress&&c(function(){b.progress(a)})},!1),a.upload.addEventListener("load",function(a){a.lengthComputable&&c(function(){b.progress(a)})},!1)},b.data=d;var i=a(b);return i.progress=function(a){return b.progress=a,i},i.abort=function(){return b.__XHR&&c(function(){b.__XHR.abort()}),i},i.then=function(a,c){return function(d,e,f){return b.progress=f||b.progress,c.apply(a,[d,e,f]),a}}(i,i.then),i}}]),a.directive("ngFileSelect",["$parse","$http","$timeout",function(a,b,c){return function(b,d,e){var f=a(e.ngFileSelect);d.bind("change",function(a){var d,e,g=[];if(d=a.target.files,null!=d)for(e=0;e<d.length;e++)g.push(d.item(e));c(function(){f(b,{$files:g,$event:a})})}),d.bind("click",function(){this.value=null})}}]),a.directive("ngFileDropAvailable",["$parse","$http","$timeout",function(a,b,c){return function(b,d,e){if("draggable"in document.createElement("span")){var f=a(e.ngFileDropAvailable);c(function(){f(b)})}}}]),a.directive("ngFileDrop",["$parse","$http","$timeout",function(a,b,c){return function(b,d,e){if("draggable"in document.createElement("span")){var f=a(e.ngFileDrop);d[0].addEventListener("dragover",function(a){a.stopPropagation(),a.preventDefault(),d.addClass(e.ngFileDragOverClass||"dragover")},!1),d[0].addEventListener("dragleave",function(){d.removeClass(e.ngFileDragOverClass||"dragover")},!1),d[0].addEventListener("drop",function(a){a.stopPropagation(),a.preventDefault(),d.removeClass(e.ngFileDragOverClass||"dragover");var g,h=[],i=a.dataTransfer.files;if(null!=i)for(g=0;g<i.length;g++)h.push(i.item(g));c(function(){f(b,{$files:h,$event:a})})},!1)}}}])}();

@ -0,0 +1,21 @@
/*!
* This folder contains updated PatternFly4 icons (version 2020.13).
* After the PF4 transition is finished this folder will be deleted.
*/
@font-face {
font-family: "pficon-tmp";
src: url("./pficon.woff2") format("woff2"), url("./pficon.woff") format("woff"); }
.pf-icon-openshift:before {
font-family: "pficon-tmp";
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-style: normal;
font-variant: normal;
font-weight: normal;
text-decoration: none;
text-transform: none; }
.pf-icon-openshift:before {
content: ""; }

Το δυαδικό αρχείο δεν εμφανίζεται.

Το δυαδικό αρχείο δεν εμφανίζεται.

1560
themes/hellug-keycloak/common/resources/package-lock.json δημιουργημένο Κανονικό αρχείο

Το diff αρχείου καταστέλλεται επειδή είναι πολύ μεγάλο Φόρτωση διαφορών

29
themes/hellug-keycloak/common/resources/package.json Κανονικό αρχείο

@ -0,0 +1,29 @@
{
"name": "keycloak-npm-dependencies",
"version": "1.0.0",
"description": "Keycloak NPM Dependencies",
"license": "Apache-2.0",
"repository": "https://github.com/keycloak/keycloak",
"dependencies": {
"angular": "1.8.3",
"angular-cookies": "1.8.3",
"angular-loader": "1.8.3",
"angular-resource": "1.8.3",
"angular-route": "1.8.3",
"angular-sanitize": "1.8.3",
"angular-translate": "2.19.0",
"angular-translate-loader-url": "2.19.0",
"angular-treeview": "0.1.5",
"angular-ui-select2": "0.0.5",
"autofill-event": "0.0.1",
"bootstrap": "3.4.1",
"filesaver": "0.0.13",
"font-awesome": "4.7.0",
"jquery": "3.6.1",
"ng-file-upload": "12.2.13",
"patternfly": "3.59.5",
"rcue": "3.48.1",
"select2": "3.5.1",
"text-security": "3.2.1"
}
}

@ -0,0 +1,53 @@
# encoding: UTF-8
requiredAction.terms_and_conditions=Όροι και Συνθήκες
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Δημιουργία Κωδικών Ανάκτησης
requiredAction.VERIFY_EMAIL=Επιβεβαίωση Email
requiredAction.UPDATE_PROFILE=Ενημέρωση Προφίλ
requiredAction.UPDATE_PASSWORD=Ενημέρωση Κωδικού Πρόσβασης
requiredAction.CONFIGURE_TOTP=Ρύθμιση OTP
executeActionsBodyHtml=<p>Ο διαχειριστής σας ζητάει να ενημερώστε το λογαριασμός σας στο {2} με το να κάνετε την/τις ακόλουθες ενέργεια/ες:{3}. Πατήστε το σύνδεσμο παρακάτω για να ξεκινήσετε τη διαδικασία.</p><p><a href="{0}">Σύνδεσμος για ενημέρωση λογαριασμού</a></p><p>Αυτός ο σύνδεσμος θα λήξει σε {4}.</p><p>Αν δεν έχετε ενημερωθεί ότι ο διαχειριστής ζήτησε αυτήν την ενημέρωση, τότε απλώς αγνοήστε αυτό το μήνυμα και δεν θα αλλάξει τίποτα.</p>
executeActionsBody=Ο διαχειριστής σας ζητάει να ενημερώστε το λογαριασμός σας στο {2} με το να κάνετε την/τις ακόλουθες ενέργεια/ες:{3}. Πατήστε το σύνδεσμο παρακάτω για να ξεκινήσετε τη διαδικασία.\n\n{0}\n\nΑυτός ο σύνδεσμος θα λήξει σε {4}.\n\nΑν δεν έχετε ενημερωθεί ότι ο διαχειριστής ζήτησε αυτήν την ενημέρωση, τότε απλώς αγνοήστε αυτό το μήνυμα και δεν θα αλλάξει τίποτα.
passwordResetBodyHtml=<p>Κάποιος ζήτησε να αλλάξει τα διαπιστευτήρια του λογαριασμού σας στο {2}. Αν είσαστε εσείς, πατήστε το σύνδεσμο παρακάτω για να τα αλλάξετε.</p><p><a href="{0}">Σύνδεσμος για να αλλάξετε τα διαπιστευτήρια</a></p><p>Αυτός ο σύνδεσμος και κωδικός θα λήξει σε {3}.</p><p>Αν δεν θέλετε να αλλάξετε τα διαπιστευτήρια σας, τότε αγνοήστε αυτό το μήνυμα και δε θα αλλάξει τίποτα.</p>
passwordResetBody=Κάποιος ζήτησε να αλλάξει τα διαπιστευτήρια του λογαριασμού σας στο {2}. Αν είσαστε εσείς, πατήστε το σύνδεσμο παρακάτω για να τα αλλάξετε.\n\n{0}\n\nΑυτός ο σύνδεσμος και κωδικός θα λήξει σε {3}.\n\nΑν δεν θέλετε να αλλάξετε τα διαπιστευτήρια σας, τότε αγνοήστε αυτό το μήνυμα και δε θα αλλάξει τίποτα.
identityProviderLinkBodyHtml=<p>Κάποιος θέλει να συνδέσει το λογαριασμό σας στο <b>{1}</b> με ένα λογαριασμό του χρήστη {2} στο <b>{0}</b>. Αν είσαστε εσείς, πατήστε το σύνδεσμο παρακάτω για να συνδεθούν οι λογαριασμοί </p><p><a href="{3}">Σύνδεσμος για σύνδεση λογαριασμών</a></p><p>Αυτός ο σύνδεσμος θα λήξει σε {5}.</p><p>Αν δεν θέλετε να συνδέσετε το λογαριασμό, τότε αγνοήστε αυτό το μήνυμα. Αν συνδεθούν οι λογαριασμοί τότε θα μπορεί να γίνει είσοδος στο {1} μέσω του {0}.</p>
identityProviderLinkBody=Κάποιος θέλει να συνδέσει το λογαριασμό σας στο "{1}" με ένα λογαριασμό του χρήστη {2} στο "{0}". Αν είσαστε εσείς, πατήστε το σύνδεσμο παρακάτω για να συνδεθούν οι λογαριασμοί\n\n{3}\n\nΑυτός ο σύνδεσμος θα λήξει σε {5}.\n\nΑν δεν θέλετε να συνδέσετε το λογαριασμό, τότε αγνοήστε αυτό το μήνυμα. Αν συνδεθούν οι λογαριασμοί τότε θα μπορεί να γίνει είσοδος στο {1} μέσω του {0}.
emailUpdateConfirmationBodyHtml=<p>Για να ενημερώσετε το λογαριασμό σας {2} με διεύθυνση email {1}, πατήστε το σύνδεσμο παρακάτω </p><p><a href="{0}">{0}</a></p><p>Ο σύνδεσμος θα λήξει σε {3}.</p><p>Αν δεν θέλετε να προχωρήσετε με αυτή την αλλαγή, τότε αγνοήστε αυτό το μήνυμα.</p>
emailUpdateConfirmationBody=Για να ενημερώσετε το λογαριασμό σας {2} με διεύθυνση email {1}, πατήστε το σύνδεσμο παρακάτω\n\n{0}\n\nΟ σύνδεσμος θα λήξει σε {3}.\n\nΑν δεν θέλετε να προχωρήσετε με αυτή την αλλαγή, τότε αγνοήστε αυτό το μήνυμα.
emailVerificationBodyCode=Παρακαλώ επιβεβαιώστε τη διεύθυνση email σας, εισάγοντας το παρακάτω κωδικό.\n\n{0}\n\n.
emailVerificationBodyCodeHtml=<p>Παρακαλώ επιβεβαιώστε τη διεύθυνση email σας, εισάγοντας το παρακάτω κωδικό.</p><p><b>{0}</b></p>
linkExpirationFormatter.timePeriodUnit.days.1=μέρα
linkExpirationFormatter.timePeriodUnit.days=μέρες
linkExpirationFormatter.timePeriodUnit.hours.1=ώρα
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
linkExpirationFormatter.timePeriodUnit.hours=ώρες
linkExpirationFormatter.timePeriodUnit.minutes.1=λεπτό
linkExpirationFormatter.timePeriodUnit.minutes=λεπτά
linkExpirationFormatter.timePeriodUnit.seconds.1=δευτερόλεπτο
# units for link expiration timeout formatting
linkExpirationFormatter.timePeriodUnit.seconds=δευτερόλεπτα
eventUpdateTotpBodyHtml=<p>Η πρόσβαση μέσω OTP ενημερώθηκε στο λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.</p>
eventUpdateTotpBody=Η πρόσβαση μέσω OTP ενημερώθηκε στο λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.
eventUpdateTotpSubject=Ενημέρωση OTP
eventUpdatePasswordBodyHtml=<p>Ο κωδικός πρόσβασης σας άλλαξε στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.</p>
eventUpdatePasswordBody=Ο κωδικός πρόσβασης σας άλλαξε στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.
eventUpdatePasswordSubject=Ενημέρωση κωδικού πρόσβασης
eventRemoveTotpBodyHtml=<p>Η πρόσβαση μέσω OTP αφαιρέθηκε από το λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.</p>
eventRemoveTotpBody=Η πρόσβαση μέσω OTP αφαιρέθηκε από το λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.
eventRemoveTotpSubject=Αφαίρεση OTP
eventLoginErrorBodyHtml=<p>Ανιχνεύθηκε μία αποτυχημένη προσπάθεια εισόδου στο λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.</p>
eventLoginErrorBody=Ανιχνεύθηκε μία αποτυχημένη προσπάθεια εισόδου στο λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.
eventLoginErrorSubject=Σφάλμα εισόδου
executeActionsSubject=Ενημέρωση Του Λογαριασμού Σας
passwordResetSubject=Αλλαγή κωδικού πρόσβασης
identityProviderLinkSubject=Σύνδεση {0}
emailTestBodyHtml=<p>Αυτό είναι ένα δοκιμαστικό μήνυμα</p>
emailTestBody=Αυτό είναι ένα δοκιμαστικό μήνυμα
emailTestSubject=[KEYCLOAK] - Δοκιμαστικό μήνυμα SMTP
emailUpdateConfirmationSubject=Επιβεβαίωση νέου email
emailVerificationBodyHtml=<p>Κάποιος δημιούργησε ένα λογαριασμό {2} με αυτή τη διεύθυνση email. Αν είσαστε εσείς, τότε πατήστε το σύνδεσμο παρακάτω για να επιβεβαιώσετε το email σας</p><p><a href="{0}">Σύνδεσμος για επιβεβαίωση διεύθυνσης email</a></p><p>Αυτός ο σύνδεσμος θα λήξει σε {3}.</p><p>Αν δεν δημιουργήσατε το λογαριασμό τότε απλώς αγνοήστε αυτό το μήνυμα.</p>
emailVerificationBody=Κάποιος δημιούργησε ένα {2} λογαριασμό με αυτή τη διεύθυνση email. Αν είσασταν εσείς, τότε πατήστε το παρακάτω σύνδεσμο για να επιβεβαιώσετε τη διεύθυνση email σας\n\n{0}\n\nΑυτός ο σύνδεσμος θα λήξει μέσα σε {3}.\n\nΑν δεν δημιουργήσατε εσείς αυτό το λογαριασμό, τότε απλώς αγνοήστε αυτό το μήνυμα.
emailVerificationSubject=Επιβεβαίωση email

57
themes/hellug-keycloak/email/messages/messages_en.properties Εκτελέσιμο αρχείο → Κανονικό αρχείο

@ -1,55 +1,2 @@
emailVerificationSubject=Verify email
emailVerificationBody=Someone has created a {2} account with this email address. If this was you, click the link below to verify your email address\n\n{0}\n\nThis link will expire within {3}.\n\nIf you didn''t create this account, just ignore this message.
emailVerificationBodyHtml=<p>Someone has created a {2} account with this email address. If this was you, click the link below to verify your email address</p><p><a href="{0}">Link to e-mail address verification</a></p><p>This link will expire within {3}.</p><p>If you didn''t create this account, just ignore this message.</p>
emailUpdateConfirmationSubject=Verify new email
emailUpdateConfirmationBody=To update your {2} account with email address {1}, click the link below\n\n{0}\n\nThis link will expire within {3}.\n\nIf you don''t want to proceed with this modification, just ignore this message.
emailUpdateConfirmationBodyHtml=<p>To update your {2} account with email address {1}, click the link below</p><p><a href="{0}">{0}</a></p><p>This link will expire within {3}.</p><p>If you don''t want to proceed with this modification, just ignore this message.</p>
emailTestSubject=[KEYCLOAK] - SMTP test message
emailTestBody=This is a test message
emailTestBodyHtml=<p>This is a test message</p>
identityProviderLinkSubject=Link {0}
identityProviderLinkBody=Someone wants to link your "{1}" account with "{0}" account of user {2} . If this was you, click the link below to link accounts\n\n{3}\n\nThis link will expire within {5}.\n\nIf you don''t want to link account, just ignore this message. If you link accounts, you will be able to login to {1} through {0}.
identityProviderLinkBodyHtml=<p>Someone wants to link your <b>{1}</b> account with <b>{0}</b> account of user {2}. If this was you, click the link below to link accounts</p><p><a href="{3}">Link to confirm account linking</a></p><p>This link will expire within {5}.</p><p>If you don''t want to link account, just ignore this message. If you link accounts, you will be able to login to {1} through {0}.</p>
passwordResetSubject=Reset password
passwordResetBody=Someone just requested to change your {2} account''s credentials. If this was you, click on the link below to reset them.\n\n{0}\n\nThis link and code will expire within {3}.\n\nIf you don''t want to reset your credentials, just ignore this message and nothing will be changed.
passwordResetBodyHtml=<p>Someone just requested to change your {2} account''s credentials. If this was you, click on the link below to reset them.</p><p><a href="{0}">Link to reset credentials</a></p><p>This link will expire within {3}.</p><p>If you don''t want to reset your credentials, just ignore this message and nothing will be changed.</p>
executeActionsSubject=Update Your Account
executeActionsBody=Your administrator has just requested that you update your {2} account by performing the following action(s): {3}. Click on the link below to start this process.\n\n{0}\n\nThis link will expire within {4}.\n\nIf you are unaware that your administrator has requested this, just ignore this message and nothing will be changed.
executeActionsBodyHtml=<p>Your administrator has just requested that you update your {2} account by performing the following action(s): {3}. Click on the link below to start this process.</p><p><a href="{0}">Link to account update</a></p><p>This link will expire within {4}.</p><p>If you are unaware that your administrator has requested this, just ignore this message and nothing will be changed.</p>
eventLoginErrorSubject=Login error
eventLoginErrorBody=A failed login attempt was detected to your account on {0} from {1}. If this was not you, please contact an administrator.
eventLoginErrorBodyHtml=<p>A failed login attempt was detected to your account on {0} from {1}. If this was not you, please contact an administrator.</p>
eventRemoveTotpSubject=Remove OTP
eventRemoveTotpBody=OTP was removed from your account on {0} from {1}. If this was not you, please contact an administrator.
eventRemoveTotpBodyHtml=<p>OTP was removed from your account on {0} from {1}. If this was not you, please contact an administrator.</p>
eventUpdatePasswordSubject=Update password
eventUpdatePasswordBody=Your password was changed on {0} from {1}. If this was not you, please contact an administrator.
eventUpdatePasswordBodyHtml=<p>Your password was changed on {0} from {1}. If this was not you, please contact an administrator.</p>
eventUpdateTotpSubject=Update OTP
eventUpdateTotpBody=OTP was updated for your account on {0} from {1}. If this was not you, please contact an administrator.
eventUpdateTotpBodyHtml=<p>OTP was updated for your account on {0} from {1}. If this was not you, please contact an administrator.</p>
requiredAction.CONFIGURE_TOTP=Configure OTP
requiredAction.terms_and_conditions=Terms and Conditions
requiredAction.UPDATE_PASSWORD=Update Password
requiredAction.UPDATE_PROFILE=Update Profile
requiredAction.VERIFY_EMAIL=Verify Email
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generate Recovery Codes
# units for link expiration timeout formatting
linkExpirationFormatter.timePeriodUnit.seconds=seconds
linkExpirationFormatter.timePeriodUnit.seconds.1=second
linkExpirationFormatter.timePeriodUnit.minutes=minutes
linkExpirationFormatter.timePeriodUnit.minutes.1=minute
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
linkExpirationFormatter.timePeriodUnit.hours=hours
linkExpirationFormatter.timePeriodUnit.hours.1=hour
linkExpirationFormatter.timePeriodUnit.days=days
linkExpirationFormatter.timePeriodUnit.days.1=day
emailVerificationBodyCode=Please verify your email address by entering in the following code.\n\n{0}\n\n.
emailVerificationBodyCodeHtml=<p>Please verify your email address by entering in the following code.</p><p><b>{0}</b></p>
# encoding: UTF-8
locale_el=Ελληνικά

@ -1 +1,2 @@
parent=base
parent=base
locales=en,el

@ -0,0 +1,468 @@
# encoding: UTF-8
doLogIn=Είσοδος
doRegister=Εγγραφή
doCancel=Ακύρωση
doSubmit=Εφαρμογή
doBack=Επιστροφή
doYes=Ναι
doNo=Όχι
doContinue=Συνέχεια
doIgnore=Αγνόηση
doAccept=Αποδοχή
doDecline=Απόρριψη
doForgotPassword=Ξεχάσατε το κωδικό;
doClickHere=Πατήστε Εδώ
doImpersonate=Προσποίηση
doTryAgain=Δοκιμή Ξανά
doTryAnotherWay=Δοκιμή με άλλη μέθοδο
doConfirmDelete=Επιβεβαίωση διαγραφής
errorDeletingAccount=Σφάλμα κατά τη διαγραφή του λογαριασμού
deletingAccountForbidden=Δεν έχετε το δικαίωμα να διαγράψετε τον λογαριασμό σας, επικοινωνήστε με τον διαχειριστή.
kerberosNotConfigured=Το Kerberos Δεν Έχει Ρυθμιστεί
kerberosNotConfiguredTitle=Το Kerberos Δεν Έχει Ρυθμιστεί
bypassKerberosDetail=Είτε δεν έχετε συνδεθεί μέσω Kerberos ή ο περιηγητής σας δεν έχει ρυθμιστεί για είσοδο με Kerberos. Πατήστε για να συνεχίσετε την είσοδο με άλλες μεθόδους
kerberosNotSetUp=Το Kerberos δεν έχει ρυθμιστεί. Δεν μπορείτε να εισέλθετε.
registerTitle=Εγγραφή
loginAccountTitle=Είσοδος στο λογαριασμό σας
loginTitle=Είσοδος στο {0}
loginTitleHtml={0}
impersonateTitle={0} Προσποίηση Χρήστη
impersonateTitleHtml=<strong>{0}</strong> Προσποίηση Χρήστη
realmChoice=Περιοχή
unknownUser=Άγνωστος χρήστης
loginTotpTitle=Ρύθμιση Authenticator Κινητού
loginProfileTitle=Ενημέρωση Πληροφοριών Λογαριασμού
loginIdpReviewProfileTitle=Ενημέρωση Πληροφοριών Λογαριασμού
loginTimeout=Η προσπάθεια εισόδου σας έληξε. Είσοδος από την αρχή.
reauthenticate=Για να συνεχίσετε παρακαλώ για αυθεντικοποίηση ξανά
oauthGrantTitle=Δώστε Πρόσβαση στο {0}
oauthGrantTitleHtml={0}
oauthGrantInformation=Βεβαιωθείτε ότι εμπιστεύεστε το {0} μαθαίνοντας πως το {0} θα χειρίζεται τα δεδομένα σας.
oauthGrantReview=Μπορείτε να ελέγξετε τα
oauthGrantTos=όροι της υπηρεσίας.
oauthGrantPolicy=πολιτική ιδιωτικότητας.
errorTitle=Ζητάμε συγνώμη...
errorTitleHtml=Ζητάμε <strong>συγνώμη</strong> ...
emailVerifyTitle=Πιστοποίηση Email
emailForgotTitle=Ξεχάσατε το Κωδικό;
updateEmailTitle=Ενημέρωση email
emailUpdateConfirmationSentTitle=Στάλθηκε email επιβεβαίωσης
emailUpdateConfirmationSent=Ένα email επιβεβαίωσης στάλθηκε στο {0}. Ακολουθήστε τις οδηγίες εκεί, ώστε να ολοκληρώσετε την ενημέρωση του email.
emailUpdatedTitle=Ενημέρωση email
emailUpdated=Το email του λογαριασμού άλλαξε επιτυχώς σε {0}.
updatePasswordTitle=Ενημέρωση κωδικού
codeSuccessTitle=Επιτυχής κωδικός
codeErrorTitle=Αριθμός σφάλματος\: {0}
displayUnsupported=Μη υποστηριζόμενος τύπος οθόνης
browserRequired=Απαιτείται browser για την είσοδο
browserContinue=Απαιτείται browser για την ολοκλήρωση της εισόδου
browserContinuePrompt=Εκκίνηση browser και συνέχεια στην είσοδο [ν/ο]:
browserContinueAnswer=ν
# Transports
usb=USB
nfc=NFC
bluetooth=Bluetooth
internal=Εσωτερικό
unknown=Άγνωστο
termsTitle=Όροι και Συνθήκες
termsText=<p>Δεν έχουν οριστεί Όροι και Συνθήκες</p>
termsPlainText=Δεν έχουν οριστεί Όροι και Συνθήκες.
recaptchaFailed=Άκυρο Recaptcha
recaptchaNotConfigured=Απαιτείται Recaptcha, αλλά δεν έχει ρυθμιστεί
consentDenied=Άρνηση Συναίνεσης.
noAccount=Νέος χρήστης;
username=Όνομα χρήστη
usernameOrEmail=Όνομα χρήστη ή email
firstName=Όνομα
givenName=Όνομα
fullName=Ονοματεπώνυμο
lastName=Επώνυμο
familyName=Επώνυμο
email=Email
password=Κωδικός Πρόσβασης
passwordConfirm=Επιβεβαίωση κωδικού
passwordNew=Νέος Κωδικός Πρόσβασης
passwordNewConfirm=Επιβεβαίωση Νέου Κωδικού
rememberMe=Να με θυμάσαι
authenticatorCode=Κωδικός μίας-χρήσης
address=Διεύθυνση
street=Οδός
locality=Πόλη ή Δήμος
region=Νομός ή Περιφέρεια
postal_code=Ταχυδρομικός Κώδικας
country=Χώρα
emailVerified=Επιβεβαιωμένο Email
website=Ιστοσελίδα
phoneNumber=Τηλέφωνο
phoneNumberVerified=Επιβεβαιωμένο τηλέφωνο
gender=Φύλο
birthday=Ημερομηνία γέννησης
zoneinfo=Ζώνη ώρας
gssDelegationCredential=GSS διαπιστευτήρια εξουσιοδότησης
logoutOtherSessions=Έξοδος από άλλες συσκευές
profileScopeConsentText=Προφίλ χρήστη
emailScopeConsentText=Διεύθυνση email
addressScopeConsentText=Διεύθυνση
phoneScopeConsentText=Τηλέφωνο
offlineAccessScopeConsentText=Πρόσβαση εκτός-σύνδεσης
samlRoleListScopeConsentText=Οι Ρόλοι Μου
rolesScopeConsentText=Ρόλοι χρήστη
restartLoginTooltip=Επανεκκίνηση Εισόδου
loginTotpIntro=Πρέπει να ορίσετε μια γεννήτρια Κωδικών Μίας Χρήσης για να έχετε πρόσβαση στο λογαριασμό
loginTotpStep1=Εγκαταστήστε μία από τις ακόλουθες εφαρμογές στο κινητό σας:
loginTotpStep2=Ανοίξτε την εφαρμογή και σαρώστε το Κώδικα QR:
loginTotpStep3=Εισάγετε το κωδικό μίας-χρήσης όπως παρέχεται από την εφαρμογή και πατήστε το Υποβολή για να ολοκληρώσετε.
loginTotpStep3DeviceName=Παρέχετε ένα Όνομα Συσκευής για ευκολία διαχείρισης των συσκευών OTP.
loginTotpManualStep2=Ανοίξτε την εφαρμογή και εισάγετε το μυστικό κλειδί:
loginTotpManualStep3=Χρησιμοποιείστε τις παρακάτω τιμές ρυθμίσεων αν η εφαρμογή το υποστηρίζει:
loginTotpUnableToScan=Πρόβλημα στη σάρωση;
loginTotpScanBarcode=Σάρωση του QR;
loginCredential=Διαπιστευτήρια
loginOtpOneTime=Κωδικός μίας-χρήσης
loginTotpType=Τύπος
loginTotpAlgorithm=Αλγόριθμος
loginTotpDigits=Ψηφία
loginTotpInterval=Διάστημα
loginTotpCounter=Μετρητής
loginTotpDeviceName=Όνομα Συσκευής
loginTotp.totp=Χρονικός
loginTotp.hotp=Σειριακός
totpAppFreeOTPName=FreeOTP
totpAppGoogleName=Google Authenticator
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
loginChooseAuthenticator=Επιλέξτε μέθοδο εισόδου
oauthGrantRequest=Παραχωρείτε αυτά τα δικαιώματα πρόσβασης;
inResource=σε
oauth2DeviceVerificationTitle=Σύνδεση Συσκευής
verifyOAuth2DeviceUserCode=Εισάγετε τον κωδικό που παρέχεται από την συσκευή και πατήστε Υποβολή
oauth2DeviceInvalidUserCodeMessage=Άκυρος κωδικός, παρακαλώ προσπαθήστε ξανά.
oauth2DeviceExpiredUserCodeMessage=Ο κωδικός έχει λήξει. Παρακαλώ πηγαίνετε πίσω στη συσκευή σας και προσπαθήστε να συνδεθείτε ξανά.
oauth2DeviceVerificationCompleteHeader=Επιτυχής σύνδεση συσκευής
oauth2DeviceVerificationCompleteMessage=Μπορείτε να κλείσετε το παράθυρο του browser και να επιστρέψετε στη συσκευή σας.
oauth2DeviceVerificationFailedHeader=Η σύνδεση της συσκευής απέτυχε
oauth2DeviceVerificationFailedMessage=Μπορείτε να κλείσετε αυτόν τον περιηγητή και να πάτε πίσω στη συσκευή σας και να πρσπαθήσετε να συνδεθείτε ξανά.
oauth2DeviceConsentDeniedMessage=Δεν δώθηκε συγκατάθεση για σύνδεση στη συσκευή.
oauth2DeviceAuthorizationGrantDisabledMessage=Ο πελάτης δεν επιτρέπεται να ξεκινήσει το OAuth 2.0 για τη χορήγηση εξουσιοδότησης της συσκευής. Αυτή η ροή είναι απενεργοποιημένη για τον πελάτη.
emailVerifyInstruction1=Σας στάλθηκε ένα email με οδηγίες για το πως να επιβεβαιώσετε τη διεύθυνση σας {0}.
emailVerifyInstruction2=Δεν έχετε λάβει έναν κωδικό επαλήθευσης στο email σας;
emailVerifyInstruction3=να ξανασταλεί το email.
emailLinkIdpTitle=Σύνδεση {0}
emailLinkIdp1=Στάλθηκε ένα email με οδηγίες για να συνδέσετε το {0} λογαριασμό {1} με το {2} λογαριασμό.
emailLinkIdp2=Δεν έχετε λάβει έναν κωδικό επαλήθευσης στο email σας;
emailLinkIdp3=να ξανασταλεί το email.
emailLinkIdp4=Αν έχετε ήδη επαλυθεύσει το email σε έναν διαφορετικό περιηγητή
emailLinkIdp5=για συνέχεια.
backToLogin=&laquo; Επιστροφή στην Είσοδο
emailInstruction=Εισάγετε το όνομα χρήστη ή τη διεύθυνση email και θα σας σταλούν οδηγίες για το πως να δημιουργήσετε ένα νέο κωδικό.
emailInstructionUsername=Εισάγετε το όνομα χρήστη και θα σας σταλούν οδηγίες για το πως να δημιουργήσετε ένα νέο κωδικό.
copyCodeInstruction=Παρακαλώ αντιγράψτε αυτό το κωδικό στην εφαρμογή σας:
pageExpiredTitle=Η σελίδα έληξε
pageExpiredMsg1=Για επανεκκίνηση της εισόδου
pageExpiredMsg2=Για συνέχεια της εισόδου
personalInfo=Προσωπικά Στοιχεία:
role_admin=Διαχειριστής
role_realm-admin=Διαχειριστή Τόπου
role_create-realm=Δημιουργία τομέα
role_create-client=Δημιουργία πελάτη
role_view-realm=Εμφάνιση τομέα
role_view-users=Εμφάνιση χρηστών
role_view-applications=Εμφάνιση εφαρμογών
role_view-clients=Εμφάνιση πελατών
role_view-events=Εμφάνιση συμβάντων
role_view-identity-providers=Εμφάνιση παρόχων ταυτότητας
role_manage-realm=Διαχείριση τομέα
role_manage-users=Διαχείριση χρηστών
role_manage-applications=Διαχείριση εφαρμογών
role_manage-identity-providers=Διαχείριση παρόχων ταυτότητας
role_manage-clients=Διαχείριση πελατών
role_manage-events=Διαχείριση συμβάντων
role_view-profile=Εμφάνιση προφίλ
role_manage-account=Διαχείριση λογαριασμού
role_manage-account-links=Διαχείριση συνδέσεων λογαριασμού
role_read-token=Ανάγνωση διακριτικού
role_offline-access=Πρόσβαση εκτός-σύνδεσης
client_account=Λογαριασμός
client_account-console=Κονσόλα Λογαριασμού
client_security-admin-console=Κονσόλα Διαχειριστή Ασφάλειας
client_admin-cli=CLI Διαχείρισης
client_realm-management=Διαχείριση Τομέα
client_broker=Μεσολαβητής
requiredFields=Απαιτούμενα πεδία
invalidUserMessage=Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης.
invalidUsernameMessage=Μη έγκυρο όνομα χρήστη.
invalidUsernameOrEmailMessage=Μη έγκυρο όνομα χρήστη ή email.
invalidPasswordMessage=Μη έγκυρος κωδικός πρόσβασης.
invalidEmailMessage=Μη έγκυρη διεύθυνση email.
accountDisabledMessage=Ο λογαριασμός έχει απενεργοποιηθεί, επικοινωνήστε με το διαχειριστή.
accountTemporarilyDisabledMessage=Ο λογαριασμός έχει απενεργοποιηθεί προσωρινά, επικοινωνήστε με το διαχειριστή ή δοκιμάστε αργότερα.
expiredCodeMessage=Λήξη χρόνου σύνδεσης. Παρακαλώ συνδεθείτε ξανά.
expiredActionMessage=Η ενέργεια έληξε. Προχωρείστε τώρα με σύνδεση.
expiredActionTokenNoSessionMessage=Η ενέργεια έληξε.
expiredActionTokenSessionExistsMessage=Η ενέργεια έλειξε. Παρακαλώ αρχίστε ξανά.
sessionLimitExceeded=Πάρα πολλές συνεδρίες
missingFirstNameMessage=Παρακαλώ ορίστε ένα όνομα.
missingLastNameMessage=Παρακαλώ ορίστε επώνυμο.
missingEmailMessage=Παρακαλώ ορίστε email.
missingUsernameMessage=Παρακαλώ ορίστε όνομα χρήστη.
missingPasswordMessage=Παρακαλώ ορίστε κωδικό πρόσβασης.
missingTotpMessage=Παρακαλώ εισάγετε ένα κωδικό από εφαρμογή ταυτοποίησης.
missingTotpDeviceNameMessage=Παρακαλώ ορίστε όνομα συσκευής.
notMatchPasswordMessage=Οι κωδικοί πρόσβασης δε ταιριάζουν.
error-invalid-value=Μη έγκυρη τιμή.
error-invalid-blank=Παρακαλώ ορίστε τιμή.
error-empty=Παρακαλώ ορίστε τιμή.
error-invalid-length=Το μήκος πρέπει να είναι μεταξύ {1} και {2}.
error-invalid-length-too-short=Ελάχιστο μήκος {1}.
error-invalid-length-too-long=Μέγιστο μήκος {2}.
error-invalid-email=Μη έγκυρη διεύθυνση email.
error-invalid-number=Μη έγκυρος αριθμός.
error-number-out-of-range=Ο αριθμός πρέπει να είναι μεταξύ {1} και {2}.
error-number-out-of-range-too-small=Ο αριθμός πρέπει να έχει ελάχιστη τιμή {1}.
error-number-out-of-range-too-big=Ο αριθμός πρέπει να έχει μέγιστη τιμή {1}.
error-pattern-no-match=Μη έγκυρη τιμή.
error-invalid-uri=Μη έγκυρο URL.
error-invalid-uri-scheme=Μη έγκυρο σχήμα URL.
error-invalid-uri-fragment=Μη έγκυρο κομμάτι URL.
error-user-attribute-required=Παρακαλώ ορίστε αυτό το πεδίο.
error-invalid-date=Μη έγκυρη ημερομηνία.
error-user-attribute-read-only=Αυτό το πεδίο είναι για ανάγνωση μόνο.
error-username-invalid-character=Η τιμή περιέχει μη έγκυρους χαρακτήρες.
error-person-name-invalid-character=Η τιμή περιέχει μη έγκυρο χαρακτήρα.
invalidPasswordExistingMessage=Μη έγκυρος υπάρχοντας κωδικός πρόσβασης.
invalidPasswordBlacklistedMessage=Μη έγκυρος κωδικός πρόσβασης: ο κωδικός πρόσβασης είναι απαγορευμένος.
invalidPasswordConfirmMessage=Η επιβεβαίωση του κωδικού πρόσβασης δε ταιριάζει.
invalidTotpMessage=Μη έγκυρος κωδικός μίας χρήσης.
usernameExistsMessage=Το όνομα χρήστη υπάρχει ήδη.
emailExistsMessage=Το email υπάρχει ήδη.
federatedIdentityExistsMessage=Ο χρήστης με {0} {1} υπάρχει ήδη. Παρακαλώ συνδεθείτε στη διαχείριση λογαριασμού για να συνδέσετε το λογαριασμό.
federatedIdentityUnavailableMessage=Δεν υπάρχει ο χρήστης {0} που συνδέθηκε με το πάροχο ταυτότητας {1} . Επικοινωνήστε με το διαχειριστή.
confirmLinkIdpTitle=Ο λογαριασμός υπάρχει ήδη
federatedIdentityConfirmLinkMessage=Ο χρήστης {0} {1} υπάρχει ήδη. Σίγουρα να συνεχίσω;
federatedIdentityConfirmReauthenticateMessage=Αυθεντικοποίηση για σύνδεση του λογαριασμού σας με το {0}
nestedFirstBrokerFlowMessage=Ο {0} χρήστης {1} δεν έχει συνδεθεί με κάποιο γνωστό χρήστη.
confirmLinkIdpReviewProfile=Εξέταση προφίλ
confirmLinkIdpContinue=Προσθήκη σε υπάρχων λογαριασμό
configureTotpMessage=Ρυθμίστε μια Εφαρμογή Ταυτοποίησης στο κινητό σας για να ενεργοποιήσετε το λογαριασμό.
configureBackupCodesMessage=Πρέπει να ορίσετε Κωδικούς Ασφαλείας για να ενεργοποιήσετε το λογαριασμό σας.
updateProfileMessage=Πρέπει να ενημερώσετε το προφίλ χρήστη σας για να ενεργοποιήσετε το λογαριασμό σας.
updatePasswordMessage=Πρέπει να αλλάξετε το κωδικό πρόσβασης για να ενεργοποιήσετε το λογαριασμό σας.
updateEmailMessage=Πρέπει να ενημερώσετε το email σας για να ενεργοποιήσετε το λογαριασμός σας.
resetPasswordMessage=Πρέπει να αλλάξετε το κωδικό πρόσβασης σας.
verifyEmailMessage=Πρέπει να επιβεβαιώσετε το email σας για να ενεργοποιήσετε το λογαριασμό σας.
linkIdpMessage=Πρέπει να επιβεβαιώσετε το email σας για να συνδέσετε το λογαριασμό σας με το {0}.
emailSentMessage=Θα λάβετε ένα email σύντομα με επιπλέων πληροφορίες.
emailSendErrorMessage=Αποτυχία αποστολής email, παρακαλώ δοκιμάστε αργότερα.
accountUpdatedMessage=Ο λογαριασμός σας έχει ενημερωθεί.
accountPasswordUpdatedMessage=Ο κωδικός πρόσβασης ενημερώθηκε.
delegationCompleteHeader=Επιτυχής Είσοδος
delegationCompleteMessage=Μπορείτε να κλείστε αυτό το παράθυρο του browser και να επιστρέψετε στην εφαρμογή κονσόλας.
delegationFailedHeader=Αποτυχία Εισόδου
delegationFailedMessage=Μπορείτε να κλείσετε αυτό το παράθυρο και να επιστρέψετε στην εφαρμογή κονσόλας σας και να δοκιμάσετε να μπείτε ξανά.
noAccessMessage=Καμία πρόσβαση
invalidPasswordMinLengthMessage=Μη έγκυρος κωδικός πρόσβασης: ελάχιστο μήκος {0}.
invalidPasswordMaxLengthMessage=Μη έγκυρος κωδικός πρόσβασης: μέγιστο μήκος {0}.
invalidPasswordMinDigitsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} ψηφία.
invalidPasswordMinLowerCaseCharsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} πεζούς χαρακτήρες.
invalidPasswordMinUpperCaseCharsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} κεφαλαίους χαρακτήρες.
invalidPasswordMinSpecialCharsMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να περιέχει τουλάχιστον {0} ειδικούς χαρακτήρες.
invalidPasswordNotUsernameMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να μην είναι ίδιο με το όνομα χρήστη.
invalidPasswordNotEmailMessage=Μη έγκυρος κωδικός πρόσβασης: πρέπει να μην είναι ίδιο με το email.
invalidPasswordRegexPatternMessage=Μη έγκυρος κωδικός πρόσβασης: δε ταιριάζει με τα μοτίβα regex.
invalidPasswordHistoryMessage=Μη έγκυρος κωδικός πρόσβασης: δε πρέπει να είναι το ίδιο με τους τελευταίους {0} κωδικούς.
invalidPasswordGenericMessage=Μη έγκυρος κωδικός πρόσβασης: ο νέος κωδικός δε συμφωνεί με τις πολιτικές κωδικών.
failedToProcessResponseMessage=Αδυναμία επεξεργασίας της απάντησης
httpsRequiredMessage=Απαιτείται HTTPS
realmNotEnabledMessage=Ο τομέας δεν είναι ενεργός
invalidRequestMessage=Μη Έγκυρη Αίτηση
successLogout=Έχετε αποσυνδεθεί
failedLogout=Αποτυχία αποσύνδεσης
unknownLoginRequesterMessage=Άγνωστος αιτών σύνδεσης
loginRequesterNotEnabledMessage=Δεν έχει ενεργοποιηθεί ο αιτών Σύνδεσης
bearerOnlyMessage=Εφαρμογές τύπου Bearer-only δεν επιτρέπονται να εκκινήσουν είσοδο μέσω browser
standardFlowDisabledMessage=Ο πελάτης δεν επιτρέπεται να ξεκινά είσοδο μέσω browser με το δοθέν response_type. Η πρότυπη ροή έχει απενεργοποιηθεί για αυτό το πελάτη.
implicitFlowDisabledMessage=Ο πελάτης δεν επιτρέπεται να ξεκινά είσοδο μέσω browser με το δοθέν response_type. Η έμμεση ροή έχει απενεργοποιηθεί για αυτό το πελάτη.
invalidRedirectUriMessage=Μη έγκυρο redirect uri
unsupportedNameIdFormatMessage=Μη υποστηριζόμενη NamedIDFormat
invalidRequesterMessage=Μη έγκυρος αιτών
registrationNotAllowedMessage=Η εγγραφή δεν επιτρέπεται
resetCredentialNotAllowedMessage=Η Επαναφορά Διαπιστευτηρίων δεν επιτρέπεται
permissionNotApprovedMessage=Η άδεια δεν εγκρίθηκε.
noRelayStateInResponseMessage=Δεν υπάρχει κατάσταση μεταβίβασης στην απάντηση από το πάροχο ταυτότητας.
insufficientPermissionMessage=Δεν επαρκούν τα δικαιώματα για σύνδεση των ταυτοτήτων.
couldNotProceedWithAuthenticationRequestMessage=Αδυναμία ολοκλήρωσης του ελέγχου ταυτότητας στο πάροχο ταυτότητας.
couldNotObtainTokenMessage=Αδυναμία απόκτησης διακριτικού από το πάροχο ταυτότητας.
unexpectedErrorRetrievingTokenMessage=Απρόσμενο σφάλμα κατά την απόκτηση διακριτικού από το πάροχο ταυτότητας.
unexpectedErrorHandlingResponseMessage=Απρόσμενο σφάλμα κατά το χειρισμό της απάντησης από το πάροχο ταυτότητας.
identityProviderAuthenticationFailedMessage=Η ταυτοποίηση απέτυχε. Αδυναμία ελέγχου της ταυτότητας με το πάροχο ταυτότητας.
couldNotSendAuthenticationRequestMessage=Αδυναμία αποστολής του αιτήματος ελέγχου ταυτότητας στο πάροχο ταυτότητας.
unexpectedErrorHandlingRequestMessage=Απρόσμενο σφάλμα κατά το χειρισμό του αιτήματος ταυτοποποίησης στο πάροχο ταυτότητας.
invalidAccessCodeMessage=Μη έγκυρος κωδικός πρόσβασης.
sessionNotActiveMessage=Η συνεδρία δεν είναι ενεργή.
invalidCodeMessage=Συνέβη ένα σφάλμα, παρακαλώ για επανασύνδεση μέσω της εφαρμογής σας.
cookieNotFoundMessage=Δε βρέθηκε το cookie. Παρακαλώ βεβαιωθείτε ότι τα cookies είναι ενεργά στο browser σας.
insufficientLevelOfAuthentication=Δεν ικανοποιήθηκε το επίπεδο ταυτοποίησης που ζητήθηκε.
identityProviderUnexpectedErrorMessage=Απρόσμενο σφάλμα κατά τη ταυτοποίηση με το πάροχο ταυτότητας
identityProviderMissingStateMessage=Λείπει η παράμετρος state από την απάντηση του παρόχου ταυτότητας.
identityProviderInvalidResponseMessage=Μη έγκυρη απάντηση από το πάροχο ταυτότητας.
identityProviderInvalidSignatureMessage=Μη έγκυρη υπογραφή στην απάντηση από το πάροχο ταυτότητας.
identityProviderNotFoundMessage=Αδυναμία εύρεσης ενός παρόχου ταυτότητας με το αναγνωριστικό.
identityProviderLinkSuccess=Επιβεβαιώσατε το email σας επιτυχώς. Παρακαλώ επιστρέψτε στο αρχικό browser και συνεχίστε εκεί την είσοδο.
staleCodeMessage=Αυτή η σελίδα δεν είναι πια έγκυρη, παρακαλώ επιστρέψτε στην εφαρμογή σας και συνδεθείτε ξανά
realmSupportsNoCredentialsMessage=Ο τομέας δεν υποστηρίζει κανένα τύπο διαπιστευτηρίων.
credentialSetupRequired=Αδυναμία εισόδου, απαιτείται ρύθμιση των διαπιστευτηρίων.
identityProviderNotUniqueMessage=Ο τομέας υποστηρίζει πολλαπλούς παρόχους ταυτότητας. Αδυναμία επιλογής του παρόχου ταυτότητας που θα χρησιμοποιηθεί για τη ταυτοποίηση.
emailVerifiedMessage=Η διεύθυνση email σας έχει επιβεβαιωθεί.
staleEmailVerificationLink=Ο σύνδεσμός που πατήσατε είναι παλιός και δεν είναι έγκυρος πια. Ίσως έχετε ήδη επιβεβαιώσει το email σας.
identityProviderAlreadyLinkedMessage=Η ομόσπονδη ταυτότητα που επιστρέφει το {0} είναι ήδη συνδεδεμένη με ένα άλλο χρήστη.
confirmAccountLinking=Επιβεβαιώστε τη σύνδεση του λογαριασμού {0} στο πάροχο ταυτότητας {1} με το λογαριασμό σας.
confirmEmailAddressVerification=Επιβεβαιώστε την εγκυρότητα της διεύθυνσης email {0}.
confirmExecutionOfActions=Πραγματοποιήστε την ακόλουθη ενέργεια(ες)
locale_ar=\u0639\u0631\u0628\u064A
locale_ca=Catal\u00E0
locale_cs=\u010Ce\u0161tina
locale_da=Dansk
locale_de=Deutsch
locale_en=English
locale_es=Espa\u00F1ol
locale_fr=Fran\u00E7ais
locale_gr=\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC
locale_hu=Magyar
locale_it=Italiano
locale_ja=\u65E5\u672C\u8A9E
locale_lt=Lietuvi\u0173
locale_nl=Nederlands
locale_no=Norsk
locale_pl=Polski
locale_pt_BR=Portugu\u00EAs (Brasil)
locale_pt-BR=Portugu\u00EAs (Brasil)
locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439
locale_sk=Sloven\u010Dina
locale_sv=Svenska
locale_tr=T\u00FCrk\u00E7e
locale_zh-CN=\u4E2D\u6587\u7B80\u4F53
locale_fi=Suomi
backToApplication=&laquo; Επιστροφή στην Εφαρμογή
missingParameterMessage=Λείπουν οι παράμετροι: {0}
clientNotFoundMessage=Ο πελάτης δε βρέθηκε.
clientDisabledMessage=Ο πελάτης απενεργοποιήθηκε.
invalidParameterMessage=Μη έγκυρη παράμετρος: {0}
alreadyLoggedIn=Έχετε ήδη συνδεθεί.
differentUserAuthenticated=Έχετε ήδη ταυτοποιηθεί σε αυτή τη συνεδρία ως ο άλλος χρήστης ''{0}''. Παρακαλώ πρώτα να αποσυνδεθείτε.
brokerLinkingSessionExpired=Αιτήθηκε σύνδεση με λογαριασμό μεσολαβητή, αλλά η τρέχουσα συνεδρία δεν είναι πια έγκυρη.
proceedWithAction=&raquo; Πατήστε εδώ για να προχωρήσετε
acrNotFulfilled=Δεν ικανοποιούνται οι απαιτήσεις ταυτοποίησης
requiredAction.CONFIGURE_TOTP=Ρύθμιση OTP
requiredAction.terms_and_conditions=Όροι και Συνθήκες
requiredAction.UPDATE_PASSWORD=Ενημέρωση Κωδικού Πρόσβασης
requiredAction.UPDATE_PROFILE=Ενημέρωση Προφίλ
requiredAction.VERIFY_EMAIL=Επιβεβαίωση Email
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Δημιουργία Κωδικών Ανάκτησης
requiredAction.webauthn-register-passwordless=Εγγραφή σε Webauthn Χωρίς-Κωδικό-Πρόσβασης
invalidTokenRequiredActions=Οι απαιτούμενες ενέργειες που περιλαμβάνονται σε αυτό το σύνδεσμο δεν είναι έγκυρες
doX509Login=Θα συνδεθείτε ως:
clientCertificate=Πιστοποιητικό πελάτη X509:
noCertificate=[Κανένα Πιστοποιητικό]
pageNotFound=Η σελίδα δε βρέθηκε
internalServerError=Συνέβη ένα εσωτερικό σφάλμα στην υπηρεσία
console-username=Όνομα Χρήστη:
console-password=Κωδικός Πρόσβασης:
console-otp=Κωδικός Μίας Χρήσης:
console-new-password=Νέος Κωδικός Πρόσβασης:
console-confirm-password=Επιβεβαίωση Κωδικού:
console-update-password=Απαιτείται η ενημέρωση του κωδικού πρόσβασης σας.
console-verify-email=Πρέπει να επιβεβαιώσετε την διεύθυνση email σας. Στάλθηκε ένα email στο {0} το οποίο περιέχει ένα κωδικό επιβεβαίωσης. Παρακαλώ εισάγετε το κωδικό στο παρακάτω πεδίο.
console-email-code=Κωδικός Email:
console-accept-terms=Αποδοχή Όρων [ν/ο]:
console-accept=ν
# Openshift messages
openshift.scope.user_info=Πληροφορίες χρήστη
openshift.scope.user_check-access=Πληροφορίες πρόσβασης χρήστη
openshift.scope.user_full=Πλήρης Πρόσβαση
openshift.scope.list-projects=Εμφάνιση λίστας έργων
# SAML authentication
saml.post-form.title=Ανακατεύθυνση Ταυτοποίησης
saml.post-form.message=Ανακατεύθυνση, παρακαλώ αναμένατε.
saml.post-form.js-disabled=Έχει απενεργοποιηθεί η JavaScript. Συνιστούμε να την ενεργοποιήσετε. Πατήστε το κουμπί παρακάτω για να συνεχίσετε.
saml.artifactResolutionServiceInvalidResponse=Αδυναμία επίλυσης του στοιχείου.
#authenticators
otp-display-name=Εφαρμογής Ταυτοποίησης
otp-help-text=Εισάγετε ένα κωδικό επιβεβαίωσης από την εφαρμογή ταυτοποίησης.
password-display-name=Κωδικός Πρόσβασης
password-help-text=Συνδεθείτε βάζοντας το κωδικό πρόσβασης σας.
auth-username-form-display-name=Όνομα Χρήστη
auth-username-form-help-text=Ξεκινήστε την είσοδο με το όνομα του χρήστη σας
auth-username-password-form-display-name=Όνομα χρήστη και κωδικός πρόσβασης
auth-username-password-form-help-text=Συνδεθείτε με το όνομα χρήστη και το κωδικό πρόσβασης σας.
# Recovery Codes
auth-recovery-authn-code-form-display-name=Κωδικός Ανάκτησης Ταυτοποίησης
auth-recovery-authn-code-form-help-text=Δώστε ένα κωδικό ανάκτησης ταυτοποίησης από μια προϋπάρχουσα λίστα.
auth-recovery-code-info-message=Δώστε το καθορισμένο κωδικό ανάκτησης.
auth-recovery-code-prompt=Κωδικός ανάκτησης #{0}
auth-recovery-code-header=Σύνδεση με ένα κωδικό ανάκτησης ταυτοποίησης
recovery-codes-error-invalid=Μη έγκυρος κωδικός ανάκτησης ταυτοποίησης
recovery-code-config-header=Κωδικοί Ανάκτησης Ταυτοποίησης
recovery-code-config-warning-title=Αυτοί οι κωδικοί ανάκτησης δεν θα είναι πια ορατή μετά που θα βγείτε από τη σελίδα
recovery-code-config-warning-message=Βεβαιωθείτε ότι τους εκτυπώσατε, κατεβάσατε ή αντιγράψατε στο διαχειριστή κωδικών σας με ασφάλεια. Η ακύρωση αυτής της διαδικασίας θα αφαιρέσει αυτούς του κωδικούς ανάκτησης από το λογαριασμό σας.
recovery-codes-print=Εκτύπωση
recovery-codes-download=Λήψη
recovery-codes-copy=Αντιγραφή
recovery-codes-copied=Αντιγράφηκε
recovery-codes-confirmation-message=Αποθήκευσα αυτούς του κωδικούς με ασφάλεια
recovery-codes-action-complete=Ολοκλήρωση διαδικασίας
recovery-codes-action-cancel=Ακύρωση διαδικασίας
recovery-codes-download-file-header=Κρατήστε αυτούς του κωδικούς ανάκτησης κάπου ασφαλές.
recovery-codes-download-file-description=Οι κωδικοί ανάκτησης είναι μυστικά μίας χρήσης που επιτρέπουν να συνδεθείτε στο λογαριασμό αν δεν έχετε πρόσβαση στην εφαρμογή ταυτοποίησης.
recovery-codes-download-file-date=Αυτοί οι κωδικοί δημιουργήθηκαν στις
recovery-codes-label-default=Κωδικοί ανάκτησης
# WebAuthn
webauthn-display-name=Κλειδί Ασφαλείας
webauthn-help-text=Χρήση του κλειδιού ασφαλείας σας για σύνδεση.
webauthn-passwordless-display-name=Κλειδί Ασφαλείας
webauthn-passwordless-help-text=Χρήση του κλειδιού ασφαλείας για σύνδεση χωρίς κωδικό πρόσβασης.
webauthn-login-title=Είσοδος με Κλειδί Ασφαλείας
webauthn-registration-title=Εγγραφή Κλειδιού Ασφαλείας
webauthn-available-authenticators=Διαθέσιμα Κλειδιά Ασφαλείας
webauthn-unsupported-browser-text=Το WebAuthn δεν υποστηρίζεται από αυτό το browser. Δοκιμάστε κάποιον άλλο ή επικοινωνήστε με το διαχειριστή.
webauthn-doAuthenticate=Σύνδεση με το Κλειδί Ασφαλείας
webauthn-createdAt-label=Δημιουργήθηκε
# WebAuthn Error
webauthn-error-title=Σφάλμα Κλειδιού Ασφαλείας
webauthn-error-registration=Αποτυχία εγγραφής του κλειδιού ασφαλείας σας.<br/> {0}
webauthn-error-api-get=Αποτυχία ταυτοποίησης μέσω του Κλειδιού ασφαλείας.<br/> {0}
webauthn-error-different-user=Ο αρχικός ταυτοποιημένος χρήστης δεν είναι ο ίδιος με αυτό που ταυτοποιήθηκε με το Κλειδί ασφαλείας.
webauthn-error-auth-verification=Μη έγκυρο αποτέλεσμα ταυτοποίησης του Κλειδιού ασφαλείας.<br/> {0}
webauthn-error-register-verification=Μη έγκυρο αποτέλεσμα εγγραφής του Κλειδιού ασφαλείας.<br/> {0}
webauthn-error-user-not-found=Άγνωστος χρήστης ταυτοποιήθηκε με το Κλειδί ασφαλείας.
# Identity provider
identity-provider-redirector=Σύνδεση με ένα άλλο Πάροχο Ταυτότητας
identity-provider-login-label=Ή σύνδεση με
idp-email-verification-display-name=Πιστοποίηση Email
idp-email-verification-help-text=Σύνδεση του λογαριασμού με επιβεβαίωση του email σας.
idp-username-password-form-display-name=Όνομα χρήστη και κωδικός πρόσβασης
idp-username-password-form-help-text=Σύνδεση του λογαριασμού σας μέσω της εισόδου σας.
finalDeletionConfirmation=Αν διαγράψετε το λογαριασμό σας, η ανάκτηση θα είναι αδύνατη. Για να παραμείνει, πατήστε Ακύρωση.
irreversibleAction=Αυτή η ενέργεια είναι μη αναστρέψιμη
deleteAccountConfirm=Επιβεβαίωση διαγραφής λογαριασμού
deletingImplies=Η διαγραφή του λογαριασμού σας συνεπάγεται:
errasingData=Διαγραφή όλων των δεδομένων σας
loggingOutImmediately=Άμεση αποσύνδεση σας
accountUnusable=Κάθε μεταγενέστερη χρήση αυτής της εφαρμογής δεν θα είναι δυνατή με αυτό το λογαριασμό
userDeletedSuccessfully=Ο χρήστης διαγράφηκε με επιτυχία
access-denied=Δεν επιτρέπεται η πρόσβαση
access-denied-when-idp-auth=Δεν επιτρέπεται η πρόσβαση κατά τη ταυτοποίηση με {0}
frontchannel-logout.title=Αποσύνδεση
frontchannel-logout.message=Αποσυνδέεστε από τις παρακάτω εφαρμογές
logoutConfirmTitle=Αποσύνδεση
logoutConfirmHeader=Σίγουρα να γίνει αποσύνδεση;
doLogout=Αποσύνδεση
readOnlyUsernameMessage=Δε μπορείτε να ενημερώσετε το όνομα χρήστη σας καθώς είναι μόνο-για-ανάγνωση.

@ -0,0 +1,2 @@
# encoding: UTF-8
locale_el=Ελληνικά

@ -1,21 +0,0 @@
.login-pf body {
background: url("../node_modules/rcue/dist/img/bg-login.png") no-repeat left top fixed;
background-size: auto;
height: 100%;
}
@media (max-width: 767px) {
.login-pf body {
background: white;
}
}
@media (min-width: 767px) {
.login-pf {
background-attachment: fixed;
}
}
#kc-header-wrapper sup {
font-size: 35%;
top: -1.4em;
}

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 513 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 343 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 678 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 410 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 513 B

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 646 B

@ -1,4 +1,3 @@
parent=keycloak
styles=css/login.css css/tile.css css/login-hellug.css
stylesCommon=web_modules/@patternfly/react-core/dist/styles/base.css web_modules/@patternfly/react-core/dist/styles/app.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css
kcLogoLink=http://www.hellug.gr
locale=en,el

135
themes/hellug-keycloak/welcome/index.ftl Εκτελέσιμο αρχείο

@ -0,0 +1,135 @@
<!--
~ JBoss, Home of Professional Open Source.
~ Copyright (c) 2011, Red Hat, Inc., and individual contributors
~ as indicated by the @author tags. See the copyright.txt file in the
~ distribution for a full listing of individual contributors.
~
~ This is free software; you can redistribute it and/or modify it
~ under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this software; if not, write to the Free
~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<!DOCTYPE html>
<html>
<head>
<title>Welcome to ${productNameFull}</title>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="${resourcesPath}/img/favicon.ico" />
<#if properties.stylesCommon?has_content>
<#list properties.stylesCommon?split(' ') as style>
<link href="${resourcesCommonPath}/${style}" rel="stylesheet" />
</#list>
</#if>
<#if properties.styles?has_content>
<#list properties.styles?split(' ') as style>
<link href="${resourcesPath}/${style}" rel="stylesheet" />
</#list>
</#if>
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2">
<div class="welcome-header">
<img src="${resourcesPath}/logo.png" alt="${productName}" border="0" />
<h1>Welcome to <strong>${productNameFull}</strong></h1>
</div>
<div class="row">
<#if adminConsoleEnabled>
<div class="col-xs-12 col-sm-4">
<div class="card-pf h-l">
<#if successMessage?has_content>
<p class="alert success">${successMessage}</p>
<#elseif errorMessage?has_content>
<p class="alert error">${errorMessage}</p>
<h3><img src="welcome-content/user.png">Administration Console</h3>
<#elseif bootstrap>
<#if localUser>
<h3><img src="welcome-content/user.png">Administration Console</h3>
<p>Please create an initial admin user to get started.</p>
<#else>
<p class="welcome-message">
<img src="welcome-content/alert.png">You need local access to create the initial admin user. <br><br>Open <a href="${localAdminUrl}">${localAdminUrl}</a>
<br>${adminUserCreationMessage}.
</p>
</#if>
</#if>
<#if bootstrap && localUser>
<form method="post" class="welcome-form">
<p>
<label for="username">Username</label>
<input id="username" name="username" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" />
</p>
<p>
<label for="passwordConfirmation">Password confirmation</label>
<input id="passwordConfirmation" name="passwordConfirmation" type="password" />
</p>
<input id="stateChecker" name="stateChecker" type="hidden" value="${stateChecker}" />
<button id="create-button" type="submit" class="btn btn-primary">Create</button>
</form>
</#if>
<div class="welcome-primary-link">
<h3><a href="${adminUrl}"><img src="welcome-content/user.png">Administration Console <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
<div class="description">
Centrally manage all aspects of the ${productNameFull} server
</div>
</div>
</div>
</div>
</#if> <#-- adminConsoleEnabled -->
<div class="col-xs-12 col-sm-4">
<div class="card-pf h-l">
<h3><a href="${properties.documentationUrl}"><img class="doc-img" src="welcome-content/admin-console.png">Documentation <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
<div class="description">
User Guide, Admin REST API and Javadocs
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<#if properties.displayCommunityLinks = "true">
<div class="card-pf h-m">
<h3><a href="http://www.keycloak.org"><img src="welcome-content/keycloak-project.png">Keycloak Project <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
</div>
<div class="card-pf h-m">
<h3><a href="https://groups.google.com/forum/#!forum/keycloak-user"><img src="welcome-content/mail.png">Mailing List <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
</div>
<div class="card-pf h-m">
<h3><a href="https://github.com/keycloak/keycloak/issues"><img src="welcome-content/bug.png">Report an issue <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
</div>
</#if>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 712 B

BIN
themes/hellug-keycloak/welcome/resources/alert.png Κανονικό αρχείο

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 6 KiB

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 4,9 KiB

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 3,3 KiB

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 71 KiB

Πριν Μετά
Πριν Μετά

BIN
themes/hellug-keycloak/welcome/resources/bug.png Κανονικό αρχείο

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 1,4 KiB

@ -1,12 +0,0 @@
body {
background-image: url(../bg.png),url(../bg-login.png);
background-repeat: no-repeat,no-repeat;
background-position: right bottom, left top;
background-size: auto, auto;
background-color: #1a1a1a;
height: 100%;
}
.welcome-header {
color: #fff;
}

@ -0,0 +1,140 @@
body {
background: #fff url(../bg.png) no-repeat center bottom fixed;
background-size: cover;
}
.welcome-header {
margin-top: 10px;
margin-bottom: 50px;
margin-left: -10px;
}
.welcome-header img {
width: 150px;
margin-bottom: 40px;
}
.welcome-message {
margin-top: 20px;
}
.h-l {
min-height: 370px;
padding: 10px 20px 10px;
overflow: hidden;
}
.h-l h3 {
margin-bottom: 10px;
}
.h-m {
height: 110px;
padding-top: 23px;
}
.card-pf img {
width: 22px;
margin-right: 10px;
vertical-align: bottom;
}
img.doc-img {
width: auto;
height: 22px;
}
.link {
font-size: 16px;
vertical-align: baseline;
margin-left: 5px;
}
h3 {
font-weight: 550;
}
h3 a:link,
h3 a:visited {
color: #333;
font-weight: 550;
}
h3 a:hover,
h3 a:hover .link {
text-decoration: none;
color: #00659c;
}
.h-l h3 a img {
height: 30px;
width: auto;
}
.description {
margin-top: 30px;
}
.card-pf {
border-top: 1px solid rgba(3, 3, 3, 0.1);
box-shadow: 0 1px 1px rgba(3, 3, 3, 0.275);
}
.welcome-form label,
.welcome-form input {
display: block;
width: 100%;
}
.welcome-form label {
color: #828486;
font-weight: normal;
margin-top: 18px;
}
.welcome-form input {
border: 0;
border-bottom: solid 1px #cbcbcb;
}
.welcome-form input:focus {
border-bottom: solid 1px #5e99c6;
outline-width: 0;
}
.welcome-form button {
margin-top: 10px;
}
.error {
color: #c00;
border-color: #c00;
padding: 5px 10px;
}
.success {
color: #3f9c35;
border-color: #3f9c35;
padding: 5px 10px;
}
.welcome-form + .welcome-primary-link,
.welcome-message + .welcome-primary-link {
display: none;
}
.footer img {
float: right;
width: 150px;
margin-top: 30px;
}
@media (max-width: 768px) {
.welcome-header {
margin-top: 10px;
margin-bottom: 20px;
}
.welcome-header img {
margin-bottom: 20px;
}
h3 {
margin-top: 10px;
}
.h-l,
.h-m {
height: auto;
min-height: auto;
padding: 5px 10px;
}
.h-l img {
display: inline;
margin-bottom: auto;
}
.description {
display: none;
}
.footer img {
margin-top: 10px;
}
}

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 1,6 KiB

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 7,4 KiB

Το δυαδικό αρχείο δεν εμφανίζεται.

Πριν

Πλάτος:  |  Ύψος:  |  Μέγεθος: 26 KiB

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 7,4 KiB

Πριν Μετά
Πριν Μετά

BIN
themes/hellug-keycloak/welcome/resources/mail.png Κανονικό αρχείο

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 1 KiB

BIN
themes/hellug-keycloak/welcome/resources/user.png Κανονικό αρχείο

Το δυαδικό αρχείο δεν εμφανίζεται.

Μετά

Πλάτος:  |  Ύψος:  |  Μέγεθος: 2,4 KiB

@ -1,6 +1,5 @@
parent=keycloak
styles=css/welcome-hellug.css
styles=css/welcome.css css/welcome-hellug.css
documentationUrl=https://wiki.hellug.gr/index.php?title=%CE%A5%CF%80%CE%B7%CF%81%CE%B5%CF%83%CE%AF%CE%B1_Hellug_Auth
documentationUrl=https://https://wiki.hellug.gr/index.php?title=%CE%A5%CF%80%CE%B7%CF%81%CE%B5%CF%83%CE%AF%CE%B1_Hellug_Auth
displayCommunityLinks=false