refinerycms-photo-gallery 0.0.1.dev
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +26 -0
- data/LICENSE.md +8 -0
- data/README.md +224 -0
- data/app/assets/images/refinery/photo_gallery/admin/chosen-sprite.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/album.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/album_add.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/album_edit.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/cog.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/down.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/folder.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/folder_add.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/folder_edit.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/loading.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/page_copy.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/photo.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/photo_add.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/photo_edit.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/icons/up.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/backgrounds.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/buttons-disabled.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/buttons.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/delete.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/done.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/error.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/throbber.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/transp50.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.ui.plupload/plupload-bw.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.ui.plupload/plupload.png +0 -0
- data/app/assets/images/refinery/photo_gallery/admin/rss-feed.png +0 -0
- data/app/assets/images/refinery/photo_gallery/fancybox/blank.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/fancybox/fancybox_loading.gif +0 -0
- data/app/assets/images/refinery/photo_gallery/fancybox/fancybox_sprite.png +0 -0
- data/app/assets/images/refinery/photo_gallery/fancybox/helpers/fancybox_buttons.png +0 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/jquery.chosen.min.js +10 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/photo_gallery.js +28 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/changelog.txt +218 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/cs.js +14 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/da.js +12 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/de.js +24 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/el.js +14 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/es.js +25 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/et.js +33 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fa.js +37 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fi.js +33 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fr-ca.js +35 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fr.js +25 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/hr.js +25 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/hu.js +33 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/it.js +24 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ja.js +37 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ko.js +36 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/lv.js +33 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/nl.js +21 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/pl.js +24 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/pt-br.js +35 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ro.js +24 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ru.js +21 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/sk.js +37 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/sr.js +14 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/sv.js +12 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/jquery.plupload.queue.js +195 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/jquery.ui.plupload.js +383 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/license.txt +339 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.browserplus.js +1 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.flash.js +226 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.flash.swf +0 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.full.js +2525 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.full.js.default +2525 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.gears.js +1 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html4.js +1 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html5.js +765 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html5.js.default +765 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.js +618 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.silverlight.js +1 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.silverlight.xap +0 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/readme.md +46 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/CHANGELOG.md +68 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/README.md +212 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-buttons.js +115 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-media.js +85 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-thumbs.js +157 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/jquery.fancybox.js +1463 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/jquery.fancybox.pack.js +35 -0
- data/app/assets/javascripts/refinery/photo_gallery/fancybox/lib/jquery.mousewheel-3.0.6.pack.js +13 -0
- data/app/assets/stylesheets/refinery/photo_gallery/admin/chosen.css.scss +396 -0
- data/app/assets/stylesheets/refinery/photo_gallery/admin/photo_gallery.css.scss +109 -0
- data/app/assets/stylesheets/refinery/photo_gallery/admin/plupload/jquery.plupload.queue.css.scss +177 -0
- data/app/assets/stylesheets/refinery/photo_gallery/admin/plupload/jquery.ui.plupload.css.scss +147 -0
- data/app/assets/stylesheets/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-buttons.css.scss +85 -0
- data/app/assets/stylesheets/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-thumbs.css +54 -0
- data/app/assets/stylesheets/refinery/photo_gallery/fancybox/jquery.fancybox.css.scss +234 -0
- data/app/controllers/refinery/photo_gallery/admin/albums_controller.rb +23 -0
- data/app/controllers/refinery/photo_gallery/admin/collections_controller.rb +10 -0
- data/app/controllers/refinery/photo_gallery/admin/photos_controller.rb +67 -0
- data/app/controllers/refinery/photo_gallery/albums_controller.rb +21 -0
- data/app/controllers/refinery/photo_gallery/collections_controller.rb +28 -0
- data/app/helpers/refinery/photo_gallery/admin/photos_helper.rb +10 -0
- data/app/helpers/refinery/photo_gallery/albums_helper.rb +11 -0
- data/app/helpers/refinery/photo_gallery/photo_gallery_helper.rb +58 -0
- data/app/middleware/refinery/photo_gallery/admin/flash_session_cookie_middleware.rb +27 -0
- data/app/models/refinery/photo_gallery/album.rb +60 -0
- data/app/models/refinery/photo_gallery/collection.rb +29 -0
- data/app/models/refinery/photo_gallery/collection_album.rb +8 -0
- data/app/models/refinery/photo_gallery/photo.rb +54 -0
- data/app/uploaders/refinery/photo_gallery/admin/file_uploader.rb +121 -0
- data/app/views/refinery/photo_gallery/admin/_submenu.html.erb +44 -0
- data/app/views/refinery/photo_gallery/admin/albums/_album.html.erb +31 -0
- data/app/views/refinery/photo_gallery/admin/albums/_form.html.erb +78 -0
- data/app/views/refinery/photo_gallery/admin/albums/_sortable_list.html.erb +7 -0
- data/app/views/refinery/photo_gallery/admin/albums/edit.html.erb +2 -0
- data/app/views/refinery/photo_gallery/admin/albums/index.html.erb +28 -0
- data/app/views/refinery/photo_gallery/admin/albums/new.html.erb +2 -0
- data/app/views/refinery/photo_gallery/admin/collections/_collection.html.erb +23 -0
- data/app/views/refinery/photo_gallery/admin/collections/_form.html.erb +32 -0
- data/app/views/refinery/photo_gallery/admin/collections/_sortable_list.html.erb +7 -0
- data/app/views/refinery/photo_gallery/admin/collections/edit.html.erb +2 -0
- data/app/views/refinery/photo_gallery/admin/collections/index.html.erb +28 -0
- data/app/views/refinery/photo_gallery/admin/collections/new.html.erb +2 -0
- data/app/views/refinery/photo_gallery/admin/collections/test.html.erb +39 -0
- data/app/views/refinery/photo_gallery/admin/photos/_destroy.js.erb +15 -0
- data/app/views/refinery/photo_gallery/admin/photos/_form.html.erb +7 -0
- data/app/views/refinery/photo_gallery/admin/photos/_form_actions.html.erb +6 -0
- data/app/views/refinery/photo_gallery/admin/photos/_form_fields.html.erb +31 -0
- data/app/views/refinery/photo_gallery/admin/photos/_form_fields_actions.html.erb +15 -0
- data/app/views/refinery/photo_gallery/admin/photos/edit_multiple.html.erb +9 -0
- data/app/views/refinery/photo_gallery/admin/photos/upload.html.erb +87 -0
- data/app/views/refinery/photo_gallery/albums/show.html.erb +26 -0
- data/app/views/refinery/photo_gallery/collections/index.html.erb +9 -0
- data/app/views/refinery/photo_gallery/collections/show.html.erb +19 -0
- data/app/views/refinery/photo_gallery/shared/_layout.html.erb +22 -0
- data/app/views/refinery/photo_gallery/shared/_submenu.html.erb +4 -0
- data/config/initializers/carrierwave.rb +7 -0
- data/config/initializers/form_builder.rb +26 -0
- data/config/initializers/refinery/core.rb +10 -0
- data/config/initializers/s3.rb +13 -0
- data/config/initializers/session_store.rb +10 -0
- data/config/locales/en.yml +95 -0
- data/config/locales/sk.yml +94 -0
- data/config/routes.rb +37 -0
- data/db/migrate/20120804063842_create_albums.rb +18 -0
- data/db/migrate/20120805131321_create_collections.rb +14 -0
- data/db/migrate/20120805131547_create_collection_albums.rb +12 -0
- data/db/migrate/20120805165238_create_photos.rb +19 -0
- data/db/migrate/20120805222125_add_indexes.rb +24 -0
- data/db/seeds.rb +21 -0
- data/lib/generators/refinery/photo_gallery_generator.rb +25 -0
- data/lib/generators/refinery/templates/config/initializers/refinery/photo_gallery.rb.erb +40 -0
- data/lib/refinery/photo_gallery.rb +30 -0
- data/lib/refinery/photo_gallery/configuration.rb +33 -0
- data/lib/refinery/photo_gallery/engine.rb +33 -0
- data/lib/refinery/photo_gallery/version.rb +17 -0
- data/lib/refinerycms-photo-gallery.rb +1 -0
- data/refinerycms-balder-photo-gallery.gemspec +30 -0
- data/screenshots/01_collections#index.png +0 -0
- data/screenshots/02_albums#create.png +0 -0
- data/screenshots/03_photos#upload.png +0 -0
- data/screenshots/04_photos#upload- chooser.png +0 -0
- data/screenshots/05_photo#upoad-queue.png +0 -0
- data/screenshots/06_photos#upload-uploading.png +0 -0
- data/screenshots/07_photos#upload-uploading_2.png +0 -0
- data/screenshots/08_photos#edit_multiple.png +0 -0
- data/screenshots/09_albums#index.png +0 -0
- data/screenshots/10_albums_EXIF_reading.png +0 -0
- data/screenshots/11_frontend_show.png +0 -0
- data/screenshots/12_show_photo_using_fancybox.png +0 -0
- metadata +323 -0
@@ -0,0 +1,618 @@
|
|
1
|
+
/*1.5.4*/
|
2
|
+
(function () {
|
3
|
+
var f = 0, k = [], m = {}, i = {}, a = {"<":"lt", ">":"gt", "&":"amp", '"':"quot", "'":"#39"}, l = /[<>&\"\']/g, b, c = window.setTimeout, d = {}, e;
|
4
|
+
|
5
|
+
function h() {
|
6
|
+
this.returnValue = false
|
7
|
+
}
|
8
|
+
|
9
|
+
function j() {
|
10
|
+
this.cancelBubble = true
|
11
|
+
}
|
12
|
+
|
13
|
+
(function (n) {
|
14
|
+
var o = n.split(/,/), p, r, q;
|
15
|
+
for (p = 0; p < o.length; p += 2) {
|
16
|
+
q = o[p + 1].split(/ /);
|
17
|
+
for (r = 0; r < q.length; r++) {
|
18
|
+
i[q[r]] = o[p]
|
19
|
+
}
|
20
|
+
}
|
21
|
+
})("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats-officedocument.wordprocessingml.document,docx,application/vnd.openxmlformats-officedocument.wordprocessingml.template,dotx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,xlsx,application/vnd.openxmlformats-officedocument.presentationml.presentation,pptx,application/vnd.openxmlformats-officedocument.presentationml.template,potx,application/vnd.openxmlformats-officedocument.presentationml.slideshow,ppsx,application/x-javascript,js,application/json,json,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,audio/mp4,m4a,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/photoshop,psd,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/plain,asc txt text diff log,text/html,htm html xhtml,text/css,css,text/csv,csv,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/mp4,mp4,video/x-m4v,m4v,video/x-flv,flv,video/x-ms-wmv,wmv,video/avi,avi,video/webm,webm,video/vnd.rn-realvideo,rv,application/vnd.oasis.opendocument.formula-template,otf,application/octet-stream,exe");
|
22
|
+
var g = {VERSION:"1.5.4", STOPPED:1, STARTED:2, QUEUED:1, UPLOADING:2, FAILED:4, DONE:5, GENERIC_ERROR:-100, HTTP_ERROR:-200, IO_ERROR:-300, SECURITY_ERROR:-400, INIT_ERROR:-500, FILE_SIZE_ERROR:-600, FILE_EXTENSION_ERROR:-601, IMAGE_FORMAT_ERROR:-700, IMAGE_MEMORY_ERROR:-701, IMAGE_DIMENSIONS_ERROR:-702, mimeTypes:i, ua:(function () {
|
23
|
+
var r = navigator, q = r.userAgent, s = r.vendor, o, n, p;
|
24
|
+
o = /WebKit/.test(q);
|
25
|
+
p = o && s.indexOf("Apple") !== -1;
|
26
|
+
n = window.opera && window.opera.buildNumber;
|
27
|
+
return{windows:navigator.platform.indexOf("Win") !== -1, ie:!o && !n && (/MSIE/gi).test(q) && (/Explorer/gi).test(r.appName), webkit:o, gecko:!o && /Gecko/.test(q), safari:p, opera:!!n}
|
28
|
+
}()), typeOf:function (n) {
|
29
|
+
return({}).toString.call(n).match(/\s([a-z|A-Z]+)/)[1].toLowerCase()
|
30
|
+
}, extend:function (n) {
|
31
|
+
g.each(arguments, function (o, p) {
|
32
|
+
if (p > 0) {
|
33
|
+
g.each(o, function (r, q) {
|
34
|
+
n[q] = r
|
35
|
+
})
|
36
|
+
}
|
37
|
+
});
|
38
|
+
return n
|
39
|
+
}, cleanName:function (n) {
|
40
|
+
var o, p;
|
41
|
+
p = [/[\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"];
|
42
|
+
for (o = 0; o < p.length; o += 2) {
|
43
|
+
n = n.replace(p[o], p[o + 1])
|
44
|
+
}
|
45
|
+
n = n.replace(/\s+/g, "_");
|
46
|
+
n = n.replace(/[^a-z0-9_\-\.]+/gi, "");
|
47
|
+
return n
|
48
|
+
}, addRuntime:function (n, o) {
|
49
|
+
o.name = n;
|
50
|
+
k[n] = o;
|
51
|
+
k.push(o);
|
52
|
+
return o
|
53
|
+
}, guid:function () {
|
54
|
+
var n = new Date().getTime().toString(32), o;
|
55
|
+
for (o = 0; o < 5; o++) {
|
56
|
+
n += Math.floor(Math.random() * 65535).toString(32)
|
57
|
+
}
|
58
|
+
return(g.guidPrefix || "p") + n + (f++).toString(32)
|
59
|
+
}, buildUrl:function (o, n) {
|
60
|
+
var p = "";
|
61
|
+
g.each(n, function (r, q) {
|
62
|
+
p += (p ? "&" : "") + encodeURIComponent(q) + "=" + encodeURIComponent(r)
|
63
|
+
});
|
64
|
+
if (p) {
|
65
|
+
o += (o.indexOf("?") > 0 ? "&" : "?") + p
|
66
|
+
}
|
67
|
+
return o
|
68
|
+
}, each:function (q, r) {
|
69
|
+
var p, o, n;
|
70
|
+
if (q) {
|
71
|
+
p = q.length;
|
72
|
+
if (p === b) {
|
73
|
+
for (o in q) {
|
74
|
+
if (q.hasOwnProperty(o)) {
|
75
|
+
if (r(q[o], o) === false) {
|
76
|
+
return
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
} else {
|
81
|
+
for (n = 0; n < p; n++) {
|
82
|
+
if (r(q[n], n) === false) {
|
83
|
+
return
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}, formatSize:function (n) {
|
89
|
+
if (n === b || /\D/.test(n)) {
|
90
|
+
return g.translate("N/A")
|
91
|
+
}
|
92
|
+
if (n > 1073741824) {
|
93
|
+
return Math.round(n / 1073741824, 1) + " GB"
|
94
|
+
}
|
95
|
+
if (n > 1048576) {
|
96
|
+
return Math.round(n / 1048576, 1) + " MB"
|
97
|
+
}
|
98
|
+
if (n > 1024) {
|
99
|
+
return Math.round(n / 1024, 1) + " KB"
|
100
|
+
}
|
101
|
+
return n + " b"
|
102
|
+
}, getPos:function (o, s) {
|
103
|
+
var t = 0, r = 0, v, u = document, p, q;
|
104
|
+
o = o;
|
105
|
+
s = s || u.body;
|
106
|
+
function n(B) {
|
107
|
+
var z, A, w = 0, C = 0;
|
108
|
+
if (B) {
|
109
|
+
A = B.getBoundingClientRect();
|
110
|
+
z = u.compatMode === "CSS1Compat" ? u.documentElement : u.body;
|
111
|
+
w = A.left + z.scrollLeft;
|
112
|
+
C = A.top + z.scrollTop
|
113
|
+
}
|
114
|
+
return{x:w, y:C}
|
115
|
+
}
|
116
|
+
|
117
|
+
if (o && o.getBoundingClientRect && ((navigator.userAgent.indexOf("MSIE") > 0) && (u.documentMode < 8))) {
|
118
|
+
p = n(o);
|
119
|
+
q = n(s);
|
120
|
+
return{x:p.x - q.x, y:p.y - q.y}
|
121
|
+
}
|
122
|
+
v = o;
|
123
|
+
while (v && v != s && v.nodeType) {
|
124
|
+
t += v.offsetLeft || 0;
|
125
|
+
r += v.offsetTop || 0;
|
126
|
+
v = v.offsetParent
|
127
|
+
}
|
128
|
+
v = o.parentNode;
|
129
|
+
while (v && v != s && v.nodeType) {
|
130
|
+
t -= v.scrollLeft || 0;
|
131
|
+
r -= v.scrollTop || 0;
|
132
|
+
v = v.parentNode
|
133
|
+
}
|
134
|
+
return{x:t, y:r}
|
135
|
+
}, getSize:function (n) {
|
136
|
+
return{w:n.offsetWidth || n.clientWidth, h:n.offsetHeight || n.clientHeight}
|
137
|
+
}, parseSize:function (n) {
|
138
|
+
var o;
|
139
|
+
if (typeof(n) == "string") {
|
140
|
+
n = /^([0-9]+)([mgk]?)$/.exec(n.toLowerCase().replace(/[^0-9mkg]/g, ""));
|
141
|
+
o = n[2];
|
142
|
+
n = +n[1];
|
143
|
+
if (o == "g") {
|
144
|
+
n *= 1073741824
|
145
|
+
}
|
146
|
+
if (o == "m") {
|
147
|
+
n *= 1048576
|
148
|
+
}
|
149
|
+
if (o == "k") {
|
150
|
+
n *= 1024
|
151
|
+
}
|
152
|
+
}
|
153
|
+
return n
|
154
|
+
}, xmlEncode:function (n) {
|
155
|
+
return n ? ("" + n).replace(l, function (o) {
|
156
|
+
return a[o] ? "&" + a[o] + ";" : o
|
157
|
+
}) : n
|
158
|
+
}, toArray:function (p) {
|
159
|
+
var o, n = [];
|
160
|
+
for (o = 0; o < p.length; o++) {
|
161
|
+
n[o] = p[o]
|
162
|
+
}
|
163
|
+
return n
|
164
|
+
}, inArray:function (p, q) {
|
165
|
+
if (q) {
|
166
|
+
if (Array.prototype.indexOf) {
|
167
|
+
return Array.prototype.indexOf.call(q, p)
|
168
|
+
}
|
169
|
+
for (var n = 0, o = q.length; n < o; n++) {
|
170
|
+
if (q[n] === p) {
|
171
|
+
return n
|
172
|
+
}
|
173
|
+
}
|
174
|
+
}
|
175
|
+
return -1
|
176
|
+
}, addI18n:function (n) {
|
177
|
+
return g.extend(m, n)
|
178
|
+
}, translate:function (n) {
|
179
|
+
return m[n] || n
|
180
|
+
}, isEmptyObj:function (n) {
|
181
|
+
if (n === b) {
|
182
|
+
return true
|
183
|
+
}
|
184
|
+
for (var o in n) {
|
185
|
+
return false
|
186
|
+
}
|
187
|
+
return true
|
188
|
+
}, hasClass:function (p, o) {
|
189
|
+
var n;
|
190
|
+
if (p.className == "") {
|
191
|
+
return false
|
192
|
+
}
|
193
|
+
n = new RegExp("(^|\\s+)" + o + "(\\s+|$)");
|
194
|
+
return n.test(p.className)
|
195
|
+
}, addClass:function (o, n) {
|
196
|
+
if (!g.hasClass(o, n)) {
|
197
|
+
o.className = o.className == "" ? n : o.className.replace(/\s+$/, "") + " " + n
|
198
|
+
}
|
199
|
+
}, removeClass:function (p, o) {
|
200
|
+
var n = new RegExp("(^|\\s+)" + o + "(\\s+|$)");
|
201
|
+
p.className = p.className.replace(n, function (r, q, s) {
|
202
|
+
return q === " " && s === " " ? " " : ""
|
203
|
+
})
|
204
|
+
}, getStyle:function (o, n) {
|
205
|
+
if (o.currentStyle) {
|
206
|
+
return o.currentStyle[n]
|
207
|
+
} else {
|
208
|
+
if (window.getComputedStyle) {
|
209
|
+
return window.getComputedStyle(o, null)[n]
|
210
|
+
}
|
211
|
+
}
|
212
|
+
}, addEvent:function (s, n, t) {
|
213
|
+
var r, q, p, o;
|
214
|
+
o = arguments[3];
|
215
|
+
n = n.toLowerCase();
|
216
|
+
if (e === b) {
|
217
|
+
e = "Plupload_" + g.guid()
|
218
|
+
}
|
219
|
+
if (s.addEventListener) {
|
220
|
+
r = t;
|
221
|
+
s.addEventListener(n, r, false)
|
222
|
+
} else {
|
223
|
+
if (s.attachEvent) {
|
224
|
+
r = function () {
|
225
|
+
var u = window.event;
|
226
|
+
if (!u.target) {
|
227
|
+
u.target = u.srcElement
|
228
|
+
}
|
229
|
+
u.preventDefault = h;
|
230
|
+
u.stopPropagation = j;
|
231
|
+
t(u)
|
232
|
+
};
|
233
|
+
s.attachEvent("on" + n, r)
|
234
|
+
}
|
235
|
+
}
|
236
|
+
if (s[e] === b) {
|
237
|
+
s[e] = g.guid()
|
238
|
+
}
|
239
|
+
if (!d.hasOwnProperty(s[e])) {
|
240
|
+
d[s[e]] = {}
|
241
|
+
}
|
242
|
+
q = d[s[e]];
|
243
|
+
if (!q.hasOwnProperty(n)) {
|
244
|
+
q[n] = []
|
245
|
+
}
|
246
|
+
q[n].push({func:r, orig:t, key:o})
|
247
|
+
}, removeEvent:function (s, n) {
|
248
|
+
var q, t, p;
|
249
|
+
if (typeof(arguments[2]) == "function") {
|
250
|
+
t = arguments[2]
|
251
|
+
} else {
|
252
|
+
p = arguments[2]
|
253
|
+
}
|
254
|
+
n = n.toLowerCase();
|
255
|
+
if (s[e] && d[s[e]] && d[s[e]][n]) {
|
256
|
+
q = d[s[e]][n]
|
257
|
+
} else {
|
258
|
+
return
|
259
|
+
}
|
260
|
+
for (var o = q.length - 1; o >= 0; o--) {
|
261
|
+
if (q[o].key === p || q[o].orig === t) {
|
262
|
+
if (s.removeEventListener) {
|
263
|
+
s.removeEventListener(n, q[o].func, false)
|
264
|
+
} else {
|
265
|
+
if (s.detachEvent) {
|
266
|
+
s.detachEvent("on" + n, q[o].func)
|
267
|
+
}
|
268
|
+
}
|
269
|
+
q[o].orig = null;
|
270
|
+
q[o].func = null;
|
271
|
+
q.splice(o, 1);
|
272
|
+
if (t !== b) {
|
273
|
+
break
|
274
|
+
}
|
275
|
+
}
|
276
|
+
}
|
277
|
+
if (!q.length) {
|
278
|
+
delete d[s[e]][n]
|
279
|
+
}
|
280
|
+
if (g.isEmptyObj(d[s[e]])) {
|
281
|
+
delete d[s[e]];
|
282
|
+
try {
|
283
|
+
delete s[e]
|
284
|
+
} catch (r) {
|
285
|
+
s[e] = b
|
286
|
+
}
|
287
|
+
}
|
288
|
+
}, removeAllEvents:function (o) {
|
289
|
+
var n = arguments[1];
|
290
|
+
if (o[e] === b || !o[e]) {
|
291
|
+
return
|
292
|
+
}
|
293
|
+
g.each(d[o[e]], function (q, p) {
|
294
|
+
g.removeEvent(o, p, n)
|
295
|
+
})
|
296
|
+
}};
|
297
|
+
g.Uploader = function (r) {
|
298
|
+
var o = {}, u, t = [], q, p = false;
|
299
|
+
u = new g.QueueProgress();
|
300
|
+
r = g.extend({chunk_size:0, multipart:true, multi_selection:true, file_data_name:"file", filters:[]}, r);
|
301
|
+
function s() {
|
302
|
+
var w, x = 0, v;
|
303
|
+
if (this.state == g.STARTED) {
|
304
|
+
for (v = 0; v < t.length; v++) {
|
305
|
+
if (!w && t[v].status == g.QUEUED) {
|
306
|
+
w = t[v];
|
307
|
+
w.status = g.UPLOADING;
|
308
|
+
if (this.trigger("BeforeUpload", w)) {
|
309
|
+
this.trigger("UploadFile", w)
|
310
|
+
}
|
311
|
+
} else {
|
312
|
+
x++
|
313
|
+
}
|
314
|
+
}
|
315
|
+
if (x == t.length) {
|
316
|
+
this.stop();
|
317
|
+
this.trigger("UploadComplete", t)
|
318
|
+
}
|
319
|
+
}
|
320
|
+
}
|
321
|
+
|
322
|
+
function n() {
|
323
|
+
var w, v;
|
324
|
+
u.reset();
|
325
|
+
for (w = 0; w < t.length; w++) {
|
326
|
+
v = t[w];
|
327
|
+
if (v.size !== b) {
|
328
|
+
u.size += v.size;
|
329
|
+
u.loaded += v.loaded
|
330
|
+
} else {
|
331
|
+
u.size = b
|
332
|
+
}
|
333
|
+
if (v.status == g.DONE) {
|
334
|
+
u.uploaded++
|
335
|
+
} else {
|
336
|
+
if (v.status == g.FAILED) {
|
337
|
+
u.failed++
|
338
|
+
} else {
|
339
|
+
u.queued++
|
340
|
+
}
|
341
|
+
}
|
342
|
+
}
|
343
|
+
if (u.size === b) {
|
344
|
+
u.percent = t.length > 0 ? Math.ceil(u.uploaded / t.length * 100) : 0
|
345
|
+
} else {
|
346
|
+
u.bytesPerSec = Math.ceil(u.loaded / ((+new Date() - q || 1) / 1000));
|
347
|
+
u.percent = u.size > 0 ? Math.ceil(u.loaded / u.size * 100) : 0
|
348
|
+
}
|
349
|
+
}
|
350
|
+
|
351
|
+
g.extend(this, {state:g.STOPPED, runtime:"", features:{}, files:t, settings:r, total:u, id:g.guid(), init:function () {
|
352
|
+
var A = this, B, x, w, z = 0, y;
|
353
|
+
if (typeof(r.preinit) == "function") {
|
354
|
+
r.preinit(A)
|
355
|
+
} else {
|
356
|
+
g.each(r.preinit, function (D, C) {
|
357
|
+
A.bind(C, D)
|
358
|
+
})
|
359
|
+
}
|
360
|
+
r.page_url = r.page_url || document.location.pathname.replace(/\/[^\/]+$/g, "/");
|
361
|
+
if (!/^(\w+:\/\/|\/)/.test(r.url)) {
|
362
|
+
r.url = r.page_url + r.url
|
363
|
+
}
|
364
|
+
r.chunk_size = g.parseSize(r.chunk_size);
|
365
|
+
r.max_file_size = g.parseSize(r.max_file_size);
|
366
|
+
A.bind("FilesAdded", function (C, F) {
|
367
|
+
var E, D, H = 0, I, G = r.filters;
|
368
|
+
if (G && G.length) {
|
369
|
+
I = [];
|
370
|
+
g.each(G, function (J) {
|
371
|
+
g.each(J.extensions.split(/,/), function (K) {
|
372
|
+
if (/^\s*\*\s*$/.test(K)) {
|
373
|
+
I.push("\\.*")
|
374
|
+
} else {
|
375
|
+
I.push("\\." + K.replace(new RegExp("[" + ("/^$.*+?|()[]{}\\".replace(/./g, "\\$&")) + "]", "g"), "\\$&"))
|
376
|
+
}
|
377
|
+
})
|
378
|
+
});
|
379
|
+
I = new RegExp(I.join("|") + "$", "i")
|
380
|
+
}
|
381
|
+
for (E = 0; E < F.length; E++) {
|
382
|
+
D = F[E];
|
383
|
+
D.loaded = 0;
|
384
|
+
D.percent = 0;
|
385
|
+
D.status = g.QUEUED;
|
386
|
+
if (I && !I.test(D.name)) {
|
387
|
+
C.trigger("Error", {code:g.FILE_EXTENSION_ERROR, message:g.translate("File extension error."), file:D});
|
388
|
+
continue
|
389
|
+
}
|
390
|
+
if (D.size !== b && D.size > r.max_file_size) {
|
391
|
+
C.trigger("Error", {code:g.FILE_SIZE_ERROR, message:g.translate("File size error."), file:D});
|
392
|
+
continue
|
393
|
+
}
|
394
|
+
t.push(D);
|
395
|
+
H++
|
396
|
+
}
|
397
|
+
if (H) {
|
398
|
+
c(function () {
|
399
|
+
A.trigger("QueueChanged");
|
400
|
+
A.refresh()
|
401
|
+
}, 1)
|
402
|
+
} else {
|
403
|
+
return false
|
404
|
+
}
|
405
|
+
});
|
406
|
+
if (r.unique_names) {
|
407
|
+
A.bind("UploadFile", function (C, D) {
|
408
|
+
var F = D.name.match(/\.([^.]+)$/), E = "tmp";
|
409
|
+
if (F) {
|
410
|
+
E = F[1]
|
411
|
+
}
|
412
|
+
D.target_name = D.id + "." + E
|
413
|
+
})
|
414
|
+
}
|
415
|
+
A.bind("UploadProgress", function (C, D) {
|
416
|
+
D.percent = D.size > 0 ? Math.ceil(D.loaded / D.size * 100) : 100;
|
417
|
+
n()
|
418
|
+
});
|
419
|
+
A.bind("StateChanged", function (C) {
|
420
|
+
if (C.state == g.STARTED) {
|
421
|
+
q = (+new Date())
|
422
|
+
} else {
|
423
|
+
if (C.state == g.STOPPED) {
|
424
|
+
for (B = C.files.length - 1; B >= 0; B--) {
|
425
|
+
if (C.files[B].status == g.UPLOADING) {
|
426
|
+
C.files[B].status = g.QUEUED;
|
427
|
+
n()
|
428
|
+
}
|
429
|
+
}
|
430
|
+
}
|
431
|
+
}
|
432
|
+
});
|
433
|
+
A.bind("QueueChanged", n);
|
434
|
+
A.bind("Error", function (C, D) {
|
435
|
+
if (D.file) {
|
436
|
+
D.file.status = g.FAILED;
|
437
|
+
n();
|
438
|
+
if (C.state == g.STARTED) {
|
439
|
+
c(function () {
|
440
|
+
s.call(A)
|
441
|
+
}, 1)
|
442
|
+
}
|
443
|
+
}
|
444
|
+
});
|
445
|
+
A.bind("FileUploaded", function (C, D) {
|
446
|
+
D.status = g.DONE;
|
447
|
+
D.loaded = D.size;
|
448
|
+
C.trigger("UploadProgress", D);
|
449
|
+
c(function () {
|
450
|
+
s.call(A)
|
451
|
+
}, 1)
|
452
|
+
});
|
453
|
+
if (r.runtimes) {
|
454
|
+
x = [];
|
455
|
+
y = r.runtimes.split(/\s?,\s?/);
|
456
|
+
for (B = 0; B < y.length; B++) {
|
457
|
+
if (k[y[B]]) {
|
458
|
+
x.push(k[y[B]])
|
459
|
+
}
|
460
|
+
}
|
461
|
+
} else {
|
462
|
+
x = k
|
463
|
+
}
|
464
|
+
function v() {
|
465
|
+
var F = x[z++], E, C, D;
|
466
|
+
if (F) {
|
467
|
+
E = F.getFeatures();
|
468
|
+
C = A.settings.required_features;
|
469
|
+
if (C) {
|
470
|
+
C = C.split(",");
|
471
|
+
for (D = 0; D < C.length; D++) {
|
472
|
+
if (!E[C[D]]) {
|
473
|
+
v();
|
474
|
+
return
|
475
|
+
}
|
476
|
+
}
|
477
|
+
}
|
478
|
+
F.init(A, function (G) {
|
479
|
+
if (G && G.success) {
|
480
|
+
A.features = E;
|
481
|
+
A.runtime = F.name;
|
482
|
+
A.trigger("Init", {runtime:F.name});
|
483
|
+
A.trigger("PostInit");
|
484
|
+
A.refresh()
|
485
|
+
} else {
|
486
|
+
v()
|
487
|
+
}
|
488
|
+
})
|
489
|
+
} else {
|
490
|
+
A.trigger("Error", {code:g.INIT_ERROR, message:g.translate("Init error.")})
|
491
|
+
}
|
492
|
+
}
|
493
|
+
|
494
|
+
v();
|
495
|
+
if (typeof(r.init) == "function") {
|
496
|
+
r.init(A)
|
497
|
+
} else {
|
498
|
+
g.each(r.init, function (D, C) {
|
499
|
+
A.bind(C, D)
|
500
|
+
})
|
501
|
+
}
|
502
|
+
}, refresh:function () {
|
503
|
+
this.trigger("Refresh")
|
504
|
+
}, start:function () {
|
505
|
+
if (t.length && this.state != g.STARTED) {
|
506
|
+
this.state = g.STARTED;
|
507
|
+
this.trigger("StateChanged");
|
508
|
+
s.call(this)
|
509
|
+
}
|
510
|
+
}, stop:function () {
|
511
|
+
if (this.state != g.STOPPED) {
|
512
|
+
this.state = g.STOPPED;
|
513
|
+
this.trigger("CancelUpload");
|
514
|
+
this.trigger("StateChanged")
|
515
|
+
}
|
516
|
+
}, disableBrowse:function () {
|
517
|
+
p = arguments[0] !== b ? arguments[0] : true;
|
518
|
+
this.trigger("DisableBrowse", p)
|
519
|
+
}, getFile:function (w) {
|
520
|
+
var v;
|
521
|
+
for (v = t.length - 1; v >= 0; v--) {
|
522
|
+
if (t[v].id === w) {
|
523
|
+
return t[v]
|
524
|
+
}
|
525
|
+
}
|
526
|
+
}, removeFile:function (w) {
|
527
|
+
var v;
|
528
|
+
for (v = t.length - 1; v >= 0; v--) {
|
529
|
+
if (t[v].id === w.id) {
|
530
|
+
return this.splice(v, 1)[0]
|
531
|
+
}
|
532
|
+
}
|
533
|
+
}, splice:function (x, v) {
|
534
|
+
var w;
|
535
|
+
w = t.splice(x === b ? 0 : x, v === b ? t.length : v);
|
536
|
+
this.trigger("FilesRemoved", w);
|
537
|
+
this.trigger("QueueChanged");
|
538
|
+
return w
|
539
|
+
}, trigger:function (w) {
|
540
|
+
var y = o[w.toLowerCase()], x, v;
|
541
|
+
if (y) {
|
542
|
+
v = Array.prototype.slice.call(arguments);
|
543
|
+
v[0] = this;
|
544
|
+
for (x = 0; x < y.length; x++) {
|
545
|
+
if (y[x].func.apply(y[x].scope, v) === false) {
|
546
|
+
return false
|
547
|
+
}
|
548
|
+
}
|
549
|
+
}
|
550
|
+
return true
|
551
|
+
}, hasEventListener:function (v) {
|
552
|
+
return !!o[v.toLowerCase()]
|
553
|
+
}, bind:function (v, x, w) {
|
554
|
+
var y;
|
555
|
+
v = v.toLowerCase();
|
556
|
+
y = o[v] || [];
|
557
|
+
y.push({func:x, scope:w || this});
|
558
|
+
o[v] = y
|
559
|
+
}, unbind:function (v) {
|
560
|
+
v = v.toLowerCase();
|
561
|
+
var y = o[v], w, x = arguments[1];
|
562
|
+
if (y) {
|
563
|
+
if (x !== b) {
|
564
|
+
for (w = y.length - 1; w >= 0; w--) {
|
565
|
+
if (y[w].func === x) {
|
566
|
+
y.splice(w, 1);
|
567
|
+
break
|
568
|
+
}
|
569
|
+
}
|
570
|
+
} else {
|
571
|
+
y = []
|
572
|
+
}
|
573
|
+
if (!y.length) {
|
574
|
+
delete o[v]
|
575
|
+
}
|
576
|
+
}
|
577
|
+
}, unbindAll:function () {
|
578
|
+
var v = this;
|
579
|
+
g.each(o, function (x, w) {
|
580
|
+
v.unbind(w)
|
581
|
+
})
|
582
|
+
}, destroy:function () {
|
583
|
+
this.stop();
|
584
|
+
this.trigger("Destroy");
|
585
|
+
this.unbindAll()
|
586
|
+
}})
|
587
|
+
};
|
588
|
+
g.File = function (q, o, p) {
|
589
|
+
var n = this;
|
590
|
+
n.id = q;
|
591
|
+
n.name = o;
|
592
|
+
n.size = p;
|
593
|
+
n.loaded = 0;
|
594
|
+
n.percent = 0;
|
595
|
+
n.status = 0
|
596
|
+
};
|
597
|
+
g.Runtime = function () {
|
598
|
+
this.getFeatures = function () {
|
599
|
+
};
|
600
|
+
this.init = function (n, o) {
|
601
|
+
}
|
602
|
+
};
|
603
|
+
g.QueueProgress = function () {
|
604
|
+
var n = this;
|
605
|
+
n.size = 0;
|
606
|
+
n.loaded = 0;
|
607
|
+
n.uploaded = 0;
|
608
|
+
n.failed = 0;
|
609
|
+
n.queued = 0;
|
610
|
+
n.percent = 0;
|
611
|
+
n.bytesPerSec = 0;
|
612
|
+
n.reset = function () {
|
613
|
+
n.size = n.loaded = n.uploaded = n.failed = n.queued = n.percent = n.bytesPerSec = 0
|
614
|
+
}
|
615
|
+
};
|
616
|
+
g.runtimes = {};
|
617
|
+
window.plupload = g
|
618
|
+
})();
|