From 02a826c33d2578f0a5b2b6804d7676f01bfd60f4 Mon Sep 17 00:00:00 2001 From: Will Stevens Date: Wed, 12 Mar 2014 12:20:45 -0400 Subject: [PATCH] Implements OpenStack Swift as an Object Storage Service --- .../WEB-INF/classes/resources/messages.properties | 28 ++ server/src/com/cloud/api/ApiServer.java | 1 + ui/css/cloudstack3.css | 400 +++++++++++++++++++++ ui/dictionary.jsp | 18 + ui/images/swift/cloud.png | Bin 0 -> 2488 bytes ui/images/swift/container.png | Bin 0 -> 566 bytes ui/images/swift/cross.png | Bin 0 -> 764 bytes ui/images/swift/directory.png | Bin 0 -> 412 bytes ui/images/swift/file.png | Bin 0 -> 352 bytes ui/images/swift/image.png | Bin 0 -> 480 bytes ui/images/swift/music.png | Bin 0 -> 625 bytes ui/images/swift/pdf.png | Bin 0 -> 500 bytes ui/images/swift/video.png | Bin 0 -> 692 bytes ui/images/swift/zip.png | Bin 0 -> 418 bytes ui/index.jsp | 74 ++++ ui/lib/plupload/i18n/cs.js | 14 + ui/lib/plupload/i18n/da.js | 12 + ui/lib/plupload/i18n/de.js | 24 ++ ui/lib/plupload/i18n/es.js | 25 ++ ui/lib/plupload/i18n/fi.js | 33 ++ ui/lib/plupload/i18n/fr.js | 25 ++ ui/lib/plupload/i18n/hr.js | 25 ++ ui/lib/plupload/i18n/hu.js | 33 ++ ui/lib/plupload/i18n/it.js | 24 ++ ui/lib/plupload/i18n/ja.js | 37 ++ ui/lib/plupload/i18n/lv.js | 33 ++ ui/lib/plupload/i18n/nl.js | 21 ++ ui/lib/plupload/i18n/pt-br.js | 35 ++ ui/lib/plupload/i18n/ro.js | 24 ++ ui/lib/plupload/i18n/ru.js | 21 ++ ui/lib/plupload/i18n/sr.js | 14 + ui/lib/plupload/i18n/sv.js | 12 + .../css/jquery.plupload.queue.css | 177 +++++++++ .../jquery.plupload.queue/img/backgrounds.gif | Bin 0 -> 2977 bytes .../jquery.plupload.queue/img/buttons-disabled.png | Bin 0 -> 1292 bytes .../plupload/jquery.plupload.queue/img/buttons.png | Bin 0 -> 1439 bytes .../plupload/jquery.plupload.queue/img/delete.gif | Bin 0 -> 180 bytes ui/lib/plupload/jquery.plupload.queue/img/done.gif | Bin 0 -> 1024 bytes .../plupload/jquery.plupload.queue/img/error.gif | Bin 0 -> 994 bytes .../jquery.plupload.queue/img/throbber.gif | Bin 0 -> 1922 bytes .../jquery.plupload.queue/img/transp50.png | Bin 0 -> 399 bytes .../jquery.plupload.queue/jquery.plupload.queue.js | 1 + .../jquery.ui.plupload/css/jquery.ui.plupload.css | 147 ++++++++ .../jquery.ui.plupload/img/plupload-bw.png | Bin 0 -> 2105 bytes .../plupload/jquery.ui.plupload/img/plupload.png | Bin 0 -> 3641 bytes .../jquery.ui.plupload/jquery.ui.plupload.js | 1 + ui/lib/plupload/license.txt | 339 +++++++++++++++++ ui/lib/plupload/plupload.browserplus.js | 1 + ui/lib/plupload/plupload.flash.js | 1 + ui/lib/plupload/plupload.flash.swf | Bin 0 -> 18873 bytes ui/lib/plupload/plupload.full.js | 2 + ui/lib/plupload/plupload.gears.js | 1 + ui/lib/plupload/plupload.html4.js | 1 + ui/lib/plupload/plupload.html5.js | 1 + ui/lib/plupload/plupload.js | 2 + ui/lib/plupload/plupload.silverlight.js | 1 + ui/lib/plupload/plupload.silverlight.xap | Bin 0 -> 44013 bytes ui/lib/swift.api.js | 267 ++++++++++++++ ui/scripts/cloudStack.js | 79 +++- ui/scripts/swift.js | 247 +++++++++++++ ui/scripts/ui-custom/swift.js | 212 +++++++++++ ui/scripts/ui/widgets/treeView.js | 61 ++++ 62 files changed, 2465 insertions(+), 9 deletions(-) create mode 100644 ui/images/swift/cloud.png create mode 100644 ui/images/swift/container.png create mode 100644 ui/images/swift/cross.png create mode 100644 ui/images/swift/directory.png create mode 100644 ui/images/swift/file.png create mode 100644 ui/images/swift/image.png create mode 100644 ui/images/swift/music.png create mode 100644 ui/images/swift/pdf.png create mode 100644 ui/images/swift/video.png create mode 100644 ui/images/swift/zip.png create mode 100644 ui/lib/plupload/i18n/cs.js create mode 100644 ui/lib/plupload/i18n/da.js create mode 100644 ui/lib/plupload/i18n/de.js create mode 100644 ui/lib/plupload/i18n/es.js create mode 100644 ui/lib/plupload/i18n/fi.js create mode 100644 ui/lib/plupload/i18n/fr.js create mode 100644 ui/lib/plupload/i18n/hr.js create mode 100644 ui/lib/plupload/i18n/hu.js create mode 100644 ui/lib/plupload/i18n/it.js create mode 100644 ui/lib/plupload/i18n/ja.js create mode 100644 ui/lib/plupload/i18n/lv.js create mode 100644 ui/lib/plupload/i18n/nl.js create mode 100644 ui/lib/plupload/i18n/pt-br.js create mode 100644 ui/lib/plupload/i18n/ro.js create mode 100644 ui/lib/plupload/i18n/ru.js create mode 100644 ui/lib/plupload/i18n/sr.js create mode 100644 ui/lib/plupload/i18n/sv.js create mode 100644 ui/lib/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/backgrounds.gif create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/buttons-disabled.png create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/buttons.png create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/delete.gif create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/done.gif create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/error.gif create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/throbber.gif create mode 100644 ui/lib/plupload/jquery.plupload.queue/img/transp50.png create mode 100644 ui/lib/plupload/jquery.plupload.queue/jquery.plupload.queue.js create mode 100644 ui/lib/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css create mode 100644 ui/lib/plupload/jquery.ui.plupload/img/plupload-bw.png create mode 100644 ui/lib/plupload/jquery.ui.plupload/img/plupload.png create mode 100644 ui/lib/plupload/jquery.ui.plupload/jquery.ui.plupload.js create mode 100644 ui/lib/plupload/license.txt create mode 100644 ui/lib/plupload/plupload.browserplus.js create mode 100644 ui/lib/plupload/plupload.flash.js create mode 100644 ui/lib/plupload/plupload.flash.swf create mode 100644 ui/lib/plupload/plupload.full.js create mode 100644 ui/lib/plupload/plupload.gears.js create mode 100644 ui/lib/plupload/plupload.html4.js create mode 100644 ui/lib/plupload/plupload.html5.js create mode 100644 ui/lib/plupload/plupload.js create mode 100644 ui/lib/plupload/plupload.silverlight.js create mode 100644 ui/lib/plupload/plupload.silverlight.xap create mode 100644 ui/lib/swift.api.js create mode 100644 ui/scripts/swift.js create mode 100644 ui/scripts/ui-custom/swift.js diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index c46361a..7530d33 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -1910,3 +1910,31 @@ state.Stopping=Stopping state.Suspended=Suspended ui.listView.filters.all=All ui.listView.filters.mine=Mine + +# Swift Object Storage UI +label.swift=Object Store +label.add.swift.container=Add Container +label.swift.delete.element=Delete +label.action.swift.delete.element=The selected element will be deleted permanently +message.action.swift.delete.element=The selected element will be deleted permanently +label.swift.add.object=Upload +label.swift.download.object=Download +label.hash=Hash +label.content-type=Content type +label.last-modified=Last modified +label.swift.upload=Upload +action.uploader.select.file=Browse +action.uploader.send.file=Start upload +action.uploader.close=Close +label.swift.add.directory=Create Folder +message.action.swift.add.directory=Create Folder +message.action.swift.authenticate.error=Error in Swift authentication +message.service.unavailable=Service unavailable +label.swift.add_container=Add container +action.container.create=Create container +action.container.close=Close +action.container.public=Make public +action.container.creation.name=Name +label.swift.status.make_private=Make private +label.swift.status.make_public=Make public +message.swift.no_container=Click 'add container' to get started diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index 3502689..96ff212 100755 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -880,6 +880,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer session.setAttribute("type", Short.valueOf(account.getType()).toString()); session.setAttribute("registrationtoken", userAcct.getRegistrationToken()); session.setAttribute("registered", new Boolean(userAcct.isRegistered()).toString()); + session.setAttribute("apikey", userAcct.getApiKey()); if (timezone != null) { session.setAttribute("timezone", timezone); diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css index 2b88e03..79fb59d 100644 --- a/ui/css/cloudstack3.css +++ b/ui/css/cloudstack3.css @@ -12687,3 +12687,403 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it display: inline-block; } +/* Swift Object Store UI */ +.upload .icon { + background-position: -232px -32px; +} + +.upload:hover .icon { + background-position: -230px -613px; +} + +.public .icon { + background-position: -197px -3px; +} + +.public:hover .icon { + background-position: -196px -615px; +} + +.private .icon { + background-position: -197px -32px; +} + +.private:hover .icon { + background-position: -196px -586px; +} +#navigation ul li.swift span.icon { + background-position: -400px -24px; +} + +/* Swift Toolbar */ +div.swift-toolbar div.button.add.root { + display: inline-block; + margin-left: 10px; +} + +div.swift-toolbar div.text-search { + float: right; + margin-left: -20px; + margin-right: 10px; +} + +.plupload_buttons, .plupload_upload_status { + float: left; +} + +/* Icons */ +.ui-dialog #uploader .ui-button, .ui-dialog .custom-dialog .ui-button{ + width: auto; + height: auto; +} + +.ui-dialog #uploader, .ui-dialog .custom-dialog { + display: block; + padding: 0; +} + +.ui-dialog-buttonpane { + display: inline-block; +} + +div.swift-toolbar { + z-index: 99; +} + +div.swift-toolbar div.text-search div.search-bar { + width: 170px; + border-radius: 4px; +} + +div.toolbar div.button.add.root { + margin-left: 10px; +} + +#browser div.swift-toolbar { + text-align: right; +} + +.swift-panel .tree-view ul li .container { + background-image: url('../images/swift/container.png'); + background-position: 6px 3px; +} + +.swift-panel .tree-view ul li .directory { + background-image: url('../images/swift/directory.png'); + background-position: 6px 2px; +} + +.swift-panel .tree-view ul li .zip { + background-image: url('../images/swift/zip.png'); + background-position: 6px 4px; +} + +.swift-panel .tree-view ul li .pdf { + background-image: url('../images/swift/pdf.png'); + background-position: 6px 4px; +} + +.swift-panel .tree-view ul li .image { + background-image: url('../images/swift/image.png'); + background-position: 6px 4px; +} + +.swift-panel .tree-view ul li .music { + background-image: url('../images/swift/music.png'); + background-position: 6px 4px; +} + +.swift-panel .tree-view ul li .video { + background-image: url('../images/swift/video.png'); + background-position: 6px 4px; +} + +.swift-panel .tree-view ul li .file { + background-image: url('../images/swift/file.png'); + background-position: 6px 4px; +} + +.swift-panel .container, +.swift-panel .directory, +.swift-panel .zip, +.swift-panel .pdf, +.swift-panel .image, +.swift-panel .music, +.swift-panel .video, +.swift-panel .file { + position: relative; + background-repeat: no-repeat !important; +} + +.swift-panel .tree-view > ul { + position: relative; + left:0; + margin-left: 3px; +} + +.swift-panel .tree-view ul li { + margin-top:0; + left:10px; +} + +.swift-panel .tree-view > ul > li { + left: 0px; + margin-left: 5px; +} + +.swift-panel .tree-view ul li .expand { + display: inline-block; + left: 0; + margin-right: 2px; + position: absolute; + top: 2px; +} + +.swift-panel .tree-view ul li .name { + display: inline-block; + float: none; + margin: 1px 0 0 10px; + padding-left: 27px; +} + +#uploader, .custom-dialog { + display: none; + height: auto; + left: 50%; + margin-left: -225px; + outline: 0 none; + position: relative; + top: -621px; + width: 450px; + z-index: 1004; + background: url("../images/bg-dialog-body.png") repeat-x scroll 0 0 #E9E9E9; + border-radius: 7px 7px 7px 7px; + box-shadow: 0 -4px 15px #4C4A4A; + text-align: left; + overflow: hidden; +} + +#uploader .ui-button.cancel, .custom-dialog .ui-button.cancel, .custom-dialog .ui-button.cancel-container { + font-size: 13px; + height: 31px; + background: url("../images/gradients.png") repeat scroll 0 -480px #B6B6B6; + border: 1px solid #AAAAAA; + border-radius: 4px 4px 4px 4px; + margin-right: 0; +} + +.custom-dialog .ui-button.cancel-container { + float:none; +} + +#uploader .wrapper, .custom-dialog .wrapper{ + margin: 10px; + overflow: hidden; + position: relative; +} + +#uploader .header, .custom-dialog .header { + background: url("../images/bg-dialog-header.png") repeat scroll 0 0 #4C5F70; + border-radius: 7px 7px 0 0; + color: #FFFFFF; + height: 33px; + margin: auto; +} + +#uploader .header span, .custom-dialog .header span { + background: url("../images/icons.png") no-repeat scroll 0 -256px transparent; + font-size: 14px; + left: 8px; + padding: 2px 0 5px 30px; + position: relative; + text-shadow: 0 -1px 1px #495968; + top: 9px; +} + +#filelist.active { + border:1px solid #CFC9C9; + height: 302px; + overflow: auto; +} + +.file-wrapper { + clear: both; + display: block; + padding: 8px; + +} + +.file-wrapper.odd { + background-color: #F2F0F0; +} + +.file-wrapper.even { + background-color: #E4E6E7; +} + +.file-added { + display: inline-block; + font-size: 13px; + color: #6393F1; + padding: 2px 0 2px 22px;; + background-image: url("../images/swift/file.png"); + background-repeat: no-repeat; + +} + +.file-added.icon-pdf { + background-image: url("../images/swift/pdf.png"); +} + +.file-added.icon-zip, +.file-added.icon-rar, +.file-added.icon-gzip, +.file-added.icon-7z { + background-image: url("../images/swift/zip.png"); +} + +.file-added.icon-jpeg, +.file-added.icon-jpg, +.file-added.icon-png, +.file-added.icon-gif { + background-image: url("../images/swift/image.png"); +} + +.file-added.icon-mp3, +.file-added.icon-mp4, +.file-added.icon-wav, +.file-added.icon-wma, +.file-added.icon-ogg { + background-image: url("../images/swift/music.png"); +} + +.remove-file { + background: url("../images/swift/cross.png") repeat scroll 0 0 transparent; + height: 16px; + margin-left: 5px; + margin-top: 1px; + vertical-align: middle; + float: right; + width: 16px; + cursor: pointer +} + +.ui-button.blue { + height: 31px; + font-size: 13px; + background-image: url("../images/gradients.png"); + background-position: 0px -317px; + border: 1px solid #0065C5; + color: #FFFFFF; + -moz-text-shadow: 0px -1px 1px #011238; + -webkit-text-shadow: 0px -1px 1px #011238; + -o-text-shadow: 0px -1px 1px #011238; + text-shadow: 0px -1px 1px #011238; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px 4px 4px 4px; + display: inline-block; + overflow: hidden; + cursor: pointer; +} + +/*** Create form*/ +.custom-dialog div.form-container { + width: 94% !important; + text-align: left; + display: inline-block; +} + +.custom-dialog div.form-container span.message { + text-align: left; + padding: 0 0 23px 5px; + font-size: 15px; +} + +.custom-dialog div.form-container div.form-item { + width: 100%; + display: inline-block; + margin: 0 0 12px; +} + +.custom-dialog div.form-container div.name { + float: left; + clear: both; + width: 40%; + font-size: 15px; + color: #485867; + /*+text-shadow:0px 2px 1px #FFFFFF;*/ + -moz-text-shadow: 0px 2px 1px #FFFFFF; + -webkit-text-shadow: 0px 2px 1px #FFFFFF; + -o-text-shadow: 0px 2px 1px #FFFFFF; + text-shadow: 0px 2px 1px #FFFFFF; + margin: 3px 0 0; +} + +.custom-dialog div.form-container div.name label { + display: block; + width: 119px; + text-align: right; + font-size: 13px; + margin-top: 2px; +} + +.custom-dialog div.form-container div.value { + width: 56%; + float: left; + margin: 0 0 0 4%; + display: inline-block; +} + +.custom-dialog div.form-container div.value input { + width: 98%; + font-size: 14px; + background: #F6F6F6; + /*+border-radius:4px;*/ + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px 4px 4px 4px; + border: 1px solid #AFAFAF; + /*+box-shadow:inset 0px 1px 0px #727272;*/ + -moz-box-shadow: inset 0px 1px 0px #727272; + -webkit-box-shadow: inset 0px 1px 0px #727272; + -o-box-shadow: inset 0px 1px 0px #727272; + box-shadow: inset 0px 1px #727272; + float: left; +} + +.overlay { + background: none repeat scroll 0 0 black; + display: block; + height: 100%; + left: 0; + top: 0; + opacity: 0.5; + position: absolute; + width: 100%; + z-index: 1002; +} + +.ui-dialog-center { + text-align: center; + margin:0 auto; +} + +.no-container { + left: 50%; + margin-left: -300px; + position: absolute; + text-align: center; + top: 75px; + width: 600px; +} + +.no-container p { + color: #D3D4D5; + font-size: 32px; + font-weight: bold; + line-height: 42px; + text-shadow: 2px 2px 1px #FFFFFF; +} diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp index 074db7f..c8805a4 100644 --- a/ui/dictionary.jsp +++ b/ui/dictionary.jsp @@ -1852,5 +1852,23 @@ dictionary = { 'message.enabling.network.offering': '', 'message.confirm.remove.network.offering': '', 'message.confirm.disable.network.offering': '', + +'label.add.swift.container': '', +'label.swift.add.directory': '', +'label.swift.delete.element': '', +'label.action.swift.delete.element': '', +'message.action.swift.delete.element': '', +'message.action.swift.add.directory': '', +'label.swift.add.object': '', +'label.swift.download.object': '', +'label.hash': '', +'label.content-type': '', +'label.last-modified': '', +'label.last-modified': '', +'label.swift.status.make_private': '', +'label.swift.status.make_public': '', +'label.swift': '', +'message.action.swift.authenticate.error': '', +'message.service.unavailable': '' }; diff --git a/ui/images/swift/cloud.png b/ui/images/swift/cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..121828f04d8efd964ea623ae1d0d026be3b1f6c1 GIT binary patch literal 2488 zcmai0X;>3k7L7uytpd`5%`#$)AcBxh5+o2AB#A}|O9%~$0Yg%O07=E9fB-`55$py* zTmS_`L=X{8+p;;x)W zeHv>G*1}*g4eEXpU9}ddUeuaZs;_vR+gsJ550SkfcaRH(u|xpOfdl#ha4MhW56}S? zC;ZrBzzzmeL+}`0kQdE~zy|q9))EFO;R{u47|hOIB4n|H00`~}`11rr#7KEH0?y+Q z5uP|2nkIAv0(ko)M1XsQGlLxw#J1re?DxR!Bm|WJAAneJ2|rjMCP;{gPr3wEymX90 zz&}BtAR^+=qP%FXa7R!Cz;Q^lB^!;$!0}c{j1}6(%EkhYMPtw?3>Jm9w#1+bIBNnL z1ONOWRM|uvE`d&>e9ooX5fK3pBqX3vVPRp&uw6({o^C>Td9#SufXAv3Da97Hmk?V|sS6hdp{*@VY5Gkl!1t*Pe^0FN3>k-A+j^jw!y2a5Y;S*O{li zp?=yeSG_GF^7XzW2E!?SPqJcS3RAAq7Y6al%tVsbj-Jgu_u5OWn_g)49BPXnp}N-> z6@gjR;k(8fchj8KWTW+xY&C^z^nw|yP9{D%nuGo8$S_6z8K;UQ>p$qsZ#-RRuA81$ zH+nw#H`%R%z!`~qNl2kK#TH6YemKx-R2xfp_BSmm|3quRM1Rh!E|=FP+VqoUA0slV z?hHinbB|Vx4G-XTx8`~F>`zu2JbzFUq@eISjn1(Qw$>ti?lXH;n=%N&Drwrkwl zJb9t?h>J^ea`nQ@_z?L+0Y^P~0&O7gtChdiv(}Uh!B-D36ScoFrZ)RLyN$ z@jyq{JC_qMIHmOAjyHzN1Q{qigVkA=uC!8?d%A2sd^@NuHa7MeaHxPZ!l0N+Di0xz zVyPxPQ~ozXv#6*j-J;ZnKGORE-lo?b8&?me>c{IO+_$o~e-+aIH0>0ZC}LY8Eh6=Y zct?7rqqjTj_r>p|x|O2QY=>5FZAD_qQ#WEuzE~{2nSSQQSJFYPmGjG}bMmdNR15x3D6J2FucWk51b+@2m z|EtWPQ~q3T-e4#`#IDb|eX%Crzxm2_&2Kl4w70h#T4mhldKl`Dx6FaZt_R=rxbUz; z;bL#tz95ea(l>Lq=$DyqpOHn%MlKzjDk^8zY?`e2F;9Jcv6=wpu0zssETvXzemtPw z75)Bjk=>>C!YdTt0)$8821RWx37gf7%I>OdrZpF+si_epxFo4aR2bdFYp332{?K)e z%zx(39m!w0GwTH2T+g_B2yMpnmKqk_07AkQ`I}2#u^Et4*U-D4xs{I+%nwH5GjJy% z3ZD_2`)q1`a#ilA7;C)vB6>WY-{3n;;ys&~yOVrzQ&e*UzasLuLQ|Tv_|G#l!Phl9 zTBAyK6|_=2J3He{8}kc`eal29J&*F)Y<6}6$zW*or$ntO?+Jcep@(H>-#`wQ*ZaHg z4pe2FKI2$JZ{@pnISza`d$OXk6xz}~VjcLH`SH85BLeh+oHJ+6JTwu{mRMJg)z5#E z<=kDrD7#bj_IFhLP97A#2{6<>M(d4!-iJZ?RCom*WmMk(w|8LY%jR=V^hXCzqnS0C zW*QaERsmTKw&_gWfvS&9nACe|>3L!cP+@Cl=T!dMwP8hOj$i6CX7mG3Uv;UMK&|WW ziO}9?*|+aAi{~Q1vu|8x!}=sWKW7Zykh@S96VY=Ev-AD6;+~b#T?1*B(8m?sJ;uL! zi3MdvaoT%*i6M{LjSar{vFb$5=TAGYOYIaj&B`{+?+yQ@)Mlpe!boXpl8TBYGV zIsdPV%Kn;%t6M^*ZzRyW_449ODN^Ia&_=x&&6C#NJ`4OnkA>nea{odQec9Q|$wR}Kn+^htt}6%epr zm2vv`9`wGI(gQWW;(i0wh1Rlpw+IuZVs!nO_GNn2kXC%$F59RnW=G=bDw`MjQ@VZf zN$_#Y(LGadI40HhQ$3b9?2V2`6t-Dx-A!*YmrJ*#j2fSiHYUj_0QzPAdc66`zl`SW dN0VS`FnDhHbM@-LrT;P*mF!IVW$)2{`~go=MiKx3 literal 0 HcmV?d00001 diff --git a/ui/images/swift/container.png b/ui/images/swift/container.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d556df0d9acf011b351bb5cab6a64c7198ba93 GIT binary patch literal 566 zcmV-60?GY}P)G`A1wqC4Yv;_~`(;Bas|<|He9oMi zGjqpsxm>7PtrE*U>n-bNdY3TkC&T{DsvGt%))&?v<#L%cyll7I*Jw0aOe7NI^Z6vo zZnu-i;}LtkUT1c@T?Y1Yxx5*TMt9Tc^nu-y0G!X~Vz1XDuh&ZsheMK_PA8dSu~=xo z-;)7A{eB<+7vXDWP%f9FX0u7UuB$+|=i^V9P&r_?_A_Xv?&qc%GFva6> z=>i?NTrSa2C?wSI&UA_CNW21=&1Mt`1f)8G+-|p2g`Q3)0M)OZ0df=oP_f@`w=3;gtyTdsKOS@d8hDRHB2*|8s8Xr?0YH-9@26xk z`40tf$80b}%wx4$sX0Kb_%SP8BW8|ta5x;kHX4m5RKW@%=1o90n+*+zLwUm;)M_=! zQ2^Z1GjHHK>m$2gj67Ul#ISYaq#-zhZ@h`0aNYzM05y*Sl>4C+z5oCK07*qoM6N<$ Ef{f(&KL7v# literal 0 HcmV?d00001 diff --git a/ui/images/swift/cross.png b/ui/images/swift/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..f9aaf5c462844aa89832a7b5ec6a9bcacfa7ce4a GIT binary patch literal 764 zcmV}-S8=ypXXny6gR?kchxz8eeE;{K;XiYj*w76uU&BqD({qdeiWSyM9BVkwnm7xA zKh=>lPVK+q|8cCQYM>wwzqZcfbD#FYR$10Tmm7;8Uw~|>)2S{GUSGL`_-wdQ5LnpzNcUcbmOp}uaN7(CL(+j7&rg)W<^2{f3+ zAA$%^M}_*{3!Gk}$|@-8u6A%UQxReOorpwCh8!pOBSDTyx=(Xo-iiqRiVC#W(529q zv1Bk{ZMjHDQR1nlW7J57vDzVv0cE*{RY*W_k89^06=hy$Z6)MIvSZu~MN&~xzXdsE z8+@eJZ|GQ+9OFRC8Na>4&?$*lT9XPRfHB)VPEGdj-`L%-t%q8MN&L5qe7MxP#cVB z0?Bg})SnOumrxK86^IL356x3;@-8%-ZRKX8+U2onfLa=xIMU=3;lv085+5@-=7-Q} uIR~vJ9H0 zfh0*^P2+iRU6+=+22@oAaU8?-!v#FY_rp534RAKQnI7#069&lh93Ee9VSnd%aQB_d zQ^- zO1(=wjAj)Qg{SlN0>0w>CmC7J;r_{(STnzw9lOS|EL4`IBBGeCl|@nX{#pf~D2ipC z=SxG(Y6|hXnSe~w#IUw)sc9Ovx~{3JDmKXXeZ<9io-4fp28`p#FNR_4%rs5*&@c=X z1OZ}WwdxT-Okw~D!;m3qnyL+e4+4;?;sxM&9=Wbdwrx|AB*@{Rzm9;Tu-0`Q4@`#c zIL?;CfWGg40(20PB}Q^~9iVNgbf?P>^lG}-b=twz7Ig4!2T!!?K+eHG5Xm{+f yL&ROcAFwRzQFX-1{SiR6p7WUgQ-;S!fB^td=GGKBs`_mJ0000JO5g)~C`!Ua}AW$k2uh#anJ>z*}TT~Ut6o(^A zST2|MY-b1J7a`|7n@*<(p;xQb%m`|5{kTCBD9H(0{*ChYK*N4#v2$!)jRD2&RRhC@ zloHIy)+sy$J}bn)q6p&P2r!HyBU(p1w3Lc5th36B?P`vCwjzRU@rWeTBpB?VNG3%w zDt2V z`C!g8299f-Pl)g4gPGWk1UnO-o?oyvgXq{Nhc-oERw*k>CNuX!4|rHq0jzH>{+jsk zN|{Wd#7I!FM1guoh>&_bJVEZvpzVHnV3)yyx4X-K-9p3cF4AH?pC9}dQEBE(!(R4+t&_Qa1yx`VSoJRs=VKC`DYjQo5)kN_8`o; zF;kowqe&;p%MkC&yoi-#E}Z1Od+s|qdGEf2@B4W0bPh4GM92_wg!@qi5`VP4b`(-c z$cwixFQga1dL zU=*iDrcnB>&cFHaeBNub6CDQ*i-qI1uvyuH*)p)De?(q=316}>ee4S7GaUzRj04&O zhuQd6Dj5|`ODReZdKCpm+Q49XoUfY;1l%qHHaXxtVc4{+NlH)F8_jHTLgu-2R|gV0 z0)p2B-kHCx>~>w}`87G*1BwaJb+cmq3u>TX4+I~^^w7Z(RLVNf=fYFS9O&zRICXjk z<3~;gRmIYmyPpedu<3;UJ0-pTvxY|V$3^Z&`~u5dyL1zVUBznQSx|K-J&LO{vv{w* z3VPz7_*AP^&+<2)gq_&VZ@dOeSbwXU<~Awk@pXOE5SM9}NH~ziUC0&IHy-s5_n|kn zHy|v-Mzd;i?jB8-vl)`fBvPpq zMx&AF$wLCy=ytm>0=c0}l9HB4;AOjom&*aG)#;3Lxm-d`jBJkksU*W!iBc$CEJEW~ z^f_6~mytc8WYv?y;Q)O{3(mb{rq#lFI7Ft=z%F)v-CWgFot!&Kqg)0J)9v-}WSU6V zYEXVPjkv)12E-_z$D89Ipt=eLtfy1Fb~lTKaD6R5XUV6QNjmf!c(u;*?2rg6h-&E qE71%3KSt~`+5DZGcntQh00RJAd+!;_Gf~t40000P;f|*LO}!t53+;Oi3mER z2M^kd(~D3KDq=gkHhDG~DWU7dKfHXrFTeNY%m2N{F~(rm^z<~FpPxrAmji$G0VGBs zQb2N0C<2GJPO-TXfW>gV1*WE^x(QF@Vco$KMWP%;p28^@S=uPyxg=W*j~@B`eoRbE zV10cZs*h772M@~g;5e=`7?`HZFEkCwWD=Q72DDPCu#u6Gg-9f_@Yp%Iuqk-)swU!_ z>nJ|`CfN8+@aUEwW9kvyzIh$Yceehq{7fvD%g}Wl#CT-0S#xs8N$SHcg2OI~VTEEy zAvh?tU}yGxeyz0IZKTs_7?Eh5cH;3kjCjKFOF1*p#Hm4G?0^n+K*O=UZP*$2xhrV3 zT9})gGb3+QNu^Te|F69LQfqEC+?_O<%`H$#22Tk*HfEoLYjxHL%gf7%#bP@J78e(h zNF=a-E#pQXwL7EB@Y{m%+psg_!K@ypgopx%cjC z?Qf&*u5asLOoJdRpoBoNF_wwJU~tC+RaF`OLr-3AVDhwzQmKSMAOOzm^|C^tfSH*Y zjNX0I*Tmz literal 0 HcmV?d00001 diff --git a/ui/images/swift/zip.png b/ui/images/swift/zip.png new file mode 100644 index 0000000000000000000000000000000000000000..e606b6dc059ea87f7deb17732dc07966a430271b GIT binary patch literal 418 zcmV;T0bTxyP)}VIg4~!DTrP05w1v+BKQ!7YhvLqW@j%e26yk^K3HaUXXl%5 zh7qP|LKIOH?XhvuWrVhEd*IwIUx#6EP18i!{;dL`t-EEYwIPMf) zvZ|^`mSxm+-TVd$+Rd&Hm%VKV% zVHm__S%%^`7FGnht`jRs(i8;2ziC%hh03xdiCem-Fn%;m+ZIJpV}HviP}4Y1L4bqA!kidqj{gcU0O*gjvN~sH^#A|> M07*qoM6N<$f?xcwA^-pY literal 0 HcmV?d00001 diff --git a/ui/index.jsp b/ui/index.jsp index d46c395..577119e 100644 --- a/ui/index.jsp +++ b/ui/index.jsp @@ -1653,6 +1653,71 @@ +
+
+ +
+
+
+
+
+ + + +
+
+
+ + + + + @@ -1676,6 +1741,12 @@ + + + + + + @@ -1740,6 +1811,9 @@ + + + diff --git a/ui/lib/plupload/i18n/cs.js b/ui/lib/plupload/i18n/cs.js new file mode 100644 index 0000000..1ee5d5f --- /dev/null +++ b/ui/lib/plupload/i18n/cs.js @@ -0,0 +1,14 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vyberte soubory', + 'Add files to the upload queue and click the start button.' : 'Přidejte soubory do fronty a pak spusťte nahrávání.', + 'Filename' : 'Název souboru', + 'Status' : 'Status', + 'Size' : 'Velikost', + 'Add Files' : 'Přidat soubory', + 'Stop current upload' : 'Zastavit nahrávání', + 'Start uploading queue' : 'Spustit frontu nahrávání', + 'Drag files here.' : 'Sem přetáhněte soubory.', + 'Start Upload': 'Spustit nahrávání', + 'Uploaded %d/%d files': 'Nahráno %d/%d souborů' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/da.js b/ui/lib/plupload/i18n/da.js new file mode 100644 index 0000000..fc95896 --- /dev/null +++ b/ui/lib/plupload/i18n/da.js @@ -0,0 +1,12 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vælg filer', + 'Add files to the upload queue and click the start button.' : 'Tilføj filer til køen, og tryk på start.', + 'Filename' : 'Filnavn', + 'Status' : 'Status', + 'Size' : 'Størrelse', + 'Add files' : 'Tilføj filer', + 'Stop current upload' : 'Stop upload', + 'Start uploading queue' : 'Start upload', + 'Drag files here.' : 'Træk filer her.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/de.js b/ui/lib/plupload/i18n/de.js new file mode 100644 index 0000000..4c4de07 --- /dev/null +++ b/ui/lib/plupload/i18n/de.js @@ -0,0 +1,24 @@ +// German +plupload.addI18n({ + 'Select files' : 'Dateien hochladen', + 'Add files to the upload queue and click the start button.' : 'Dateien hinzufügen und auf \'Hochladen\' klicken.', + 'Filename' : 'Dateiname', + 'Status' : 'Status', + 'Size' : 'Größe', + 'Add files' : 'Dateien', // hinzufügen', + 'Stop current upload' : 'Aktuelles Hochladen stoppen', + 'Start uploading queue' : 'Hochladen starten', + 'Uploaded %d/%d files': '%d/%d Dateien sind hochgeladen', + 'N/A' : 'Nicht verfügbar', + 'Drag files here.' : 'Ziehen Sie die Dateien hier hin', + 'File extension error.': 'Fehler bei Dateiendung', + 'File size error.': 'Fehler bei Dateigröße', + 'Init error.': 'Initialisierungsfehler', + 'HTTP Error.': 'HTTP-Fehler', + 'Security error.': 'Sicherheitsfehler', + 'Generic error.': 'Typischer Fehler', + 'IO error.': 'Ein/Ausgabe-Fehler', + 'Stop Upload': 'Hochladen stoppen', + 'Start upload': 'Hochladen', + '%d files queued': '%d Dateien in der Warteschlange' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/es.js b/ui/lib/plupload/i18n/es.js new file mode 100644 index 0000000..2379421 --- /dev/null +++ b/ui/lib/plupload/i18n/es.js @@ -0,0 +1,25 @@ +// Spanish +plupload.addI18n({ + 'Select files' : 'Elija archivos:', + 'Add files to the upload queue and click the start button.' : 'Agregue archivos a la cola de subida y haga click en el boton de iniciar.', + 'Filename' : 'Nombre de archivo', + 'Status' : 'Estado', + 'Size' : 'Tamaño', + 'Add files' : 'Agregue archivos', + 'Stop current upload' : 'Detener subida actual', + 'Start uploading queue' : 'Iniciar subida de cola', + 'Uploaded %d/%d files': 'Subidos %d/%d archivos', + 'N/A' : 'No disponible', + 'Drag files here.' : 'Arrastre archivos aquí', + 'File extension error.': 'Error de extensión de archivo.', + 'File size error.': 'Error de tamaño de archivo.', + 'Init error.': 'Error de inicialización.', + 'HTTP Error.': 'Error de HTTP.', + 'Security error.': 'Error de seguridad.', + 'Generic error.': 'Error genérico.', + 'IO error.': 'Error de entrada/salida.', + 'Stop Upload': 'Detener Subida.', + 'Add Files': 'Agregar Archivos', + 'Start Upload': 'Comenzar Subida.', + '%d files queued': '%d archivos en cola.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/fi.js b/ui/lib/plupload/i18n/fi.js new file mode 100644 index 0000000..12a639e --- /dev/null +++ b/ui/lib/plupload/i18n/fi.js @@ -0,0 +1,33 @@ +// .fi file like language pack +plupload.addI18n({ + 'Select files' : 'Valitse tiedostoja', + 'Add files to the upload queue and click the start button.' : 'Lisää tiedostoja latausjonoon ja klikkaa aloita-nappia.', + 'Filename' : 'Tiedostonimi', + 'Status' : 'Tila', + 'Size' : 'Koko', + 'Add files' : 'Lisää tiedostoja', + 'Stop current upload' : 'Pysäytä nykyinen lataus', + 'Start uploading queue' : 'Aloita jonon lataus', + 'Drag files here.' : 'Raahaa tiedostot tänne.', + 'Start upload' : 'Aloita lataus', + 'Uploaded %d/%d files': 'Ladattu %d/%d tiedostoa', + 'Stop upload': 'Pysäytä lataus', + 'Start upload': 'Aloita lataus', + '%d files queued': '%d tiedostoa jonossa', + 'File: %s': 'Tiedosto: %s', + 'Close': 'Sulje', + 'Using runtime: ': 'Käytetään ajonaikaista: ', + 'File: %f, size: %s, max file size: %m': 'Tiedosto: %f, koko: %s, maksimi tiedostokoko: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Latauselementti sallii ladata vain %d tiedosto(a) kerrallaan. Ylimääräiset tiedostot ohitettiin.', + 'Upload URL might be wrong or doesn\'t exist': 'Lataus URL saattaa olla väärin tai ei ole olemassa', + 'Error: File too large: ': 'Virhe: Tiedosto liian suuri: ', + 'Error: Invalid file extension: ': 'Virhe: Kelpaamaton tiedostopääte: ', + 'File extension error.': 'Tiedostopäätevirhe.', + 'File size error.': 'Tiedostokokovirhe.', + 'File count error.': 'Tiedostolaskentavirhe.', + 'Init error.': 'Init virhe.', + 'HTTP Error.': 'HTTP virhe.', + 'Security error.': 'Tietoturvavirhe.', + 'Generic error.': 'Yleinen virhe.', + 'IO error.': 'I/O virhe.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/fr.js b/ui/lib/plupload/i18n/fr.js new file mode 100644 index 0000000..53dbe28 --- /dev/null +++ b/ui/lib/plupload/i18n/fr.js @@ -0,0 +1,25 @@ +// French +plupload.addI18n({ + 'Select files' : 'Sélectionnez les fichiers', + 'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file et appuyez sur le bouton démarrer.', + 'Filename' : 'Nom de fichier', + 'Status' : 'Status', + 'Size' : 'Taille', + 'Add files' : 'Ajouter Fichiers', + 'Stop current upload' : 'Arrêter l\'envoi en cours', + 'Start uploading queue' : 'Démarrer l\'envoi', + 'Uploaded %d/%d files': '%d/%d fichiers envoyés', + 'N/A' : 'Non applicable', + 'Drag files here.' : 'Déposer les fichiers ici.', + 'File extension error.': 'Erreur extension fichier', + 'File size error.': 'Erreur taille fichier.', + 'Init error.': 'Erreur d\'initialisation.', + 'HTTP Error.': 'Erreur HTTP.', + 'Security error.': 'Erreur de sécurité.', + 'Generic error.': 'Erreur générique.', + 'IO error.': 'Erreur E/S.', + 'Stop Upload': 'Arrêter les envois.', + 'Add Files': 'Ajouter des fichiers', + 'Start Upload': 'Démarrer les envois.', + '%d files queued': '%d fichiers en attente.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/hr.js b/ui/lib/plupload/i18n/hr.js new file mode 100644 index 0000000..084be51 --- /dev/null +++ b/ui/lib/plupload/i18n/hr.js @@ -0,0 +1,25 @@ +// Croatian +plupload.addI18n({ + 'Select files': 'Izaberite datoteke:', + 'Add files to the upload queue and click the start button.': 'Dodajte datoteke u listu i kliknite Upload.', + 'Filename': 'Ime datoteke', + 'Status': 'Status', + 'Size': 'Veličina', + 'Add files': 'Dodajte datoteke', + 'Stop current upload': 'Zaustavi trenutan upload', + 'Start uploading queue': 'Pokreni Upload', + 'Uploaded %d/%d files': 'Uploadano %d/%d datoteka', + 'N/A': 'N/A', + 'Drag files here.': 'Dovucite datoteke ovdje', + 'File extension error.': 'Greška ekstenzije datoteke.', + 'File size error.': 'Greška veličine datoteke.', + 'Init error.': 'Greška inicijalizacije.', + 'HTTP Error.': 'HTTP greška.', + 'Security error.': 'Sigurnosna greška.', + 'Generic error.': 'Generička greška.', + 'IO error.': 'I/O greška.', + 'Stop Upload': 'Zaustavi upload.', + 'Add Files': 'Dodaj datoteke', + 'Start Upload': 'Pokreni upload.', + '%d files queued': '%d datoteka na čekanju.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/hu.js b/ui/lib/plupload/i18n/hu.js new file mode 100644 index 0000000..87070ba --- /dev/null +++ b/ui/lib/plupload/i18n/hu.js @@ -0,0 +1,33 @@ +// Hungarian +plupload.addI18n({ + 'Select files' : 'Fájlok kiválasztása', + 'Add files to the upload queue and click the start button.' : 'Válaszd ki a fájlokat, majd kattints az Indítás gombra.', + 'Filename' : 'Fájlnév', + 'Status' : 'Állapot', + 'Size' : 'Méret', + 'Add files' : 'Hozzáadás', + 'Stop current upload' : 'Jelenlegi feltöltés megszakítása', + 'Start uploading queue' : 'Várakozási sor feltöltésének indítása', + 'Uploaded %d/%d files': 'Feltöltött fájlok: %d/%d', + 'N/A': 'Nem elérhető', + 'Drag files here.' : 'Húzd ide a fájlokat.', + 'Stop upload': 'Feltöltés megszakítása', + 'Start upload': 'Indítás', + '%d files queued': '%d fájl sorbaállítva', + 'File: %s': 'Fájl: %s', + 'Close': 'Bezárás', + 'Using runtime: ': 'Használt runtime: ', + 'File: %f, size: %s, max file size: %m': 'Fájl: %f, méret: %s, maximális fájlméret: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'A feltöltés egyszerre csak %d fájlt fogad el, a többi fájl nem lesz feltöltve.', + 'Upload URL might be wrong or doesn\'t exist': 'A megadott URL hibás vagy nem létezik', + 'Error: File too large: ': 'Hiba: A fájl túl nagy: ', + 'Error: Invalid file extension: ': 'Hiba: Érvénytelen fájlkiterjesztés: ', + 'File extension error.': 'Hibás fájlkiterjesztés.', + 'File size error.': 'Hibás fájlméret.', + 'File count error.': 'A fájlok számával kapcsolatos hiba.', + 'Init error.': 'Init hiba.', + 'HTTP Error.': 'HTTP hiba.', + 'Security error.': 'Biztonsági hiba.', + 'Generic error.': 'Általános hiba.', + 'IO error.': 'I/O hiba.' +}); diff --git a/ui/lib/plupload/i18n/it.js b/ui/lib/plupload/i18n/it.js new file mode 100644 index 0000000..891e4fb --- /dev/null +++ b/ui/lib/plupload/i18n/it.js @@ -0,0 +1,24 @@ +// Italian +plupload.addI18n({ + 'Select files' : 'Seleziona i files', + 'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.', + 'Filename' : 'Nome file', + 'Status' : 'Stato', + 'Size' : 'Dimensione', + 'Add Files' : 'Aggiungi file', + 'Stop current upload' : 'Interrompi il caricamento', + 'Start uploading queue' : 'Avvia il caricamento', + 'Uploaded %d/%d files': 'Caricati %d/%d file', + 'N/A' : 'N/D', + 'Drag files here.' : 'Trascina i file qui.', + 'File extension error.': 'Errore estensione file.', + 'File size error.': 'Errore dimensione file.', + 'Init error.': 'Errore inizializzazione.', + 'HTTP Error.': 'Errore HTTP.', + 'Security error.': 'Errore sicurezza.', + 'Generic error.': 'Errore generico.', + 'IO error.': 'Errore IO.', + 'Stop Upload': 'Ferma Upload', + 'Start Upload': 'Inizia Upload', + '%d files queued': '%d file in lista' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/ja.js b/ui/lib/plupload/i18n/ja.js new file mode 100644 index 0000000..02c85ae --- /dev/null +++ b/ui/lib/plupload/i18n/ja.js @@ -0,0 +1,37 @@ +// Japanese +plupload.addI18n({ + 'Select files' : 'ファイル選択', + 'Add files to the upload queue and click the start button.' : 'ファイルをアップロードキューに追加してスタートボタンをクリックしてください', + 'Filename' : 'ファイル名', + 'Status' : 'ステータス', + 'Size' : 'サイズ', + 'Add Files' : 'ファイルを追加', + 'Stop Upload' : 'アップロード停止', + 'Start Upload' : 'アップロード', + 'Add files' : 'ファイルを追加', + 'Add files.' : 'ファイルを追加', + 'Stop current upload' : '現在のアップロードを停止', + 'Start uploading queue' : 'アップロード', + 'Stop upload' : 'アップロード停止', + 'Start upload' : 'アップロード', + 'Uploaded %d/%d files': 'アップロード中 %d/%d ファイル', + 'N/A' : 'N/A', + 'Drag files here.' : 'ここにファイルをドラッグ', + 'File extension error.': 'ファイル拡張子エラー', + 'File size error.': 'ファイルサイズエラー', + 'File count error.': 'ファイル数エラー', + 'Init error.': 'イニシャライズエラー', + 'HTTP Error.': 'HTTP エラー', + 'Security error.': 'セキュリティエラー', + 'Generic error.': 'エラー', + 'IO error.': 'IO エラー', + 'File: %s': 'ファイル: %s', + 'Close': '閉じる', + '%d files queued': '%d ファイルが追加されました', + 'Using runtime: ': 'モード: ', + 'File: %f, size: %s, max file size: %m': 'ファイル: %f, サイズ: %s, 最大ファイルサイズ: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'アップロード可能なファイル数は %d です。余分なファイルは削除されました', + 'Upload URL might be wrong or doesn\'t exist': 'アップロード先の URL が存在しません', + 'Error: File too large: ': 'エラー: サイズが大きすぎます: ', + 'Error: Invalid file extension: ': 'エラー: 拡張子が許可されていません: ' +}); diff --git a/ui/lib/plupload/i18n/lv.js b/ui/lib/plupload/i18n/lv.js new file mode 100644 index 0000000..2a04045 --- /dev/null +++ b/ui/lib/plupload/i18n/lv.js @@ -0,0 +1,33 @@ +// .lv file like language pack +plupload.addI18n({ + 'Select files' : 'Izvēlieties failus', + 'Add files to the upload queue and click the start button.' : 'Pieveinojiet failus rindai un klikšķiniet uz "Sākt augšupielādi" pogas.', + 'Filename' : 'Faila nosaukums', + 'Status' : 'Statuss', + 'Size' : 'Izmērs', + 'Add files' : 'Pievienot failus', + 'Stop current upload' : 'Apturēt pašreizējo augšupielādi', + 'Start uploading queue' : 'Sākt augšupielādi', + 'Drag files here.' : 'Ievelciet failus šeit', + 'Start upload' : 'Sākt augšupielādi', + 'Uploaded %d/%d files': 'Augšupielādēti %d/%d faili', + 'Stop upload': 'Pārtraukt augšupielādi', + 'Start upload': 'Sākt augšupielādi', + '%d files queued': '%d faili pievienoti rindai', + 'File: %s': 'Fails: %s', + 'Close': 'Aizvērt', + 'Using runtime: ': 'Lieto saskarni: ', + 'File: %f, size: %s, max file size: %m': 'Fails: %f, izmērs: %s, maksimālais faila izmērs: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Iespējams ielādēt tikai %d failus vienā reizē. Atlikušie faili netika pievienoti', + 'Upload URL might be wrong or doesn\'t exist': 'Augšupielādes URL varētu būt nepareizs vai neeksistē', + 'Error: File too large: ': 'Kļūda: Fails pārāk liels: ', + 'Error: Invalid file extension: ': 'Kļūda: Nekorekts faila paplašinājums:', + 'File extension error.': 'Faila paplašinājuma kļūda.', + 'File size error.': 'Faila izmēra kļūda.', + 'File count error.': 'Failu skaita kļūda', + 'Init error.': 'Inicializācijas kļūda.', + 'HTTP Error.': 'HTTP kļūda.', + 'Security error.': 'Drošības kļūda.', + 'Generic error.': 'Vispārēja rakstura kļūda.', + 'IO error.': 'Ievades/Izvades kļūda.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/nl.js b/ui/lib/plupload/i18n/nl.js new file mode 100644 index 0000000..8372c88 --- /dev/null +++ b/ui/lib/plupload/i18n/nl.js @@ -0,0 +1,21 @@ +// Dutch +plupload.addI18n({ + 'Select files' : 'Selecteer bestand(en):', + 'Add files to the upload queue and click the start button.' : 'Voeg bestanden toe aan de wachtrij en druk op \'Start\'.', + 'Filename' : 'Bestandsnaam', + 'Status' : 'Status', + 'Size' : 'Grootte', + 'Add files' : 'Voeg bestanden toe', + 'Stop current upload' : 'Stop upload', + 'Start uploading queue' : 'Start upload', + 'Uploaded %d/%d files': '%d/%d bestanden ge-upload', + 'N/A' : 'Niet beschikbaar', + 'Drag files here.' : 'Sleep bestanden hierheen.', + 'File extension error.': 'Ongeldig bestandstype.', + 'File size error.': 'Bestandsgrootte Error.', + 'Init error.': 'Initialisatie error.', + 'HTTP Error.': 'HTTP Error.', + 'Security error.': 'Beveiliging error.', + 'Generic error.': 'Onbekende error.', + 'IO error.': 'IO error.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/pt-br.js b/ui/lib/plupload/i18n/pt-br.js new file mode 100644 index 0000000..9f34a64 --- /dev/null +++ b/ui/lib/plupload/i18n/pt-br.js @@ -0,0 +1,35 @@ +// Brazilian Portuguese +plupload.addI18n({ + 'Select files' : 'Escolha os arquivos', + 'Add files to the upload queue and click the start button.' : 'Adicione os arquivos abaixo e clique no botão "Iniciar o envio".', + 'Filename' : 'Nome do arquivo', + 'Status' : 'Status', + 'Size' : 'Tamanho', + 'Add Files' : 'Adicionar arquivo(s)', + 'Stop Upload' : 'Parar o envio', + 'Start Upload' : 'Iniciar o envio', + 'Add files' : 'Adicionar arquivo(s)', + 'Add files.' : 'Adicionar arquivo(s)', + 'Stop upload' : 'Parar o envio', + 'Start upload' : 'Iniciar o envio', + 'Uploaded %d/%d files': 'Enviado(s) %d/%d arquivo(s)', + 'N/A' : 'N/D', + 'Drag files here.' : 'Arraste os arquivos pra cá', + 'File extension error.': 'Tipo de arquivo não permitido.', + 'File size error.': 'Tamanho de arquivo não permitido.', + 'File count error.': 'Erro na contagem dos arquivos', + 'Init error.': 'Erro inicializando.', + 'HTTP Error.': 'Erro HTTP.', + 'Security error.': 'Erro de segurança.', + 'Generic error.': 'Erro genérico.', + 'IO error.': 'Erro de E/S.', + 'File: %s': 'Arquivo: %s', + 'Close': 'Fechar', + '%d files queued': '%d arquivo(s)', + 'Using runtime: ': 'Usando: ', + 'File: %f, size: %s, max file size: %m': 'Arquivo: %f, tamanho: %s, máximo: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Só são aceitos %d arquivos por vez. O que passou disso foi descartado.', + 'Upload URL might be wrong or doesn\'t exist': 'URL de envio está errada ou não existe', + 'Error: File too large: ': 'Erro: Arquivo muito grande: ', + 'Error: Invalid file extension: ': 'Erro: Tipo de arquivo não permitido: ' +}); diff --git a/ui/lib/plupload/i18n/ro.js b/ui/lib/plupload/i18n/ro.js new file mode 100644 index 0000000..fd198f0 --- /dev/null +++ b/ui/lib/plupload/i18n/ro.js @@ -0,0 +1,24 @@ +// Romanian +plupload.addI18n({ + 'Select files' : 'Selectare fişiere', + 'Add files to the upload queue and click the start button.' : 'Adaugă fişiere în lista apoi apasă butonul \'Începe încărcare\'.', + 'Filename' : 'Nume fişier', + 'Status' : 'Stare', + 'Size' : 'Mărime', + 'Add files' : 'Adăugare fişiere', + 'Stop current upload' : 'Întrerupe încărcarea curentă', + 'Start uploading queue' : 'Începe incărcarea', + 'Uploaded %d/%d files': 'Fişiere încărcate %d/%d', + 'N/A' : 'N/A', + 'Drag files here.' : 'Trage aici fişierele', + 'File extension error.': 'Extensie fişier eronată', + 'File size error.': 'Eroare dimensiune fişier', + 'Init error.': 'Eroare iniţializare', + 'HTTP Error.': 'Eroare HTTP', + 'Security error.': 'Eroare securitate', + 'Generic error.': 'Eroare generică', + 'IO error.': 'Eroare Intrare/Ieşire', + 'Stop Upload': 'Oprire încărcare', + 'Start upload': 'Începe încărcare', + '%d files queued': '%d fişiere listate' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/ru.js b/ui/lib/plupload/i18n/ru.js new file mode 100644 index 0000000..a78af8e --- /dev/null +++ b/ui/lib/plupload/i18n/ru.js @@ -0,0 +1,21 @@ +// Russian +plupload.addI18n({ + 'Select files' : 'Выберите файлы', + 'Add files to the upload queue and click the start button.' : 'Добавьте файлы в очередь и нажмите кнопку "Загрузить файлы".', + 'Filename' : 'Имя файла', + 'Status' : 'Статус', + 'Size' : 'Размер', + 'Add files' : 'Добавить файлы', + 'Stop current upload' : 'Остановить загрузку', + 'Start uploading queue' : 'Загрузить файлы', + 'Uploaded %d/%d files': 'Загружено %d из %d файлов', + 'N/A' : 'N/D', + 'Drag files here.' : 'Перетащите файлы сюда.', + 'File extension error.': 'Неправильное расширение файла.', + 'File size error.': 'Неправильный размер файла.', + 'Init error.': 'Ошибка инициализации.', + 'HTTP Error.': 'Ошибка HTTP.', + 'Security error.': 'Ошибка безопасности.', + 'Generic error.': 'Общая ошибка.', + 'IO error.': 'Ошибка ввода-вывода.' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/sr.js b/ui/lib/plupload/i18n/sr.js new file mode 100644 index 0000000..59dc0a9 --- /dev/null +++ b/ui/lib/plupload/i18n/sr.js @@ -0,0 +1,14 @@ +// Serbian +plupload.addI18n({ + 'Select files' : 'Izaberite fajlove', + 'Add files to the upload queue and click the start button.' : 'Dodajte fajlove u listu i kliknite na dugme Start.', + 'Filename' : 'Naziv fajla', + 'Status' : 'Status', + 'Size' : 'Veličina', + 'Add Files' : 'Dodaj fajlove', + 'Stop current upload' : 'Zaustavi upload', + 'Start uploading queue' : 'Počni upload', + 'Drag files here.' : 'Prevucite fajlove ovde.', + 'Start Upload': 'Počni upload', + 'Uploaded %d/%d files': 'Snimljeno %d/%d fajlova' +}); \ No newline at end of file diff --git a/ui/lib/plupload/i18n/sv.js b/ui/lib/plupload/i18n/sv.js new file mode 100644 index 0000000..11c7524 --- /dev/null +++ b/ui/lib/plupload/i18n/sv.js @@ -0,0 +1,12 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Välj filer', + 'Add files to the upload queue and click the start button.' : 'Lägg till filer till kön och tryck på start.', + 'Filename' : 'Filnamn', + 'Status' : 'Status', + 'Size' : 'Storlek', + 'Add files' : 'Lägg till filer', + 'Stop current upload' : 'Stoppa uppladdningen', + 'Start uploading queue' : 'Starta uppladdningen', + 'Drag files here.' : 'Dra filer hit' +}); \ No newline at end of file diff --git a/ui/lib/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css b/ui/lib/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css new file mode 100644 index 0000000..8581fdd --- /dev/null +++ b/ui/lib/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css @@ -0,0 +1,177 @@ +/* + Plupload +------------------------------------------------------------------- */ + +.plupload_button { + display: -moz-inline-box; /* FF < 3*/ + display: inline-block; + font: normal 12px sans-serif; + text-decoration: none; + color: #42454a; + border: 1px solid #bababa; + padding: 2px 8px 3px 20px; + margin-right: 4px; + background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center; + outline: 0; + + /* Optional rounded corners for browsers that support it */ + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.plupload_button:hover { + color: #000; + text-decoration: none; +} + +.plupload_disabled, a.plupload_disabled:hover { + color: #737373; + border-color: #c5c5c5; + background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center; + cursor: default; +} + +.plupload_add { + background-position: -181px center; +} + +.plupload_wrapper { + font: normal 11px Verdana,sans-serif; + width: 100%; +} + +.plupload_container { + padding: 8px; + background: url('../img/transp50.png'); + /*-moz-border-radius: 5px;*/ +} + +.plupload_container input { + border: 1px solid #DDD; + font: normal 11px Verdana,sans-serif; + width: 98%; +} + +.plupload_header {background: #2A2C2E url('../img/backgrounds.gif') repeat-x;} +.plupload_header_content { + background: url('../img/backgrounds.gif') no-repeat 0 -317px; + min-height: 56px; + padding-left: 60px; + color: #FFF; +} +.plupload_header_title { + font: normal 18px sans-serif; + padding: 6px 0 3px; +} +.plupload_header_text { + font: normal 12px sans-serif; +} + +.plupload_filelist { + margin: 0; + padding: 0; + list-style: none; +} + +.plupload_scroll .plupload_filelist { + height: 185px; + background: #F5F5F5; + overflow-y: scroll; +} + +.plupload_filelist li { + padding: 10px 8px; + background: #F5F5F5 url('../img/backgrounds.gif') repeat-x 0 -156px; + border-bottom: 1px solid #DDD; +} + +.plupload_filelist_header, .plupload_filelist_footer { + background: #DFDFDF; + padding: 8px 8px; + color: #42454A; +} +.plupload_filelist_header { + border-top: 1px solid #EEE; + border-bottom: 1px solid #CDCDCD; +} + +.plupload_filelist_footer {border-top: 1px solid #FFF; height: 22px; line-height: 20px; vertical-align: middle;} +.plupload_file_name {float: left; overflow: hidden} +.plupload_file_status {color: #777;} +.plupload_file_status span {color: #42454A;} +.plupload_file_size, .plupload_file_status, .plupload_progress { + float: right; + width: 80px; +} +.plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;} + +.plupload_filelist .plupload_file_name {width: 205px} + +.plupload_file_action { + float: right; + width: 16px; + height: 16px; + margin-left: 15px; +} + +.plupload_file_action * { + display: none; + width: 16px; + height: 16px; +} + +li.plupload_uploading {background: #ECF3DC url('../img/backgrounds.gif') repeat-x 0 -238px;} +li.plupload_done {color:#AAA} + +li.plupload_delete a { + background: url('../img/delete.gif'); +} + +li.plupload_failed a { + background: url('../img/error.gif'); + cursor: default; +} + +li.plupload_done a { + background: url('../img/done.gif'); + cursor: default; +} + +.plupload_progress, .plupload_upload_status { + display: none; +} + +.plupload_progress_container { + margin-top: 3px; + border: 1px solid #CCC; + background: #FFF; + padding: 1px; +} +.plupload_progress_bar { + width: 0px; + height: 7px; + background: #CDEB8B; +} + +.plupload_scroll .plupload_filelist_header .plupload_file_action, .plupload_scroll .plupload_filelist_footer .plupload_file_action { + margin-right: 17px; +} + +/* Floats */ + +.plupload_clear,.plupload_clearer {clear: both;} +.plupload_clearer, .plupload_progress_bar { + display: block; + font-size: 0; + line-height: 0; +} + +li.plupload_droptext { + background: transparent; + text-align: center; + vertical-align: middle; + border: 0; + line-height: 165px; +} diff --git a/ui/lib/plupload/jquery.plupload.queue/img/backgrounds.gif b/ui/lib/plupload/jquery.plupload.queue/img/backgrounds.gif new file mode 100644 index 0000000000000000000000000000000000000000..39e33ebc02114ebea6bb33dee2fb76af3a6dd4dc GIT binary patch literal 2977 zcmdUu`#Tc~1II^hosi0dq?7P6w^9i&)fvJz8*&{RhTJ9Zdro+CGnWyPC?vVFx!;*f zwGhKxa!+DIj18M@Hka9Z&Y$sqpU=;q=kv?g24ZdUZyyK10});iz~_F@@$vEA-kwk> zWUv>uxr;|fM|?hCAQ0^D?{m4_!^1<~@jCbD7n4UhI5^ni{N(X?EIxH-Z^_Wu)X2ol z*z~rE*&WkcAhSE>w?TJr{b6~>-0BYtYxBEc3oEF(6+}nx3g>Wj_h4mDuy)tRmM^63 z9j{-xc7uPs!8!WHK3u(V(`0vlnSHRr6|5Otzp1NlaLv$I|LS!sFwD~0mM5fn`S^SL z224&(`}hT-eFHpw?t7yBP+q?7C~u^v4+81wfkL~vqg)Y47dMZI$th=7gf-M|Zti<} zMppFWX9%SCi|=rDf$WQq#?D zgPh%vgpRJ6*|~V^i^V0%>aR8G@(PVc1H&99{uWKoK;ZYjO-xQqOxioSZEtUXpa1b= z;U}F=FDWfYdikw;y?A6o;>FZf!&R1ropX!0hj#(0-1t9=3LlPOcu# zuI^4Q2(YcauYa)FZF6^|w}X?b4HOP@aGsu-wFX1)2Zq`?I6Jwx-?f1`IJw+&MmV}4 z?Cv?;G%>Zu$?>SjoLvDjCEv�TRS%oFI%_+CO)aErq(YYgtoB}8U3WF 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 literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.plupload.queue/img/buttons-disabled.png b/ui/lib/plupload/jquery.plupload.queue/img/buttons-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..afa11af9b93bcbd261faa6a5b0835e82493712b2 GIT binary patch literal 1292 zcmdUu{ZrBh9LK*cyLmOMbKNd&>ujyJA?aEC~~zn}NBXR)7W|sN7p`Q5FZPn}b6cI@%6mmG6E;YBgxp`z{B(g5F$wZ=3sZ1s_ zSC&-JjgriDGG9<|+N|qMu@kQi3=5^!SOKSoDr|hcS(nIx$>w?Y_}6KwQisDq>&KG^ zi_0{bH8nN$L-@}5#{z*sBoaNE0dajON?%cxq_BD%E0@ccmzSCPYH$)y9xazhBp?Wy zUW~~c0*SrbXfep`0_;EzT}hj=j$8hk%pbhjWCDo>+~W2Ey6qa7OfJ*smgutVcDun~ zSlF7q(-W^)6e^WU)-+{gRXu4PhfzX}D_Sm>+tJZcA<4$~W(gggQWLMqNW>4`&XFa_ z$3!!>siGdV#WsysWemKMKU9@bO;z~byHZ;hcj8h1f)Le`$WYSm3XtfYt5+Vvb7jeO zgQY!|W}>X9N|sm9i>xpe2_0QhQ#Uw-4W|TER#r;we7>#?N(rLTXx4SJ)F8wtQZNc+ zSl!QEQw+)IQy!0}(P+9R8TIw`I2>+hXozZlz?dNiR|l%q>NIvj3=5*P3tQ*t1OkC* zC>b^D!|N|d=Q_pnJe5jCr_)(1R(WqW-@+bTl54fv#l^+eIYyo)oj2S@PH#7u!_Wj;T^_|aLmv2xXf1{tLw~Rol zMoUA@How0E1c$wV+ArX@;j{i*jAO|Id0fXo7lQ`5PGpH1zO4M(nl*Mp{}LWd`hK|i zC)z~qJL}3hPjh=E7oAdn6;@F-8hmB7-wWMnK5+UfQVc|-V<4srKAn&t+EJ{=mmYl2 zKcaDu*Oh7emN4xwv%H%>guu-^L(CJO)8q82H6!eRXGegq`lySYbVKCRBLA{94hZml z7C3$h9*J#@{i7xV;SvW5&ZiMh)pYp3e*Pw$un))vg(brQiLq|T00b-=`ZO%H@?V~M B8n^%e literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.plupload.queue/img/buttons.png b/ui/lib/plupload/jquery.plupload.queue/img/buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..153e73885ac4a1fd1a98dccd5df73b8d72a2df10 GIT binary patch literal 1439 zcmds$`CHNl0LH(md$h8mXU=DKYCYR>x|XZunH7j(vtnANdE^0}Q_%3q3ljwuNd0Px zXc>}1icY2+UgSJVML-S7gET2S?9e#8(;R=t-XGrM_s>g4UOcyB+n#Lz0POHUxOoA< zmMDEUGcnYAQk=_}J}hu>Uz|549CtG$0S%l*VM5WC9gwmupEox**VosVmzP&oR@TtHrkX-4q2s9uaXQg^SBNc4sxUG3Q2Gz~8cBP?UB&cROAb9#H0uYYyN|uyA#k zDkn-tl*8#=QP!E;(t2WArns5~b#fPK{N1zYdVd1%T6!M_Y{z4}!cdH>lD9p4X)U=W zrl1>tGItNNkCH7&BuEq83e1VT8#NM;B#fqXC!ZjHPZVGYyja%ryR7~^4C~b7dnI?8 z6<6(0DkYI*$=qqSL?O=Lg(yA_)hX_AdYPrqs8LmpSMS5w!!$Rl6Rf}?q19izq`pc& zlF}PfJy?t^@(@hd)4Q|67$-Y#GC}{yJCun2yayZqMuVix+6>$Pz;Xq?)cP6bX!#;N_ zM&L`A=G>9x^7#OMwe1(E#R%zSn0EYb9t^_rHAf6$xY*4IiB-fK&4Caqqw3c8R0C1aH>9E zo(0W2i4piUJ+E;lo#>bMJ$fxfGktK){>)xV@d%~kl`!*#;6hnh1`EDUrHPrlVu7bnk7vzs?(F%PW9p(Us@ByaDr1@N8id1 zq#EK|qf7fpp;hjA9jU`(GJHqGKZ7*?yVfBUmkUMdF;(`|w#2fh)Y<_s^1<(XG1r9( zp(&{7x-0IW1%HBtZ;hc0;q|=DlB{j?98clAE_&Up(=|^ z)y^4+k!d{)ayxq=5;3zqN@!&=e~dt&XdI2tZQl&^gc+E=1kFpxziBUw(u>+6B8ew{ zHT#4adb9s$)lNf5ZqWEWp|o~9mNBKZF@6n~4eLc`ZtQi) zEeZC+@YX2J-oQrPCqWJpanQl%fhgK|SHZ)!AkX2~Oo-gT(((Wk)zSW;rL3+K1a1L<0hS=shBh1KUx9VI6LTcP+1A$fTOVUSbj_}t^TxwA z>);uvlQWimVfuDfQ*;3A$LePE3n4Lk!TR4vFstfStKdAkc%W__W|RR{rpRfCtdE^o z^PM_}-KWf;<+}`y{((slzS?_8m0wvIoRWUWhih`I+Qw`E`olNIr-M})!19Q^wA?Y< zq@_nD!#8PWLw8%hgbQrU?2C`SIj|0x%a6XB8T34O-bxlYF*54+(^w#u7e+Q(Mw+~5 zI{4nmu`t>**kHfo1zn&9jdV!B)Ds3d11+CukDTL!Q1QOEPeFD(V%IO7$IQC+FIkzm e!^(pI%TA#Gq{YC>!%?W7RKNp%(X9a*ocSNer(gg8 literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.plupload.queue/img/delete.gif b/ui/lib/plupload/jquery.plupload.queue/img/delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..78ca8b3b49e8f739df6ecfa4ef1119058b40e035 GIT binary patch literal 180 zcmZ?wbhEHb6krfw*v!H39|+Ez`G02S|CvCP_CGD{3a`TQPIW08y z+@NmXYwfboIA>eftmEx7PPc8lxOLj;wk@}o)$U1Kdw+KQj?7u7+G7q_7aUKWu%~bR zon_CzK797&@#5>#ChqKCeR=lWbKTo6Y;8YOwD9`W!0mdKC$n$9xnkdKU4N?J%dby0 zyHXy!eqg;&z4BnntSh~RJEP0@B-9|3oj-CkkZZ+PIz&iq4(r6)4xUz)J}=GOefiTPV2bGL_Yxw$lNYefFmh~ndE zIY+&>-d_`Q*w(b(@Zp<>wcFFSKin|$Y?u8^o3fLc-6tyEet(^I)N{&-{-V>Nn&qme z-|XLbclqX#$!XmLDils2^$_i=Vfo6|K!7s z$3S&5b~>3_CysS9Ff(!pa1CI4JIO94&@9fw!C(yl Dux)$+ literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.plupload.queue/img/error.gif b/ui/lib/plupload/jquery.plupload.queue/img/error.gif new file mode 100644 index 0000000000000000000000000000000000000000..4682b63007c89fae09f6640e1a968a073d98b90d GIT binary patch literal 994 zcmZ?wbhEHb6krfw_};*9b)oIQ-*5l@e)sRs`)iBszTS%X_xshqKVQDwin+ST?*G5P zzrQ^G_xt_f9Jc2NYJa}F{`Gdu&zDm^T?_qix&OnZo-emz|NVaR_t)1i*Zuzedh_v0 z>zAA1pKtV@Ea!c=%JBE6!+*Zrczrtj)3uOqx1+w?ivDyh;``H`|9*XZd!q2y`>j8o zPq{fm`Na;auQ!6uw~GD$_w&u+sDHnnzd8{2bbrVDb8TPluY7%O^{INT7l+$F-w1!O zT=&{!g-_QbzC1qg{l($GKi~d(fA!P#uus>+|9rjj_t&$3f4+Tvyzkqcn7=>n{r&m; z>&=i$lU?pF(SEVZ_4lV+Z%tCF$iDo6LW`p7(5<$N&HT8Aidtg@EEu7Dfh!1_m9F6F_-_fnz@dBd3hV zh6RoeTpun37Hm*p=S}!xB2%GsN>(9zl@H4iweC3*!Wlj#haUN`*h|{jWN<7##?Qpk zmawqs0!x>8vXF{_aD)HsCf8Xtia|ir6_cteb~+gFu`;I!>|qpOVG?4uVAFdM{QR&W zONNt2z@nss^K_X~eLR`cSvVIfMeSfTbmmr&58_**5um`{FC={>;XzVD=Tv()J_7-T ogaZvn8JQwxBtJeTEbH?rX5;20cPa5$D~HSgwKHzbjEoG{0NEsHRR910 literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.plupload.queue/img/throbber.gif b/ui/lib/plupload/jquery.plupload.queue/img/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ae8b16a5a474c3da1e426afc20d2167ebd360f1 GIT binary patch literal 1922 zcma)-eM}Q~9LBG`Uf-_0UZFJTFt*nsTO5ueC8MQCX?YP5d8q^!#7gUiuF(Vv0y0uv zMJsO=7zu_gofyX-W+{m?E;Ac+grVzRB*kTp0b7W13o~jO6PL#Adz^qwjJtm>_sjk9 z`#jI{eZINdbKXqbPa-7ZMiBKT^}xA-;P=6WKNl)0E2eKxhaZKneR-`QzrcOMJvKfT zx)lmP4A1{QA9)h7lvsMZdqb029JH3~(nv`^VO`dQxDnc;-1oz!sEu0QJXhB~$nrssc=;5d6bWb>~J{i+O9hUE>s zy$3K&J8PlS3s zuf&l@@FJcg=@u`pfhDq)R}nk`!N({wk0c0{S65>YWU5;9TUls-qL>gRi_rR);{wgY zMVdw2=B8#K29K9L3s zc2K-aUfk?E&kByZwEo`KQU%&(ulDp;Rd2jF$4C4_mBa4FtT?M{W386p329VQR0mG+mdz;^%6}=b+X&!0PAJghY6b|U<(&T>?OpL^EQ|Dg8v(US+(!5}gNN>68C zjIJsuuSa13hEay{0=HqHA>PcGLdSs$kl{5DmyWOoKy3@Be5XpZZB{~bv-Rt+_KBtg z?I&+!J&28PB^xhXaT!{!c-ZpmN=~tqb8%>d`}1|A?BGOz>Q{U7drQo%qk+Jq)wF|Bjbw4$i)(?^O-2qNn1c<7SK zeh64nT!z?PU-wbRweq{O<*Cxk-%v+|o7P1Kr$(&P;`Dngu`P{NC&`fTITT02B_YRx zMm@NDi25Ks=~!vhsbn#_65^=UAs+Z>fLS&$h+rtQa@x?&qIF}sS{QcM$9 zyj8I_JtbX`?QWmL>a)qPxTV4W0{AhtaEw8J%zHgmpSG<=!@1xzkcC#tDkpClZTQ9T{9{ XMrH}sh*f7CD@Dcca7lI@6tMnZ`e4## literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.plupload.queue/img/transp50.png b/ui/lib/plupload/jquery.plupload.queue/img/transp50.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0efe104bdcc277ddcc3f6efdb54e1d533a5179 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+AuIMDtfv&hE&{ob7`X>g8|2p4HHh@ z{1e$QDM;$zbFWMMeYKnhV#f|eBu!Qva;S;tqB;S44$rjF6*2UngC6Cic
'+a("Select files")+'
'+a("Add files to the upload queue and click the start button.")+'
'+a("Filename")+'
 
