commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-old / civicrm / packages / kcfinder / js / 100.clipboard.js
1 /** This file is part of KCFinder project
2 *
3 * @desc Clipboard functionality
4 * @package KCFinder
5 * @version 3.12
6 * @author Pavel Tzonkov <sunhater@sunhater.com>
7 * @copyright 2010-2014 KCFinder Project
8 * @license http://opensource.org/licenses/GPL-3.0 GPLv3
9 * @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
10 * @link http://kcfinder.sunhater.com
11 */
12
13 _.initClipboard = function() {
14 if (!_.clipboard || !_.clipboard.length) return;
15
16 var size = 0,
17 jClipboard = $('#clipboard');
18
19 $.each(_.clipboard, function(i, val) {
20 size += val.size;
21 });
22 size = _.humanSize(size);
23 jClipboard.disableTextSelect().html('<div title="' + _.label("Clipboard") + ' (' + _.clipboard.length + ' ' + _.label("files") + ', ' + size + ')" onclick="_.openClipboard()"></div>');
24 var resize = function() {
25 jClipboard.css({
26 left: $(window).width() - jClipboard.outerWidth(),
27 top: $(window).height() - jClipboard.outerHeight()
28 });
29 };
30 resize();
31 jClipboard.show();
32 $(window).unbind().resize(function() {
33 _.resize();
34 resize();
35 });
36 };
37
38 _.removeFromClipboard = function(i) {
39 if (!_.clipboard || !_.clipboard[i]) return false;
40 if (_.clipboard.length == 1) {
41 _.clearClipboard();
42 _.menu.hide();
43 return;
44 }
45
46 if (i < _.clipboard.length - 1) {
47 var last = _.clipboard.slice(i + 1);
48 _.clipboard = _.clipboard.slice(0, i);
49 _.clipboard = _.clipboard.concat(last);
50 } else
51 _.clipboard.pop();
52
53 _.initClipboard();
54 _.menu.hide();
55 _.openClipboard();
56 return true;
57 };
58
59 _.copyClipboard = function(dir) {
60 if (!_.clipboard || !_.clipboard.length) return;
61 var files = [],
62 failed = 0;
63 for (i = 0; i < _.clipboard.length; i++)
64 if (_.clipboard[i].readable)
65 files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
66 else
67 failed++;
68 if (_.clipboard.length == failed) {
69 _.alert(_.label("The files in the Clipboard are not readable."));
70 return;
71 }
72 var go = function(callBack) {
73 if (dir == _.dir)
74 _.fadeFiles();
75 $.ajax({
76 type: "post",
77 dataType: "json",
78 url: _.getURL("cp_cbd"),
79 data: {dir: dir, files: files},
80 async: false,
81 success: function(data) {
82 if (callBack) callBack();
83 _.check4errors(data);
84 _.clearClipboard();
85 if (dir == _.dir)
86 _.refresh();
87 },
88 error: function() {
89 if (callBack) callBack();
90 $('#files > div').css({
91 opacity: "",
92 filter: ""
93 });
94 _.alert(_.label("Unknown error."));
95 }
96 });
97 };
98
99 if (failed)
100 _.confirm(
101 _.label("{count} files in the Clipboard are not readable. Do you want to copy the rest?", {count:failed}),
102 go
103 )
104 else
105 go();
106
107 };
108
109 _.moveClipboard = function(dir) {
110 if (!_.clipboard || !_.clipboard.length) return;
111 var files = [],
112 failed = 0;
113 for (i = 0; i < _.clipboard.length; i++)
114 if (_.clipboard[i].readable && _.clipboard[i].writable)
115 files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
116 else
117 failed++;
118 if (_.clipboard.length == failed) {
119 _.alert(_.label("The files in the Clipboard are not movable."))
120 return;
121 }
122
123 var go = function(callBack) {
124 _.fadeFiles();
125 $.ajax({
126 type: "post",
127 dataType: "json",
128 url: _.getURL("mv_cbd"),
129 data: {dir: dir, files: files},
130 async: false,
131 success: function(data) {
132 if (callBack) callBack();
133 _.check4errors(data);
134 _.clearClipboard();
135 _.refresh();
136 },
137 error: function() {
138 if (callBack) callBack();
139 $('#files > div').css({
140 opacity: "",
141 filter: ""
142 });
143 _.alert(_.label("Unknown error."));
144 }
145 });
146 };
147
148 if (failed)
149 _.confirm(
150 _.label("{count} files in the Clipboard are not movable. Do you want to move the rest?", {count: failed}),
151 go
152 );
153 else
154 go();
155 };
156
157 _.deleteClipboard = function() {
158 if (!_.clipboard || !_.clipboard.length) return;
159 var files = [],
160 failed = 0;
161 for (i = 0; i < _.clipboard.length; i++)
162 if (_.clipboard[i].readable && _.clipboard[i].writable)
163 files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
164 else
165 failed++;
166 if (_.clipboard.length == failed) {
167 _.alert(_.label("The files in the Clipboard are not removable."))
168 return;
169 }
170 var go = function(callBack) {
171 _.fadeFiles();
172 $.ajax({
173 type: "post",
174 dataType: "json",
175 url: _.getURL("rm_cbd"),
176 data: {files:files},
177 async: false,
178 success: function(data) {
179 if (callBack) callBack();
180 _.check4errors(data);
181 _.clearClipboard();
182 _.refresh();
183 },
184 error: function() {
185 if (callBack) callBack();
186 $('#files > div').css({
187 opacity: "",
188 filter: ""
189 });
190 _.alert(_.label("Unknown error."));
191 }
192 });
193 };
194 if (failed)
195 _.confirm(
196 _.label("{count} files in the Clipboard are not removable. Do you want to delete the rest?", {count: failed}),
197 go
198 );
199 else
200 go();
201 };
202
203 _.downloadClipboard = function() {
204 if (!_.clipboard || !_.clipboard.length) return;
205 var files = [];
206 for (i = 0; i < _.clipboard.length; i++)
207 if (_.clipboard[i].readable)
208 files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
209 if (files.length)
210 _.post(_.getURL('downloadClipboard'), {files:files});
211 };
212
213 _.clearClipboard = function() {
214 $('#clipboard').html("");
215 _.clipboard = [];
216 };