'+a("Status")+'
'+a("Size")+'
 
    ')}c.fn.pluploadQueue=function(e){if(e){this.each(function(){var j,i,k;i=c(this);k=i.attr("id");if(!k){k=plupload.guid();i.attr("id",k)}j=new plupload.Uploader(c.extend({dragdrop:true,container:k},e));d[k]=j;function h(l){var n;if(l.status==plupload.DONE){n="plupload_done"}if(l.status==plupload.FAILED){n="plupload_failed"}if(l.status==plupload.QUEUED){n="plupload_delete"}if(l.status==plupload.UPLOADING){n="plupload_uploading"}var m=c("#"+l.id).attr("class",n).find("a").css("display","block");if(l.hint){m.attr("title",l.hint)}}function f(){c("span.plupload_total_status",i).html(j.total.percent+"%");c("div.plupload_progress_bar",i).css("width",j.total.percent+"%");c("span.plupload_upload_status",i).text(a("Uploaded %d/%d files").replace(/%d\/%d/,j.total.uploaded+"/"+j.files.length))}function g(){var m=c("ul.plupload_filelist",i).html(""),n=0,l;c.each(j.files,function(p,o){l="";if(o.status==plupload.DONE){if(o.target_name){l+=''}l+='';l+='';n++;c("#"+k+"_count").val(n)}m.append('
  • '+o.name+'
    '+o.percent+'%
    '+plupload.formatSize(o.size)+'
     
    '+l+"
  • ");h(o);c("#"+o.id+".plupload_delete a").click(function(q){c("#"+o.id).remove();j.removeFile(o);q.preventDefault()})});c("span.plupload_total_file_size",i).html(plupload.formatSize(j.total.size));if(j.total.queued===0){c("span.plupload_add_text",i).text(a("Add files."))}else{c("span.plupload_add_text",i).text(j.total.queued+" files queued.")}c("a.plupload_start",i).toggleClass("plupload_disabled",j.files.length==(j.total.uploaded+j.total.failed));m[0].scrollTop=m[0].scrollHeight;f();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){c("#"+k+"_filelist").append('
  • '+a("Drag files here.")+"
  • ")}}j.bind("UploadFile",function(l,m){c("#"+m.id).addClass("plupload_current_file")});j.bind("Init",function(l,m){b(k,i);if(!e.unique_names&&e.rename){c("#"+k+"_filelist div.plupload_file_name span",i).live("click",function(s){var q=c(s.target),o,r,n,p="";o=l.getFile(q.parents("li")[0].id);n=o.name;r=/^(.+)(\.[^.]+)$/.exec(n);if(r){n=r[1];p=r[2]}q.hide().after('');q.next().val(n).focus().blur(function(){q.show().next().remove()}).keydown(function(u){var t=c(this);if(u.keyCode==13){u.preventDefault();o.name=t.val()+p;q.text(o.name);t.blur()}})})}c("a.plupload_add",i).attr("id",k+"_browse");l.settings.browse_button=k+"_browse";if(l.features.dragdrop&&l.settings.dragdrop){l.settings.drop_element=k+"_filelist";c("#"+k+"_filelist").append('
  • '+a("Drag files here.")+"
  • ")}c("#"+k+"_container").attr("title","Using runtime: "+m.runtime);c("a.plupload_start",i).click(function(n){if(!c(this).hasClass("plupload_disabled")){j.start()}n.preventDefault()});c("a.plupload_stop",i).click(function(n){n.preventDefault();j.stop()});c("a.plupload_start",i).addClass("plupload_disabled")});j.init();j.bind("Error",function(l,o){var m=o.file,n;if(m){n=o.message;if(o.details){n+=" ("+o.details+")"}if(o.code==plupload.FILE_SIZE_ERROR){alert(a("Error: File too large: ")+m.name)}if(o.code==plupload.FILE_EXTENSION_ERROR){alert(a("Error: Invalid file extension: ")+m.name)}m.hint=n;c("#"+m.id).attr("class","plupload_failed").find("a").css("display","block").attr("title",n)}});j.bind("StateChanged",function(){if(j.state===plupload.STARTED){c("li.plupload_delete a,div.plupload_buttons",i).hide();c("span.plupload_upload_status,div.plupload_progress,a.plupload_stop",i).css("display","block");c("span.plupload_upload_status",i).text("Uploaded "+j.total.uploaded+"/"+j.files.length+" files");if(e.multiple_queues){c("span.plupload_total_status,span.plupload_total_file_size",i).show()}}else{g();c("a.plupload_stop,div.plupload_progress",i).hide();c("a.plupload_delete",i).css("display","block")}});j.bind("QueueChanged",g);j.bind("FileUploaded",function(l,m){h(m)});j.bind("UploadProgress",function(l,m){c("#"+m.id+" div.plupload_file_status",i).html(m.percent+"%");h(m);f();if(e.multiple_queues&&j.total.uploaded+j.total.failed==j.files.length){c(".plupload_buttons,.plupload_upload_status",i).css("display","inline");c(".plupload_start",i).addClass("plupload_disabled");c("span.plupload_total_status,span.plupload_total_file_size",i).hide()}});if(e.setup){e.setup(j)}});return this}else{return d[c(this[0]).attr("id")]}}})(jQuery); \ No newline at end of file diff --git a/ui/lib/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css b/ui/lib/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css new file mode 100644 index 0000000..a524f2d --- /dev/null +++ b/ui/lib/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css @@ -0,0 +1,147 @@ +/* + Plupload +------------------------------------------------------------------- */ + +.plupload_button {cursor: pointer;} + +.plupload_wrapper { + font: normal 11px Verdana,sans-serif; + width: 100%; +} + +.plupload .plupload_container input {width: 98%;} +.plupload .plupload_filelist_footer {border-width: 1px 0 0 0} +.plupload .plupload_filelist_header {border-width: 0 0 1px 0} +div.plupload .plupload_file {border-width: 0 0 1px 0} +div.plupload div.plupload_header {border-width: 0 0 1px 0; position: relative;} + +.plupload_file .ui-icon { + cursor:pointer; +} + +.plupload_header_content { + background-image: url('../img/plupload.png'); + background-repeat: no-repeat; + background-position: 8px center; + min-height: 56px; + padding-left: 60px; + position:relative; +} +.plupload_header_content_bw {background-image: url('../img/plupload-bw.png');} +.plupload_header_title { + font: normal 18px sans-serif; + padding: 6px 0 3px; +} +.plupload_header_text {font: normal 12px sans-serif;} + +.plupload_filelist, +.plupload_filelist_content { + border-collapse: collapse; + margin: 0; + padding: 0; + width: 100%; + -moz-user-select:none; + -webkit-user-select:none; + user-select:none; +} + +.plupload_cell {padding: 8px 6px;} + +.plupload_file { + border-left: none; + border-right: none; +} + +.plupload .ui-sortable-helper, +.plupload .ui-sortable .plupload_file { + cursor:move; +} + +.plupload_scroll { + max-height: 180px; + min-height: 168px; + _height: 168px; + overflow-y: auto; +} + +.plupload_file_size, .plupload_file_status {text-align: right;} +.plupload_file_size, .plupload_file_status {width: 52px;} +.plupload_file_action {width: 16px;} +.plupload_file_name { + overflow: hidden; + padding-left: 10px; +} + +.plupload_file_rename { + width:95%; +} + +.plupload_progress {width: 60px;} +.plupload_progress_container {padding: 1px;} + + +/* Floats */ + +.plupload_right {float: right;} +.plupload_left {float: left;} +.plupload_clear,.plupload_clearer {clear: both;} +.plupload_clearer, .plupload_progress_bar { + display: block; + font-size: 0; + line-height: 0; +} +.plupload_clearer {height: 0;} + +/* Misc */ +.plupload_hidden {display: none;} +.plupload_droptext { + background: transparent; + text-align: center; + vertical-align: middle; + border: 0; + line-height: 165px; +} + +.plupload_buttons, .plupload_upload_status {float: left} + +.plupload_message { + position: absolute; + top: 0px; + left: 0px; + height: 100%; + width: 100%; +} + +.plupload_message p { + padding:0.7em; + margin:0; +} + +.plupload_message strong { + font-weight: bold; +} + +plupload_message i { + font-style: italic; +} + +.plupload_message p span.ui-icon { + float: left; + margin-right: 0.3em; +} + +.plupload_header_content .ui-state-error, +.plupload_header_content .ui-state-highlight { + border:none; +} + +.plupload_message_close { + position:absolute; + top:5px; + right:5px; + cursor:pointer; +} + +.plupload .ui-sortable-placeholder { + height:35px; +} diff --git a/ui/lib/plupload/jquery.ui.plupload/img/plupload-bw.png b/ui/lib/plupload/jquery.ui.plupload/img/plupload-bw.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4147e8ef676988e03187f3439b1d1724cdc272 GIT binary patch literal 2105 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 literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.ui.plupload/img/plupload.png b/ui/lib/plupload/jquery.ui.plupload/img/plupload.png new file mode 100644 index 0000000000000000000000000000000000000000..74fa3ad3a5fadd02edd5212426767e2b6e6ad685 GIT binary patch literal 3641 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 LNkvXXu0mjfYMjR1 literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/jquery.ui.plupload/jquery.ui.plupload.js b/ui/lib/plupload/jquery.ui.plupload/jquery.ui.plupload.js new file mode 100644 index 0000000..a836bb6 --- /dev/null +++ b/ui/lib/plupload/jquery.ui.plupload/jquery.ui.plupload.js @@ -0,0 +1 @@ +(function(f,a,c,g,e){var h={};function b(i){return c.translate(i)||i}function d(i){i.html('
    '+b("Select files")+'
    '+b("Add files to the upload queue and click the start button.")+'
    '+b("Filename")+''+b("Status")+''+b("Size")+' 
    ')}g.widget("ui.plupload",{contents_bak:"",runtime:null,options:{browse_button_hover:"ui-state-hover",browse_button_active:"ui-state-active",dragdrop:true,multiple_queues:true,buttons:{browse:true,start:true,stop:true},autostart:false,sortable:false,rename:false,max_file_count:0},FILE_COUNT_ERROR:-9001,_create:function(){var i=this,k,j;k=this.element.attr("id");if(!k){k=c.guid();this.element.attr("id",k)}this.id=k;this.contents_bak=this.element.html();d(this.element);this.container=g(".plupload_container",this.element).attr("id",k+"_container");this.filelist=g(".plupload_filelist_content",this.container).attr({id:k+"_filelist",unselectable:"on"});this.browse_button=g(".plupload_add",this.container).attr("id",k+"_browse");this.start_button=g(".plupload_start",this.container).attr("id",k+"_start");this.stop_button=g(".plupload_stop",this.container).attr("id",k+"_stop");if(g.ui.button){this.browse_button.button({icons:{primary:"ui-icon-circle-plus"}});this.start_button.button({icons:{primary:"ui-icon-circle-arrow-e"},disabled:true});this.stop_button.button({icons:{primary:"ui-icon-circle-close"}})}this.progressbar=g(".plupload_progress_container",this.container);if(g.ui.progressbar){this.progressbar.progressbar()}this.counter=g(".plupload_count",this.element).attr({id:k+"_count",name:k+"_count"});j=this.uploader=h[k]=new c.Uploader(g.extend({container:k,browse_button:k+"_browse"},this.options));j.bind("Error",function(l,m){if(m.code===c.INIT_ERROR){i.destroy()}});j.bind("Init",function(l,m){if(!i.options.buttons.browse){i.browse_button.button("disable").hide();l.disableBrowse(true)}if(!i.options.buttons.start){i.start_button.button("disable").hide()}if(!i.options.buttons.stop){i.stop_button.button("disable").hide()}if(!i.options.unique_names&&i.options.rename){i._enableRenaming()}if(j.features.dragdrop&&i.options.dragdrop){i._enableDragAndDrop()}i.container.attr("title",b("Using runtime: ")+(i.runtime=m.runtime));i.start_button.click(function(n){if(!g(this).button("option","disabled")){i.start()}n.preventDefault()});i.stop_button.click(function(n){i.stop();n.preventDefault()})});if(i.options.max_file_count){j.bind("FilesAdded",function(l,n){var o=[],m=n.length;var p=l.files.length+m-i.options.max_file_count;if(p>0){o=n.splice(m-p,p);l.trigger("Error",{code:i.FILE_COUNT_ERROR,message:b("File count error."),file:o})}})}j.init();j.bind("FilesAdded",function(l,m){i._trigger("selected",null,{up:l,files:m});if(i.options.autostart){setTimeout(function(){i.start()},10)}});j.bind("FilesRemoved",function(l,m){i._trigger("removed",null,{up:l,files:m})});j.bind("QueueChanged",function(){i._updateFileList()});j.bind("StateChanged",function(){i._handleState()});j.bind("UploadFile",function(l,m){i._handleFileStatus(m)});j.bind("FileUploaded",function(l,m){i._handleFileStatus(m);i._trigger("uploaded",null,{up:l,file:m})});j.bind("UploadProgress",function(l,m){g("#"+m.id).find(".plupload_file_status").html(m.percent+"%").end().find(".plupload_file_size").html(c.formatSize(m.size));i._handleFileStatus(m);i._updateTotalProgress();i._trigger("progress",null,{up:l,file:m})});j.bind("UploadComplete",function(l,m){i._trigger("complete",null,{up:l,files:m})});j.bind("Error",function(l,p){var n=p.file,o,m;if(n){o=""+p.message+"";m=p.details;if(m){o+="
    "+p.details+""}else{switch(p.code){case c.FILE_EXTENSION_ERROR:m=b("File: %s").replace("%s",n.name);break;case c.FILE_SIZE_ERROR:m=b("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g,function(r,q){switch(q){case"f":return n.name;case"s":return n.size;case"m":return c.parseSize(i.options.max_file_size)}});break;case i.FILE_COUNT_ERROR:m=b("Upload element accepts only %d file(s) at a time. Extra files were stripped.").replace("%d",i.options.max_file_count);break;case c.IMAGE_FORMAT_ERROR:m=c.translate("Image format either wrong or not supported.");break;case c.IMAGE_MEMORY_ERROR:m=c.translate("Runtime ran out of available memory.");break;case c.IMAGE_DIMENSIONS_ERROR:m=c.translate("Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.").replace(/%([swh])/g,function(r,q){switch(q){case"s":return l.runtime;case"w":return l.features.maxWidth;case"h":return l.features.maxHeight}});break;case c.HTTP_ERROR:m=b("Upload URL might be wrong or doesn't exist");break}o+="
    "+m+""}i.notify("error",o);i._trigger("error",null,{up:l,file:n,error:o})}})},_setOption:function(j,k){var i=this;if(j=="buttons"&&typeof(k)=="object"){k=g.extend(i.options.buttons,k);if(!k.browse){i.browse_button.button("disable").hide();up.disableBrowse(true)}else{i.browse_button.button("enable").show();up.disableBrowse(false)}if(!k.start){i.start_button.button("disable").hide()}else{i.start_button.button("enable").show()}if(!k.stop){i.stop_button.button("disable").hide()}else{i.start_button.button("enable").show()}}i.uploader.settings[j]=k},start:function(){this.uploader.start();this._trigger("start",null)},stop:function(){this.uploader.stop();this._trigger("stop",null)},getFile:function(j){var i;if(typeof j==="number"){i=this.uploader.files[j]}else{i=this.uploader.getFile(j)}return i},removeFile:function(j){var i=this.getFile(j);if(i){this.uploader.removeFile(i)}},clearQueue:function(){this.uploader.splice()},getUploader:function(){return this.uploader},refresh:function(){this.uploader.refresh()},_handleState:function(){var j=this,i=this.uploader;if(i.state===c.STARTED){g(j.start_button).button("disable");g([]).add(j.stop_button).add(".plupload_started").removeClass("plupload_hidden");g(".plupload_upload_status",j.element).text(b("Uploaded %d/%d files").replace("%d/%d",i.total.uploaded+"/"+i.files.length));g(".plupload_header_content",j.element).addClass("plupload_header_content_bw")}else{g([]).add(j.stop_button).add(".plupload_started").addClass("plupload_hidden");if(j.options.multiple_queues){g(j.start_button).button("enable");g(".plupload_header_content",j.element).removeClass("plupload_header_content_bw")}j._updateFileList()}},_handleFileStatus:function(l){var n,j;if(!g("#"+l.id).length){return}switch(l.status){case c.DONE:n="plupload_done";j="ui-icon ui-icon-circle-check";break;case c.FAILED:n="ui-state-error plupload_failed";j="ui-icon ui-icon-alert";break;case c.QUEUED:n="plupload_delete";j="ui-icon ui-icon-circle-minus";break;case c.UPLOADING:n="ui-state-highlight plupload_uploading";j="ui-icon ui-icon-circle-arrow-w";var i=g(".plupload_scroll",this.container),m=i.scrollTop(),o=i.height(),k=g("#"+l.id).position().top+g("#"+l.id).height();if(o'}i+='';i+='';l++;k.counter.val(l)}m.append(''+p.name+''+p.percent+'%'+c.formatSize(p.size)+'
    '+i+"");k._handleFileStatus(p);g("#"+p.id+".plupload_delete .ui-icon, #"+p.id+".plupload_done .ui-icon").click(function(r){g("#"+p.id).remove();j.removeFile(p);r.preventDefault()});k._trigger("updatelist",null,m)});if(j.total.queued===0){g(".ui-button-text",k.browse_button).text(b("Add Files"))}else{g(".ui-button-text",k.browse_button).text(b("%d files queued").replace("%d",j.total.queued))}if(j.files.length===(j.total.uploaded+j.total.failed)){k.start_button.button("disable")}else{k.start_button.button("enable")}m[0].scrollTop=m[0].scrollHeight;k._updateTotalProgress();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){g("#"+o+"_filelist").append(''+b("Drag files here.")+"")}else{if(k.options.sortable&&g.ui.sortable){k._enableSortingList()}}},_enableRenaming:function(){var i=this;g(".plupload_delete .plupload_file_name span",this.filelist).live("click",function(o){var m=g(o.target),k,n,j,l="";k=i.uploader.getFile(m.parents("tr")[0].id);j=k.name;n=/^(.+)(\.[^.]+)$/.exec(j);if(n){j=n[1];l=n[2]}m.hide().after('');m.next().val(j).focus().blur(function(){m.show().next().remove()}).keydown(function(q){var p=g(this);if(g.inArray(q.keyCode,[13,27])!==-1){q.preventDefault();if(q.keyCode===13){k.name=p.val()+l;m.text(k.name)}p.blur()}})})},_enableDragAndDrop:function(){this.filelist.append(''+b("Drag files here.")+"");this.filelist.parent().attr("id",this.id+"_dropbox");this.uploader.settings.drop_element=this.options.drop_element=this.id+"_dropbox"},_enableSortingList:function(){var j,i=this;if(g("tbody tr",this.filelist).length<2){return}g("tbody",this.filelist).sortable({containment:"parent",items:".plupload_delete",helper:function(l,k){return k.clone(true).find("td:not(.plupload_file_name)").remove().end().css("width","100%")},stop:function(p,o){var l,n,k,m=[];g.each(g(this).sortable("toArray"),function(q,r){m[m.length]=i.uploader.getFile(r)});m.unshift(m.length);m.unshift(0);Array.prototype.splice.apply(i.uploader.files,m)}})},notify:function(j,k){var i=g('

    '+k+"

    ");i.addClass("ui-state-"+(j==="error"?"error":"highlight")).find("p .ui-icon").addClass("ui-icon-"+(j==="error"?"alert":"info")).end().find(".plupload_message_close").click(function(){i.remove()}).end();g(".plupload_header_content",this.container).append(i)},destroy:function(){g(".plupload_button",this.element).unbind();if(g.ui.button){g(".plupload_add, .plupload_start, .plupload_stop",this.container).button("destroy")}if(g.ui.progressbar){this.progressbar.progressbar("destroy")}if(g.ui.sortable&&this.options.sortable){g("tbody",this.filelist).sortable("destroy")}this.uploader.destroy();this.element.empty().html(this.contents_bak);this.contents_bak="";g.Widget.prototype.destroy.apply(this)}})}(window,document,plupload,jQuery)); \ No newline at end of file diff --git a/ui/lib/plupload/license.txt b/ui/lib/plupload/license.txt new file mode 100644 index 0000000..d511905 --- /dev/null +++ b/ui/lib/plupload/license.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/ui/lib/plupload/plupload.browserplus.js b/ui/lib/plupload/plupload.browserplus.js new file mode 100644 index 0000000..e66404b --- /dev/null +++ b/ui/lib/plupload/plupload.browserplus.js @@ -0,0 +1 @@ +(function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true,multi_selection:true}},init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v';if(d.ua.ie){q=b.createElement("div");l.appendChild(q);q.outerHTML=p;q=null}else{l.innerHTML=p}}());function n(){return b.getElementById(m.id+"_flash")}function j(){if(h++>5000){o({success:false});return}if(g[m.id]===false){setTimeout(j,1)}}j();k=l=null;m.bind("Destroy",function(p){var q;d.removeAllEvents(b.body,p.id);delete g[p.id];delete a[p.id];q=b.getElementById(p.id+"_flash_container");if(q){i.removeChild(q)}});m.bind("Flash:Init",function(){var r={},q;try{n().setFileFilters(m.settings.filters,m.settings.multi_selection)}catch(p){o({success:false});return}if(g[m.id]){return}g[m.id]=true;m.bind("UploadFile",function(s,u){var v=s.settings,t=m.settings.resize||{};n().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});m.bind("CancelUpload",function(){n().cancelUpload()});m.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});m.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!==d.FAILED&&s.state!==d.STOPPED){n().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});m.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;tvz?f6sj{X$$E5 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 M+N$(_02cX}Gs;*UVE_OC literal 0 HcmV?d00001 diff --git a/ui/lib/plupload/plupload.full.js b/ui/lib/plupload/plupload.full.js new file mode 100644 index 0000000..ea5f93b --- /dev/null +++ b/ui/lib/plupload/plupload.full.js @@ -0,0 +1,2 @@ +/*1.5.4*/ +(function(){var f=0,l=[],n={},j={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},m=/[<>&\"\']/g,b,c=window.setTimeout,d={},e;function h(){this.returnValue=false}function k(){this.cancelBubble=true}(function(o){var p=o.split(/,/),q,s,r;for(q=0;q0){g.each(p,function(s,r){o[r]=s})}});return o},cleanName:function(o){var p,q;q=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(p=0;p0?"&":"?")+q}return p},each:function(r,s){var q,p,o;if(r){q=r.length;if(q===b){for(p in r){if(r.hasOwnProperty(p)){if(s(r[p],p)===false){return}}}}else{for(o=0;o1073741824){return Math.round(o/1073741824,1)+" GB"}if(o>1048576){return Math.round(o/1048576,1)+" MB"}if(o>1024){return Math.round(o/1024,1)+" KB"}return o+" b"},getPos:function(p,t){var u=0,s=0,w,v=document,q,r;p=p;t=t||v.body;function o(C){var A,B,z=0,D=0;if(C){B=C.getBoundingClientRect();A=v.compatMode==="CSS1Compat"?v.documentElement:v.body;z=B.left+A.scrollLeft;D=B.top+A.scrollTop}return{x:z,y:D}}if(p&&p.getBoundingClientRect&&((navigator.userAgent.indexOf("MSIE")>0)&&(v.documentMode<8))){q=o(p);r=o(t);return{x:q.x-r.x,y:q.y-r.y}}w=p;while(w&&w!=t&&w.nodeType){u+=w.offsetLeft||0;s+=w.offsetTop||0;w=w.offsetParent}w=p.parentNode;while(w&&w!=t&&w.nodeType){u-=w.scrollLeft||0;s-=w.scrollTop||0;w=w.parentNode}return{x:u,y:s}},getSize:function(o){return{w:o.offsetWidth||o.clientWidth,h:o.offsetHeight||o.clientHeight}},parseSize:function(o){var p;if(typeof(o)=="string"){o=/^([0-9]+)([mgk]?)$/.exec(o.toLowerCase().replace(/[^0-9mkg]/g,""));p=o[2];o=+o[1];if(p=="g"){o*=1073741824}if(p=="m"){o*=1048576}if(p=="k"){o*=1024}}return o},xmlEncode:function(o){return o?(""+o).replace(m,function(p){return a[p]?"&"+a[p]+";":p}):o},toArray:function(q){var p,o=[];for(p=0;p=0;p--){if(r[p].key===q||r[p].orig===u){if(t.removeEventListener){t.removeEventListener(o,r[p].func,false)}else{if(t.detachEvent){t.detachEvent("on"+o,r[p].func)}}r[p].orig=null;r[p].func=null;r.splice(p,1);if(u!==b){break}}}if(!r.length){delete d[t[e]][o]}if(g.isEmptyObj(d[t[e]])){delete d[t[e]];try{delete t[e]}catch(s){t[e]=b}}},removeAllEvents:function(p){var o=arguments[1];if(p[e]===b||!p[e]){return}g.each(d[p[e]],function(r,q){g.removeEvent(p,q,o)})}};g.Uploader=function(s){var p={},v,u=[],r,q=false;v=new g.QueueProgress();s=g.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},s);function t(){var x,y=0,w;if(this.state==g.STARTED){for(w=0;w0?Math.ceil(v.uploaded/u.length*100):0}else{v.bytesPerSec=Math.ceil(v.loaded/((+new Date()-r||1)/1000));v.percent=v.size>0?Math.ceil(v.loaded/v.size*100):0}}g.extend(this,{state:g.STOPPED,runtime:"",features:{},files:u,settings:s,total:v,id:g.guid(),init:function(){var B=this,C,y,x,A=0,z;if(typeof(s.preinit)=="function"){s.preinit(B)}else{g.each(s.preinit,function(E,D){B.bind(D,E)})}s.page_url=s.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(s.url)){s.url=s.page_url+s.url}s.chunk_size=g.parseSize(s.chunk_size);s.max_file_size=g.parseSize(s.max_file_size);B.bind("FilesAdded",function(D,G){var F,E,I=0,J,H=s.filters;if(H&&H.length){J=[];g.each(H,function(K){g.each(K.extensions.split(/,/),function(L){if(/^\s*\*\s*$/.test(L)){J.push("\\.*")}else{J.push("\\."+L.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))}})});J=new RegExp(J.join("|")+"$","i")}for(F=0;Fs.max_file_size){D.trigger("Error",{code:g.FILE_SIZE_ERROR,message:g.translate("File size error."),file:E});continue}u.push(E);I++}if(I){c(function(){B.trigger("QueueChanged");B.refresh()},1)}else{return false}});if(s.unique_names){B.bind("UploadFile",function(D,E){var G=E.name.match(/\.([^.]+)$/),F="tmp";if(G){F=G[1]}E.target_name=E.id+"."+F})}B.bind("UploadProgress",function(D,E){E.percent=E.size>0?Math.ceil(E.loaded/E.size*100):100;o()});B.bind("StateChanged",function(D){if(D.state==g.STARTED){r=(+new Date())}else{if(D.state==g.STOPPED){for(C=D.files.length-1;C>=0;C--){if(D.files[C].status==g.UPLOADING){D.files[C].status=g.QUEUED;o()}}}}});B.bind("QueueChanged",o);B.bind("Error",function(D,E){if(E.file){E.file.status=g.FAILED;o();if(D.state==g.STARTED){c(function(){t.call(B)},1)}}});B.bind("FileUploaded",function(D,E){E.status=g.DONE;E.loaded=E.size;D.trigger("UploadProgress",E);c(function(){t.call(B)},1)});if(s.runtimes){y=[];z=s.runtimes.split(/\s?,\s?/);for(C=0;C=0;w--){if(u[w].id===x){return u[w]}}},removeFile:function(x){var w;for(w=u.length-1;w>=0;w--){if(u[w].id===x.id){return this.splice(w,1)[0]}}},splice:function(y,w){var x;x=u.splice(y===b?0:y,w===b?u.length:w);this.trigger("FilesRemoved",x);this.trigger("QueueChanged");return x},trigger:function(x){var z=p[x.toLowerCase()],y,w;if(z){w=Array.prototype.slice.call(arguments);w[0]=this;for(y=0;y=0;x--){if(z[x].func===y){z.splice(x,1);break}}}else{z=[]}if(!z.length){delete p[w]}}},unbindAll:function(){var w=this;g.each(p,function(y,x){w.unbind(x)})},destroy:function(){this.stop();this.trigger("Destroy");this.unbindAll()}})};g.File=function(r,p,q){var o=this;o.id=r;o.name=p;o.size=q;o.loaded=0;o.percent=0;o.status=0};g.Runtime=function(){this.getFeatures=function(){};this.init=function(o,p){}};g.QueueProgress=function(){var o=this;o.size=0;o.loaded=0;o.uploaded=0;o.failed=0;o.queued=0;o.percent=0;o.bytesPerSec=0;o.reset=function(){o.size=o.loaded=o.uploaded=o.failed=o.queued=o.percent=o.bytesPerSec=0}};g.runtimes={};window.plupload=g})();(function(){if(window.google&&google.gears){return}var a=null;if(typeof GearsFactory!="undefined"){a=new GearsFactory()}else{try{a=new ActiveXObject("Gears.Factory");if(a.getBuildInfo().indexOf("ie_mobile")!=-1){a.privateSetGlobalObject(this)}}catch(b){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}}if(!a){return}if(!window.google){window.google={}}if(!google.gears){google.gears={factory:a}}})();(function(e,b,c,d){var f={};function a(h,k,m){var g,j,l,o;j=google.gears.factory.create("beta.canvas");try{j.decode(h);if(!k.width){k.width=j.width}if(!k.height){k.height=j.height}o=Math.min(width/j.width,height/j.height);if(o<1||(o===1&&m==="image/jpeg")){j.resize(Math.round(j.width*o),Math.round(j.height*o));if(k.quality){return j.encode(m,{quality:k.quality/100})}return j.encode(m)}}catch(n){}return h}c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true,multi_selection:true}},init:function(l,n){var m,h,g=false;if(!e.google||!google.gears){return n({success:false})}try{m=google.gears.factory.create("beta.desktop")}catch(k){return n({success:false})}function j(q){var p,o,r=[],s;for(o=0;o0;v=Math.ceil(r.size/s);if(!o){s=r.size;v=1}function p(){var C,y=u.settings.multipart,x=0,B={name:r.target_name||r.name},z=u.settings.url;function A(E){var D,J="----pluploadboundary"+c.guid(),G="--",I="\r\n",F,H;if(y){h.setRequestHeader("Content-Type","multipart/form-data; boundary="+J);D=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(B,u.settings.multipart_params),function(L,K){D.append(G+J+I+'Content-Disposition: form-data; name="'+K+'"'+I+I);D.append(L+I)});H=c.mimeTypes[r.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";D.append(G+J+I+'Content-Disposition: form-data; name="'+u.settings.file_data_name+'"; filename="'+r.name+'"'+I+"Content-Type: "+H+I+I);D.append(E);D.append(I+G+J+G+I);F=D.getAsBlob();x=F.length-E.length;E=F}h.send(E)}if(r.status==c.DONE||r.status==c.FAILED||u.state==c.STOPPED){return}if(o){B.chunk=w;B.chunks=v}C=Math.min(s,r.size-(w*s));if(!y){z=c.buildUrl(u.settings.url,B)}h=google.gears.factory.create("beta.httprequest");h.open("POST",z);if(!y){h.setRequestHeader("Content-Disposition",'attachment; filename="'+r.name+'"');h.setRequestHeader("Content-Type","application/octet-stream")}c.each(u.settings.headers,function(E,D){h.setRequestHeader(D,E)});h.upload.onprogress=function(D){r.loaded=t+D.loaded-x;u.trigger("UploadProgress",r)};h.onreadystatechange=function(){var D;if(h.readyState==4&&u.state!==c.STOPPED){if(h.status==200){D={chunk:w,chunks:v,response:h.responseText,status:h.status};u.trigger("ChunkUploaded",r,D);if(D.cancelled){r.status=c.FAILED;return}t+=C;if(++w>=v){r.status=c.DONE;u.trigger("FileUploaded",r,{response:h.responseText,status:h.status})}else{p()}}else{u.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:r,chunk:w,chunks:v,status:h.status})}}};if(w3){l.pop()}while(l.length<4){l.push(0)}m=s.split(".");while(m.length>4){m.pop()}do{u=parseInt(m[q],10);n=parseInt(l[q],10);q++}while(q8?"":0.01});o.className="plupload silverlight";if(p.settings.container){k=b.getElementById(p.settings.container);if(d.getStyle(k,"position")==="static"){k.style.position="relative"}}k.appendChild(o);for(l=0;l';function j(){return b.getElementById(p.id+"_silverlight").content.Upload}p.bind("Silverlight:Init",function(){var r,s={};if(h[p.id]){return}h[p.id]=true;p.bind("Silverlight:StartSelectFiles",function(t){r=[]});p.bind("Silverlight:SelectFile",function(t,w,u,v){var x;x=d.guid();s[x]=w;s[w]=x;r.push(new d.File(x,u,v))});p.bind("Silverlight:SelectSuccessful",function(){if(r.length){p.trigger("FilesAdded",r)}});p.bind("Silverlight:UploadChunkError",function(t,w,u,x,v){p.trigger("Error",{code:d.IO_ERROR,message:"IO Error.",details:v,file:t.getFile(s[w])})});p.bind("Silverlight:UploadFileProgress",function(t,x,u,w){var v=t.getFile(s[x]);if(v.status!=d.FAILED){v.size=w;v.loaded=u;t.trigger("UploadProgress",v)}});p.bind("Refresh",function(t){var u,v,w;u=b.getElementById(t.settings.browse_button);if(u){v=d.getPos(u,b.getElementById(t.settings.container));w=d.getSize(u);d.extend(b.getElementById(t.id+"_silverlight_container").style,{top:v.y+"px",left:v.x+"px",width:w.w+"px",height:w.h+"px"})}});p.bind("Silverlight:UploadChunkSuccessful",function(t,w,u,z,y){var x,v=t.getFile(s[w]);x={chunk:u,chunks:z,response:y};t.trigger("ChunkUploaded",v,x);if(v.status!=d.FAILED&&t.state!==d.STOPPED){j().UploadNextChunk()}if(u==z-1){v.status=d.DONE;t.trigger("FileUploaded",v,{response:y})}});p.bind("Silverlight:UploadSuccessful",function(t,w,u){var v=t.getFile(s[w]);v.status=d.DONE;t.trigger("FileUploaded",v,{response:u})});p.bind("FilesRemoved",function(t,v){var u;for(u=0;u';if(d.ua.ie){r=b.createElement("div");m.appendChild(r);r.outerHTML=q;r=null}else{m.innerHTML=q}}());function o(){return b.getElementById(n.id+"_flash")}function k(){if(h++>5000){p({success:false});return}if(g[n.id]===false){setTimeout(k,1)}}k();l=m=null;n.bind("Destroy",function(q){var r;d.removeAllEvents(b.body,q.id);delete g[q.id];delete a[q.id];r=b.getElementById(q.id+"_flash_container");if(r){j.removeChild(r)}});n.bind("Flash:Init",function(){var s={},r;try{o().setFileFilters(n.settings.filters,n.settings.multi_selection)}catch(q){p({success:false});return}if(g[n.id]){return}g[n.id]=true;n.bind("UploadFile",function(t,v){var w=t.settings,u=n.settings.resize||{};o().uploadFile(s[v.id],w.url,{name:v.target_name||v.name,mime:d.mimeTypes[v.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:w.chunk_size,width:u.width,height:u.height,quality:u.quality,multipart:w.multipart,multipart_params:w.multipart_params||{},file_data_name:w.file_data_name,format:/\.(jpg|jpeg)$/i.test(v.name)?"jpg":"png",headers:w.headers,urlstream_upload:w.urlstream_upload})});n.bind("CancelUpload",function(){o().cancelUpload()});n.bind("Flash:UploadProcess",function(u,t){var v=u.getFile(s[t.id]);if(v.status!=d.FAILED){v.loaded=t.loaded;v.size=t.size;u.trigger("UploadProgress",v)}});n.bind("Flash:UploadChunkComplete",function(t,v){var w,u=t.getFile(s[v.id]);w={chunk:v.chunk,chunks:v.chunks,response:v.text};t.trigger("ChunkUploaded",u,w);if(u.status!==d.FAILED&&t.state!==d.STOPPED){o().uploadNextChunk()}if(v.chunk==v.chunks-1){u.status=d.DONE;t.trigger("FileUploaded",u,{response:v.text})}});n.bind("Flash:SelectFiles",function(t,w){var v,u,x=[],y;for(u=0;u0){s(++u,w)}else{l.status=a.DONE;o.trigger("FileUploaded",l,{response:y.value.body,status:x});if(x>=400){o.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:l,status:x})}}}else{o.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:l,details:y.error})}})}function r(u){l.size=u.size;if(m){e.FileAccess.chunk({file:u,chunkSize:m},function(x){if(x.success){var y=x.value,v=y.length;p=Array(v);for(var w=0;w";G.scrollTop=100;E=k.getElementById(p.id+"_html5");if(w.features.triggerDialog){j.extend(E.style,{position:"absolute",width:"100%",height:"100%"})}else{j.extend(E.style,{cssFloat:"right",styleFloat:"right"})}E.onchange=function(){o(this.files);this.value=""};F=k.getElementById(w.settings.browse_button);if(F){var z=w.settings.browse_button_hover,A=w.settings.browse_button_active,x=w.features.triggerDialog?F:G;if(z){j.addEvent(x,"mouseover",function(){j.addClass(F,z)},w.id);j.addEvent(x,"mouseout",function(){j.removeClass(F,z)},w.id)}if(A){j.addEvent(x,"mousedown",function(){j.addClass(F,A)},w.id);j.addEvent(k.body,"mouseup",function(){j.removeClass(F,A)},w.id)}if(w.features.triggerDialog){j.addEvent(F,"click",function(H){var y=k.getElementById(w.id+"_html5");if(y&&!y.disabled){y.click()}H.preventDefault()},w.id)}}});p.bind("PostInit",function(){var s=k.getElementById(p.settings.drop_element);if(s){if(g){j.addEvent(s,"dragenter",function(w){var v,t,u;v=k.getElementById(p.id+"_drop");if(!v){v=k.createElement("input");v.setAttribute("type","file");v.setAttribute("id",p.id+"_drop");v.setAttribute("multiple","multiple");j.addEvent(v,"change",function(){o(this.files);j.removeEvent(v,"change",p.id);v.parentNode.removeChild(v)},p.id);s.appendChild(v)}t=j.getPos(s,k.getElementById(p.settings.container));u=j.getSize(s);if(j.getStyle(s,"position")==="static"){j.extend(s.style,{position:"relative"})}j.extend(v.style,{position:"absolute",display:"block",top:0,left:0,width:u.w+"px",height:u.h+"px",opacity:0})},p.id);return}j.addEvent(s,"dragover",function(t){t.preventDefault()},p.id);j.addEvent(s,"drop",function(u){var t=u.dataTransfer;if(t&&t.files){o(t.files)}u.preventDefault()},p.id)}});p.bind("Refresh",function(s){var t,u,v,x,w;t=k.getElementById(p.settings.browse_button);if(t){u=j.getPos(t,k.getElementById(s.settings.container));v=j.getSize(t);x=k.getElementById(p.id+"_html5_container");j.extend(x.style,{top:u.y+"px",left:u.x+"px",width:v.w+"px",height:v.h+"px"});if(p.features.triggerDialog){if(j.getStyle(t,"position")==="static"){j.extend(t.style,{position:"relative"})}w=parseInt(j.getStyle(t,"z-index"),10);if(isNaN(w)){w=0}j.extend(t.style,{zIndex:w});j.extend(x.style,{zIndex:w-1})}}});p.bind("DisableBrowse",function(s,u){var t=k.getElementById(s.id+"_html5");if(t){t.disabled=u}});p.bind("CancelUpload",function(){if(q&&q.abort){q.abort()}});p.bind("UploadFile",function(s,u){var v=s.settings,y,t;function x(A,D,z){var B;if(File.prototype.slice){try{A.slice();return A.slice(D,z)}catch(C){return A.slice(D,z-D)}}else{if(B=File.prototype.webkitSlice||File.prototype.mozSlice){return B.call(A,D,z)}else{return null}}}function w(A){var D=0,C=0,z=("FileReader" in h)?new FileReader:null;function B(){var I,M,K,L,H,J,F,E=s.settings.url;function G(V){var T=0,N="----pluploadboundary"+j.guid(),O,P="--",U="\r\n",R="";q=new XMLHttpRequest;if(q.upload){q.upload.onprogress=function(W){u.loaded=Math.min(u.size,C+W.loaded-T);s.trigger("UploadProgress",u)}}q.onreadystatechange=function(){var W,Y;if(q.readyState==4&&s.state!==j.STOPPED){try{W=q.status}catch(X){W=0}if(W>=400){s.trigger("Error",{code:j.HTTP_ERROR,message:j.translate("HTTP Error."),file:u,status:W})}else{if(K){Y={chunk:D,chunks:K,response:q.responseText,status:W};s.trigger("ChunkUploaded",u,Y);C+=J;if(Y.cancelled){u.status=j.FAILED;return}u.loaded=Math.min(u.size,(D+1)*H)}else{u.loaded=u.size}s.trigger("UploadProgress",u);V=I=O=R=null;if(!K||++D>=K){u.status=j.DONE;s.trigger("FileUploaded",u,{response:q.responseText,status:W})}else{B()}}}};if(s.settings.multipart&&n.multipart){L.name=u.target_name||u.name;q.open("post",E,true);j.each(s.settings.headers,function(X,W){q.setRequestHeader(W,X)});if(typeof(V)!=="string"&&!!h.FormData){O=new FormData();j.each(j.extend(L,s.settings.multipart_params),function(X,W){O.append(W,X)});O.append(s.settings.file_data_name,V);q.send(O);return}if(typeof(V)==="string"){q.setRequestHeader("Content-Type","multipart/form-data; boundary="+N);j.each(j.extend(L,s.settings.multipart_params),function(X,W){R+=P+N+U+'Content-Disposition: form-data; name="'+W+'"'+U+U;R+=unescape(encodeURIComponent(X))+U});F=j.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";R+=P+N+U+'Content-Disposition: form-data; name="'+s.settings.file_data_name+'"; filename="'+unescape(encodeURIComponent(u.name))+'"'+U+"Content-Type: "+F+U+U+V+U+P+N+P+U;T=R.length-V.length;V=R;if(q.sendAsBinary){q.sendAsBinary(V)}else{if(n.canSendBinary){var S=new Uint8Array(V.length);for(var Q=0;Qv.chunk_size&&(n.chunks||typeof(A)=="string")){H=v.chunk_size;K=Math.ceil(u.size/H);J=Math.min(H,u.size-(D*H));if(typeof(A)=="string"){I=A.substring(D*H,D*H+J)}else{I=x(A,D*H,D*H+J)}L.chunk=D;L.chunks=K}else{J=u.size;I=A}if(s.settings.multipart&&n.multipart&&typeof(I)!=="string"&&z&&n.cantSendBlobInFormData&&n.chunks&&s.settings.chunk_size){z.onload=function(){G(z.result)};z.readAsBinaryString(I)}else{G(I)}}B()}y=c[u.id];if(n.jpgresize&&s.settings.resize&&/\.(png|jpg|jpeg)$/i.test(u.name)){d.call(s,u,s.settings.resize,/\.png$/i.test(u.name)?"image/png":"image/jpeg",function(z){if(z.success){u.size=z.data.length;w(z.data)}else{if(n.chunks){w(y)}else{l(y,w)}}})}else{if(!n.chunks&&n.jpgresize){l(y,w)}else{w(y)}}});p.bind("Destroy",function(s){var u,v,t=k.body,w={inputContainer:s.id+"_html5_container",inputFile:s.id+"_html5",browseButton:s.settings.browse_button,dropElm:s.settings.drop_element};for(u in w){v=k.getElementById(w[u]);if(v){j.removeAllEvents(v,s.id)}}j.removeAllEvents(k.body,s.id);if(s.settings.container){t=k.getElementById(s.settings.container)}t.removeChild(k.getElementById(w.inputContainer))});r({success:true})}});function b(){var q=false,o;function r(t,v){var s=q?0:-8*(v-1),w=0,u;for(u=0;u>Math.abs(s+v*8))&255)}n(x,t,w)}return{II:function(s){if(s===e){return q}else{q=s}},init:function(s){q=false;o=s},SEGMENT:function(s,u,t){switch(arguments.length){case 1:return o.substr(s,o.length-s-1);case 2:return o.substr(s,u);case 3:n(t,s,u);break;default:return o}},BYTE:function(s){return r(s,1)},SHORT:function(s){return r(s,2)},LONG:function(s,t){if(t===e){return r(s,4)}else{p(s,t,4)}},SLONG:function(s){var t=r(s,4);return(t>2147483647?t-4294967296:t)},STRING:function(s,t){var u="";for(t+=s;s=65488&&p<=65495){n+=2;continue}if(p===65498||p===65497){break}q=r.SHORT(n+2)+2;if(u[p]&&r.STRING(n+4,u[p].signature.length)===u[p].signature){t.push({hex:p,app:u[p].app.toUpperCase(),name:u[p].name.toUpperCase(),start:n,length:q,segment:r.SEGMENT(n,q)})}n+=q}r.init(null);return{headers:t,restore:function(y){r.init(y);var w=new f(y);if(!w.headers){return false}for(var x=w.headers.length;x>0;x--){var z=w.headers[x-1];r.SEGMENT(z.start,z.length,"")}w.purge();n=r.SHORT(2)==65504?4+r.SHORT(4):2;for(var x=0,v=t.length;x=z.length){break}}},purge:function(){t=[];r.init(null)}}}function a(){var q,n,o={},t;q=new b();n={tiff:{274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"},exif:{36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"},gps:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"}};t={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};function p(u,C){var w=q.SHORT(u),z,F,G,B,A,v,x,D,E=[],y={};for(z=0;z4){x=q.LONG(x)+o.tiffHeader}for(F=0;F4){x=q.LONG(x)+o.tiffHeader}y[G]=q.STRING(x,A-1);continue;case 3:if(A>2){x=q.LONG(x)+o.tiffHeader}for(F=0;F1){x=q.LONG(x)+o.tiffHeader}for(F=0;F