From f81b643f29d8b4b059691adc06323d1da9b22df0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 20 Mar 2015 07:14:16 -0400 Subject: [PATCH 0001/3805] chore(config) improve structure --- html/config.html | 98 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 83 insertions(+), 15 deletions(-) diff --git a/html/config.html b/html/config.html index 12b23654b7..8ee6a31d9a 100644 --- a/html/config.html +++ b/html/config.html @@ -1,22 +1,90 @@ From 1a0ffd499eb91b9e51d1c7bf80325bb96fb8ae84 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 20 Mar 2015 08:02:33 -0400 Subject: [PATCH 0002/3805] feature(util) applyConstructor: util -> client --- lib/client.js | 17 ++++++++++++++++- lib/util.js | 15 --------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/client.js b/lib/client.js index 2fc796bba0..fa047fa379 100644 --- a/lib/client.js +++ b/lib/client.js @@ -119,7 +119,7 @@ var Util, DOM, CloudFunc, join; var Proto = CloudCmd[name]; if (!error && type.function(Proto)) - CloudCmd[name] = Util.applyConstructor(Proto, args); + CloudCmd[name] = applyConstructor(Proto, args); }); }; @@ -128,6 +128,21 @@ var Util, DOM, CloudFunc, join; } } + /* + * apply arguemnts to constructor + * + * @param constructor + * @param args + */ + function applyConstructor(constructor, args) { + var F = function () { + return constructor.apply(this, args); + }; + + F.prototype = constructor.prototype; + return new F(); + } + /** Конструктор CloudClient, который * выполняет весь функционал по * инициализации diff --git a/lib/util.js b/lib/util.js index 02566ae8c9..b906fd7b01 100644 --- a/lib/util.js +++ b/lib/util.js @@ -11,21 +11,6 @@ function UtilProto() { var Util = this; - /* - * apply arguemnts to constructor - * - * @param constructor - * @param args - */ - this.applyConstructor = function(constructor, args) { - var F = function () { - return constructor.apply(this, args); - }; - - F.prototype = constructor.prototype; - return new F(); - }; - /** * Функция ищет в имени файла расширение * и если находит возвращает true From f57c1f3c7e8a2ff6cde1b7c3e6e65d4a37e0ddc9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 20 Mar 2015 08:11:32 -0400 Subject: [PATCH 0003/3805] feature(util) rm checkExt --- lib/client/view.js | 19 +++++++------------ lib/util.js | 33 --------------------------------- test/lib/util.js | 34 ---------------------------------- 3 files changed, 7 insertions(+), 79 deletions(-) diff --git a/lib/client/view.js b/lib/client/view.js index 0669d5f4f1..1f92e03f4f 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -182,7 +182,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; function isImage(name) { var isMatch; - isMatch = Util.checkExt(name, [ + isMatch = [ 'jp(e|g|eg)', 'gif', 'png', @@ -190,7 +190,10 @@ var CloudCmd, Util, DOM, CloudFunc, $; 'webp', 'svg', 'ico' - ]); + ].some(function(ext) { + var reg = RegExp('\\.' + ext + '$'); + return reg.test(name); + }); return isMatch; } @@ -204,19 +207,11 @@ var CloudCmd, Util, DOM, CloudFunc, $; } function isAudio(name) { - var isMatch; - - isMatch = Util.checkExt(name, ['mp3', 'ogg']); - - return isMatch; + return /\.(mp3|ogg)$/.test(name); } function isVideo(name) { - var isMatch; - - isMatch = Util.checkExt(name, ['mp4', 'avi']); - - return isMatch; + return /\.(mp4|avi)$/.test(name); } function getType(name) { diff --git a/lib/util.js b/lib/util.js index b906fd7b01..1a1cda38b7 100644 --- a/lib/util.js +++ b/lib/util.js @@ -11,39 +11,6 @@ function UtilProto() { var Util = this; - /** - * Функция ищет в имени файла расширение - * и если находит возвращает true - * @param name - получает имя файла - * @param ext - расширение - */ - this.checkExt = function(name, ext) { - var isMatch, str, - type = Util.type(ext), - regStr = '\\.({{ exts }})$', - regExp; - - switch(type) { - case 'string': - regStr = Util.render(regStr, { - exts: ext - }); - - regExp = new RegExp(regStr, 'i'); - isMatch = regExp.test(name); - - break; - - case 'array': - str = ext.join('|'); - isMatch = Util.checkExt(name, str); - - break; - } - - return isMatch; - }; - this.check = new checkProto(); function checkProto() { diff --git a/test/lib/util.js b/test/lib/util.js index 8b1a64726e..b07ddadd91 100644 --- a/test/lib/util.js +++ b/test/lib/util.js @@ -26,40 +26,6 @@ }); }); - describe('checkExt', function() { - it('should return true when extension is same', function() { - var EXT = 'png', - name = 'picture.png', - same = Util.checkExt(name, EXT); - - same.should.be.true; - }); - - it('should return false when extension is not same', function() { - var EXT = 'jpg', - name = 'picture.png', - same = Util.checkExt(name, EXT); - - same.should.be.false; - }); - - it('should return true when one item of extensions array is same', function() { - var EXT = ['jpg', 'png'], - name = 'picture.png', - same = Util.checkExt(name, EXT); - - same.should.be.true; - }); - - it('should return false when no one item of extensions array is same', function() { - var EXT = ['jpg', 'gif'], - name = 'picture.png', - same = Util.checkExt(name, EXT); - - same.should.be.false; - }); - }); - describe('exec', function() { it('should execute function with parameters', function() { var WORD = 'hello', From 45590f2cc17791848d8e6a0dd2f4219f6026ffff Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 20 Mar 2015 08:13:12 -0400 Subject: [PATCH 0004/3805] feature(util) rm getTime --- lib/util.js | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/lib/util.js b/lib/util.js index 1a1cda38b7..a9bd8217db 100644 --- a/lib/util.js +++ b/lib/util.js @@ -530,25 +530,6 @@ return ret; }; - /** - * Gets current time in format hh:mm:ss - */ - this.getTime = function() { - var ret, - date = new Date(), - hours = date.getHours(), - minutes = date.getMinutes(), - seconds = date.getSeconds(); - - minutes = minutes < 10 ? '0' + minutes : minutes; - seconds = seconds < 10 ? '0' + seconds : seconds; - - ret = hours + ':' + minutes + ':' + seconds; - - return ret; - }; - - /** * start timer * @param name From 784967800fc5aa4a21c8069f37a307c5712a06f1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 21 Mar 2015 07:12:47 -0400 Subject: [PATCH 0005/3805] feature(route) rm checkup --- lib/server/route.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/server/route.js b/lib/server/route.js index 9f78ba5ee8..81e20a34c4 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -17,7 +17,6 @@ minify = require('minify'), format = require('format-io'), - check = require('checkup'), config = require(DIR_SERVER + 'config'), @@ -94,7 +93,8 @@ lenthPath = TMPL_PATH.length, isRead = lengthTmpl === lenthPath; - check(arguments, ['callback']); + if (typeof callback !== 'function') + throw(Error('callback should be function!')); if (isRead) { callback(); @@ -128,7 +128,14 @@ function route(request, response, callback) { var name, p, isAuth, isFS, path; - check(arguments, ['req', 'res', 'callback']); + if (!request) + throw(Error('request could not be empty!')); + + if (!response) + throw(Error('response could not be empty!')); + + if (typeof callback !== 'function') + throw(Error('callback should be function!')); name = ponse.getPathName(request); isAuth = RegExp('^(/auth|/auth/github)$').test(name); From 5b9ec5da26d70ccd7b50cf3158d8ebd94627eca5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 21 Mar 2015 07:15:53 -0400 Subject: [PATCH 0006/3805] refactor(route) route: rm NOT_LOG --- lib/server/route.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/server/route.js b/lib/server/route.js index 81e20a34c4..fed61965e6 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -178,14 +178,12 @@ }); else buildIndex(dir, function(error, data) { - var NOT_LOG = true; - p.name = PATH_INDEX; if (error) ponse.sendError(error, p); else - ponse.send(data, p, NOT_LOG); + ponse.send(data, p); }); }); } From 1c0d88560313c40a1a0df1cac539f962ff2df6d2 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 23 Mar 2015 04:28:12 -0400 Subject: [PATCH 0007/3805] feature(appveyor) io.js: 1.0 -> 1 --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 0290db2f15..41cd5dffd7 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,7 +3,7 @@ environment: # node.js - nodejs_version: "0.12" # io.js - - nodejs_version: "1.0" + - nodejs_version: "1" install: - ps: Install-Product node $env:nodejs_version From 2b981f1b1a6d4c9ee95fe2513404e073518fc649 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 23 Mar 2015 08:46:21 -0400 Subject: [PATCH 0008/3805] chore(cloudcmd) rm " " --- lib/cloudcmd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index c95b09d5d1..6c728e699b 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -56,7 +56,7 @@ webconsole({ socket: socket }); - + config.socket(socket); edward.listen(socket, { From 58888f57d022524246038f9639c9484e07deb8a3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 23 Mar 2015 08:47:32 -0400 Subject: [PATCH 0009/3805] chore(cloudcmd) add " " --- lib/cloudcmd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 6c728e699b..84cf72eb31 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -111,7 +111,7 @@ zip : isZip }), - dword({ + dword({ minify : isMinify, online : isOnline, diff : isDiff, From 83db9f078b13c6491d55579407b2709c6509bee4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 23 Mar 2015 10:56:55 -0400 Subject: [PATCH 0010/3805] feature(package) copymitter v1.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 22c0cd567f..7d0e813c26 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "dependencies": { "checkup": "~1.0.3", "console-io": "~2.2.0", - "copymitter": "~1.5.0", + "copymitter": "~1.6.0", "dword": "~1.3.2", "edward": "~1.4.0", "execon": "~1.1.0", From 56a7c49cbc9ae81b74b265a070a01a75310d23ef Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 Mar 2015 05:36:14 -0400 Subject: [PATCH 0011/3805] refactor(auth) init: add algo --- lib/server/auth.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/server/auth.js b/lib/server/auth.js index da052d5192..c2dd906567 100644 --- a/lib/server/auth.js +++ b/lib/server/auth.js @@ -32,11 +32,11 @@ var auth = httpAuth.basic({ realm: 'Cloud Commander' }, function (username, password, callback) { - var hash, + var hash, sha, name = config('username'), pass = config('password'), equal = username === name, - sha = crypto.createHash('sha512WithRSAEncryption'); + algo = 'sha512WithRSAEncryption'; if (!oldPass) oldPass = pass; @@ -47,13 +47,14 @@ if (!equal) username === oldName; + sha = crypto.createHash(algo); sha.update(password); hash = sha.digest('hex'); equal = pass === hash && equal; if (!equal) { - sha = crypto.createHash('sha512WithRSAEncryption'); + sha = crypto.createHash(algo); sha.update(oldPass); hash = sha.digest('hex'); equal = pass === hash && equal; From 4c06854897e6579e8e8410ff01853e59bf1f2700 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 Mar 2015 07:07:03 -0400 Subject: [PATCH 0012/3805] feature(config) add algo --- HELP.md | 1 + json/config.json | 1 + lib/server/auth.js | 18 ++++++------------ lib/server/config.js | 25 ++++++++----------------- lib/server/password.js | 20 ++++++++++++++++++++ 5 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 lib/server/password.js diff --git a/HELP.md b/HELP.md index d47a041d95..782e8355f3 100644 --- a/HELP.md +++ b/HELP.md @@ -183,6 +183,7 @@ Here is description of options: "auth" : false, /* enable http authentication */ "username" : "root", /* username for authentication */ "password" : "toor", /* password hash in sha-1 for authentication*/ + "algo" : "sha512WithRSAEncryption", /* cryptographic algorithm */ "editor" : "edward", /* default, could be "dword" or "edward" */ "diff" : true, /* when save - send patch, not whole file */ "zip" : true, /* zip text before send / unzip before save */ diff --git a/json/config.json b/json/config.json index a9f00535ba..ca24cae6b3 100644 --- a/json/config.json +++ b/json/config.json @@ -2,6 +2,7 @@ "auth": false, "username": "root", "password": "2b64f2e3f9fee1942af9ff60d40aa5a719db33b8ba8dd4864bb4f11e25ca2bee00907de32a59429602336cac832c8f2eeff5177cc14c864dd116c8bf6ca5d9a9", + "algo": "sha512WithRSAEncryption", "editor": "edward", "diff": true, "zip" : true, diff --git a/lib/server/auth.js b/lib/server/auth.js index c2dd906567..1dcf357d9d 100644 --- a/lib/server/auth.js +++ b/lib/server/auth.js @@ -3,10 +3,9 @@ var DIR = './', - crypto = require('crypto'), - tryRequire = require('tryrequire'), config = require(DIR + 'config'), + cryptPassword = require(DIR + 'password'), oldPass, oldName; @@ -32,11 +31,11 @@ var auth = httpAuth.basic({ realm: 'Cloud Commander' }, function (username, password, callback) { - var hash, sha, + var hash, name = config('username'), pass = config('password'), equal = username === name, - algo = 'sha512WithRSAEncryption'; + algo = config('algo'); if (!oldPass) oldPass = pass; @@ -47,17 +46,12 @@ if (!equal) username === oldName; - sha = crypto.createHash(algo); - sha.update(password); - - hash = sha.digest('hex'); + hash = cryptPassword(algo, password); equal = pass === hash && equal; if (!equal) { - sha = crypto.createHash(algo); - sha.update(oldPass); - hash = sha.digest('hex'); - equal = pass === hash && equal; + hash = cryptPassword(algo, oldPass); + equal = pass === hash && equal; } callback(equal); diff --git a/lib/server/config.js b/lib/server/config.js index f5a4aa6dcf..210b5cad53 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -11,14 +11,13 @@ HOME = (HOME_UNIX || HOME_WIN) + '/', fs = require('fs'), - crypto = require('crypto'), + password = require(DIR_SERVER + 'password'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), - check = require('checkup'), + check = require('checkup'), tryRequire = require('tryrequire'), - pipe = require('pipe-io'), ponse = require('ponse'), json = require('jonny'), @@ -32,11 +31,11 @@ tryRequire(ConfigHome) || tryRequire(ConfigPath, {log: true}) || {}; - module.exports = set; + module.exports = manage; module.exports.save = save; module.exports.socket = socket; - function set(key, value) { + function manage(key, value) { var result; if (key) @@ -154,25 +153,17 @@ Object.keys(json).forEach(function(name) { data = CloudFunc.formatMsg('config', name); - set(name, json[name]); + manage(name, json[name]); }); return data; } function cryptoPass(json) { - if (json && json.password) - json.password = crypt(json.password); - } - - function crypt(password) { - var result, - sha = crypto.createHash('sha512WithRSAEncryption'); - - sha.update(password); - result = sha.digest('hex'); + var algo = manage('algo'); - return result; + if (json && json.password) + json.password = password(algo, json.password); } })(); diff --git a/lib/server/password.js b/lib/server/password.js new file mode 100644 index 0000000000..56db2b927c --- /dev/null +++ b/lib/server/password.js @@ -0,0 +1,20 @@ +(function() { + 'use strict'; + + var crypto = require('crypto'); + + module.exports = function(algo, password) { + var result, sha; + + if (!algo) + algo = 'sha512WithRSAEncryption'; + + sha = crypto.createHash(algo); + + sha.update(password); + result = sha.digest('hex'); + + return result; + }; + +})(); From d775b6d736d7c9e16faec6904d53b46695359dcd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 Mar 2015 08:58:15 -0400 Subject: [PATCH 0013/3805] feature(config) save stringify: add 4 --- lib/server/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server/config.js b/lib/server/config.js index 210b5cad53..c76a3999b2 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -50,7 +50,7 @@ } function save(callback) { - var data = json.stringify(config); + var data = json.stringify(config, 0, 4); check(arguments, ['callback']); From 2cfacf60c016f0393de7560862a60896bfcee979 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 Mar 2015 11:05:57 -0400 Subject: [PATCH 0014/3805] feature(bin) add --username, --password, --save --- HELP.md | 5 ++++- bin/cloudcmd.js | 59 ++++++++++++++++++++++++++++++++++++------------- json/bin.json | 9 +++++--- 3 files changed, 54 insertions(+), 19 deletions(-) diff --git a/HELP.md b/HELP.md index 782e8355f3..e962d77a1a 100644 --- a/HELP.md +++ b/HELP.md @@ -60,7 +60,10 @@ Cloud Commander supports command line parameters: |:----------------------|:-------------------------------------------- | `-h, --help` | display help and exit | `-v, --version` | output version information and exit -| `-p, --port` | set port number and start +| `-s, --save` | save options +| `-p, --port` | set port number +| `-u, --username` | set username +| `-ps, --password` | set password If no parameters given Cloud Commander reads information from `~/.cloudcmd.json` and use port from it (`8000` default). if port variables `PORT` or `VCAP_APP_PORT` isn't exist. diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index d7d84a9bcf..931c89a1ea 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -3,23 +3,29 @@ (function() { 'use strict'; - var Info = require('../package'), + var config, + Info = require('../package'), DIR = __dirname + '/../', DIR_LIB = DIR + 'lib/', + DIR_SERVER = DIR_LIB + 'server/', rendy = require('rendy'), + createPass = require(DIR_SERVER + 'password'), HOME_PAGE = 'General help using Cloud Commander: <{{ url }}>', argv = process.argv, args = require('minimist')(argv.slice(2), { - string: 'port', - boolean: ['test', 'repl'], + string: ['port', 'password', 'username'], + boolean: ['test', 'repl', 'save'], alias: { v: 'version', h: 'help', - p: 'port' + p: 'port', + u: 'username', + ps: 'password', + s: 'save' } }); @@ -29,22 +35,20 @@ help(); } else if (args.test) { test(); - } else if (!args.repl && !args.port) { - start(); } else { if (args.repl) repl(); - if (!args.port) - start(); + config = require(DIR_SERVER + 'config'); + + password(args.password); + username(args.username); + port(args.port); + + if (args.save) + config.save(start); else - if (isNaN(args.port)) - console.error('Error: port should be a number!'); - else - start({ - port: args.port - }); - + start(); } function test() { @@ -64,6 +68,31 @@ require(SERVER)(config); } + function password(pass) { + var algo, hash; + + if (pass) { + algo = config('algo'); + hash = createPass(algo, pass); + + config('password', hash); + } + } + + function username(name) { + if (name) + config('username', name); + } + + function port(number) { + if (port) { + if (!isNaN(number)) + config('port', number); + else + console.error('port: ignored, should be a number'); + } + } + function help() { var bin = require('../json/bin'), usage = 'Usage: cloudcmd [options]', diff --git a/json/bin.json b/json/bin.json index 5277fa8385..39b38a6249 100644 --- a/json/bin.json +++ b/json/bin.json @@ -1,5 +1,8 @@ { - "-h, --help ": "display this help and exit", - "-v, --version ": "output version information and exit", - "-p, --port ": "set port number and start" + "-h, --help " : "display this help and exit", + "-v, --version " : "output version information and exit", + "-s, --save " : "save options", + "-p, --port " : "set port number", + "-u, --username " : "set username", + "-ps, --password" : "set password" } From 03e9cbe7f3bda0df6d508e43311d6d234dd20364 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 Mar 2015 11:18:41 -0400 Subject: [PATCH 0015/3805] fix(cloudcmd) port: port -> number --- bin/cloudcmd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 931c89a1ea..da4c4fe089 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -85,7 +85,7 @@ } function port(number) { - if (port) { + if (number) { if (!isNaN(number)) config('port', number); else From d1f967b85131d75b18e726d8b0d49055f2765438 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 24 Mar 2015 11:30:53 -0400 Subject: [PATCH 0016/3805] feature(bin) add --auth, --no-auth --- HELP.md | 2 ++ bin/cloudcmd.js | 11 +++++++++-- json/bin.json | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/HELP.md b/HELP.md index e962d77a1a..b6e4dc22d5 100644 --- a/HELP.md +++ b/HELP.md @@ -61,6 +61,8 @@ Cloud Commander supports command line parameters: | `-h, --help` | display help and exit | `-v, --version` | output version information and exit | `-s, --save` | save options +| `-a, --auth` | enable authorization +| `-na, --no-auth` | disable authorization | `-p, --port` | set port number | `-u, --username` | set username | `-ps, --password` | set password diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index da4c4fe089..c8bae119b9 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -17,7 +17,7 @@ argv = process.argv, args = require('minimist')(argv.slice(2), { - string: ['port', 'password', 'username'], + string: ['port', 'password', 'username', 'auth', 'no-auth'], boolean: ['test', 'repl', 'save'], alias: { v: 'version', @@ -25,7 +25,9 @@ p: 'port', u: 'username', ps: 'password', - s: 'save' + s: 'save', + a: 'auth', + na: 'no-auth', } }); @@ -45,6 +47,11 @@ username(args.username); port(args.port); + if (args.auth) + config('auth', true); + else if (args['no-auth']) + config('auth', false); + if (args.save) config.save(start); else diff --git a/json/bin.json b/json/bin.json index 39b38a6249..2a93043cc1 100644 --- a/json/bin.json +++ b/json/bin.json @@ -2,6 +2,8 @@ "-h, --help " : "display this help and exit", "-v, --version " : "output version information and exit", "-s, --save " : "save options", + "-a, --auth " : "enable authorization", + "-na, --no-auth " : "disable authorization", "-p, --port " : "set port number", "-u, --username " : "set username", "-ps, --password" : "set password" From 6146ac87103b8be5fe6b499e5b489e403240ae0b Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 03:53:10 -0400 Subject: [PATCH 0017/3805] feature(bin) add --online, --offline --- HELP.md | 2 ++ bin/cloudcmd.js | 12 +++++++++++- json/bin.json | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/HELP.md b/HELP.md index b6e4dc22d5..9c00cd8078 100644 --- a/HELP.md +++ b/HELP.md @@ -61,6 +61,8 @@ Cloud Commander supports command line parameters: | `-h, --help` | display help and exit | `-v, --version` | output version information and exit | `-s, --save` | save options +| `-on, --online` | load scripts from remote servers +| `-off, --offline` | load scripts from local server | `-a, --auth` | enable authorization | `-na, --no-auth` | disable authorization | `-p, --port` | set port number diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index c8bae119b9..f717df9034 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -17,12 +17,22 @@ argv = process.argv, args = require('minimist')(argv.slice(2), { - string: ['port', 'password', 'username', 'auth', 'no-auth'], + string: [ + 'port', + 'password', + 'username', + 'auth', + 'no-auth', + 'online', + 'offline' + ], boolean: ['test', 'repl', 'save'], alias: { v: 'version', h: 'help', p: 'port', + on: 'online', + off: 'offline', u: 'username', ps: 'password', s: 'save', diff --git a/json/bin.json b/json/bin.json index 2a93043cc1..5f5a05e2e7 100644 --- a/json/bin.json +++ b/json/bin.json @@ -2,6 +2,8 @@ "-h, --help " : "display this help and exit", "-v, --version " : "output version information and exit", "-s, --save " : "save options", + "-on, --online " : "load scripts from remote servers", + "-off, --offline" : "load scripts from local server", "-a, --auth " : "enable authorization", "-na, --no-auth " : "disable authorization", "-p, --port " : "set port number", From 194796432bdb9692bc64d79a53b5cef754bd12dd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 04:02:24 -0400 Subject: [PATCH 0018/3805] feature(bin) add --no-server --- HELP.md | 1 + bin/cloudcmd.js | 29 +++++++++++++++-------------- json/bin.json | 3 ++- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/HELP.md b/HELP.md index 9c00cd8078..ee39b0aefe 100644 --- a/HELP.md +++ b/HELP.md @@ -68,6 +68,7 @@ Cloud Commander supports command line parameters: | `-p, --port` | set port number | `-u, --username` | set username | `-ps, --password` | set password +| `-ns, --no-server` | do not start server If no parameters given Cloud Commander reads information from `~/.cloudcmd.json` and use port from it (`8000` default). if port variables `PORT` or `VCAP_APP_PORT` isn't exist. diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index f717df9034..5950d8ebff 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -21,12 +21,15 @@ 'port', 'password', 'username', - 'auth', - 'no-auth', 'online', - 'offline' + 'offline', ], - boolean: ['test', 'repl', 'save'], + boolean: [ + 'no-server', + 'auth', + 'no-auth', + 'repl', + 'save'], alias: { v: 'version', h: 'help', @@ -38,6 +41,7 @@ s: 'save', a: 'auth', na: 'no-auth', + ns: 'no-server' } }); @@ -45,8 +49,6 @@ version(); } else if (args.help) { help(); - } else if (args.test) { - test(); } else { if (args.repl) repl(); @@ -62,19 +64,17 @@ else if (args['no-auth']) config('auth', false); + if (args.online) + config('online', true); + else if (args.offline) + config('offline', false); + if (args.save) config.save(start); else start(); } - function test() { - console.log('Cloud Commander testing mode'); - console.log('argv: ', argv); - - require('..'); - } - function version() { console.log('v' + Info.version); } @@ -82,7 +82,8 @@ function start(config) { var SERVER = '../lib/server'; - require(SERVER)(config); + if (!args['no-server']) + require(SERVER)(config); } function password(pass) { diff --git a/json/bin.json b/json/bin.json index 5f5a05e2e7..50d5f739bb 100644 --- a/json/bin.json +++ b/json/bin.json @@ -8,5 +8,6 @@ "-na, --no-auth " : "disable authorization", "-p, --port " : "set port number", "-u, --username " : "set username", - "-ps, --password" : "set password" + "-ps, --password" : "set password", + "-ns, --no-server" : "do not start server" } From b716e390e15d233f9cf8facd5c364ac97072bc08 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 04:09:12 -0400 Subject: [PATCH 0019/3805] feature(bin) add --noserver --- HELP.md | 4 ++-- bin/cloudcmd.js | 10 +++++----- json/bin.json | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/HELP.md b/HELP.md index ee39b0aefe..2eafbb3e91 100644 --- a/HELP.md +++ b/HELP.md @@ -64,11 +64,11 @@ Cloud Commander supports command line parameters: | `-on, --online` | load scripts from remote servers | `-off, --offline` | load scripts from local server | `-a, --auth` | enable authorization -| `-na, --no-auth` | disable authorization +| `-na, --noauth` | disable authorization | `-p, --port` | set port number | `-u, --username` | set username | `-ps, --password` | set password -| `-ns, --no-server` | do not start server +| `-ns, --noserver` | do not start server If no parameters given Cloud Commander reads information from `~/.cloudcmd.json` and use port from it (`8000` default). if port variables `PORT` or `VCAP_APP_PORT` isn't exist. diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 5950d8ebff..a3b3b522af 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -25,9 +25,9 @@ 'offline', ], boolean: [ - 'no-server', 'auth', - 'no-auth', + 'noauth', + 'noserver', 'repl', 'save'], alias: { @@ -40,8 +40,8 @@ ps: 'password', s: 'save', a: 'auth', - na: 'no-auth', - ns: 'no-server' + na: 'noauth', + ns: 'noserver' } }); @@ -82,7 +82,7 @@ function start(config) { var SERVER = '../lib/server'; - if (!args['no-server']) + if (!args.noserver) require(SERVER)(config); } diff --git a/json/bin.json b/json/bin.json index 50d5f739bb..de1fc1efa4 100644 --- a/json/bin.json +++ b/json/bin.json @@ -5,9 +5,9 @@ "-on, --online " : "load scripts from remote servers", "-off, --offline" : "load scripts from local server", "-a, --auth " : "enable authorization", - "-na, --no-auth " : "disable authorization", + "-na, --noauth " : "disable authorization", "-p, --port " : "set port number", "-u, --username " : "set username", "-ps, --password" : "set password", - "-ns, --no-server" : "do not start server" + "-ns, --noserver" : "do not start server" } From b531c825675c089f18876df7bee45a96bfd0546f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 04:13:44 -0400 Subject: [PATCH 0020/3805] chore(bin) add " " --- json/bin.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/bin.json b/json/bin.json index de1fc1efa4..1d0af2a24d 100644 --- a/json/bin.json +++ b/json/bin.json @@ -5,9 +5,9 @@ "-on, --online " : "load scripts from remote servers", "-off, --offline" : "load scripts from local server", "-a, --auth " : "enable authorization", - "-na, --noauth " : "disable authorization", + "-na, --noauth " : "disable authorization", "-p, --port " : "set port number", "-u, --username " : "set username", "-ps, --password" : "set password", - "-ns, --noserver" : "do not start server" + "-ns, --noserver" : "do not start server" } From 249e6ccb0d14ab2952a0eb15c72f7c607372da2c Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 04:28:10 -0400 Subject: [PATCH 0021/3805] chore(bin) add " " --- json/bin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/bin.json b/json/bin.json index 1d0af2a24d..bec0ad85ff 100644 --- a/json/bin.json +++ b/json/bin.json @@ -5,7 +5,7 @@ "-on, --online " : "load scripts from remote servers", "-off, --offline" : "load scripts from local server", "-a, --auth " : "enable authorization", - "-na, --noauth " : "disable authorization", + "-na, --noauth " : "disable authorization", "-p, --port " : "set port number", "-u, --username " : "set username", "-ps, --password" : "set password", From 54ee6838388d3fcf2e5012c76c5c31623a3e651f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 04:40:00 -0400 Subject: [PATCH 0022/3805] feature(bin) add --no-online, --no-auth, --no-server --- HELP.md | 6 +++--- bin/cloudcmd.js | 27 +++++++++++---------------- json/bin.json | 8 ++++---- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/HELP.md b/HELP.md index 2eafbb3e91..92b0d73564 100644 --- a/HELP.md +++ b/HELP.md @@ -62,13 +62,13 @@ Cloud Commander supports command line parameters: | `-v, --version` | output version information and exit | `-s, --save` | save options | `-on, --online` | load scripts from remote servers -| `-off, --offline` | load scripts from local server | `-a, --auth` | enable authorization -| `-na, --noauth` | disable authorization | `-p, --port` | set port number | `-u, --username` | set username | `-ps, --password` | set password -| `-ns, --noserver` | do not start server +| `--noauth` | disable authorization +| `--no-server` | do not start server +| `--no-online` | load scripts from remote servers If no parameters given Cloud Commander reads information from `~/.cloudcmd.json` and use port from it (`8000` default). if port variables `PORT` or `VCAP_APP_PORT` isn't exist. diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index a3b3b522af..5e0450bafe 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -5,6 +5,7 @@ var config, Info = require('../package'), + Config = require('../json/config.json'), DIR = __dirname + '/../', DIR_LIB = DIR + 'lib/', @@ -26,22 +27,23 @@ ], boolean: [ 'auth', - 'noauth', - 'noserver', + 'server', 'repl', 'save'], + default: { + 'auth' : Config.auth, + 'online': Config.online, + 'server': true + }, alias: { v: 'version', h: 'help', p: 'port', on: 'online', - off: 'offline', u: 'username', ps: 'password', s: 'save', - a: 'auth', - na: 'noauth', - ns: 'noserver' + a: 'auth' } }); @@ -59,15 +61,8 @@ username(args.username); port(args.port); - if (args.auth) - config('auth', true); - else if (args['no-auth']) - config('auth', false); - - if (args.online) - config('online', true); - else if (args.offline) - config('offline', false); + config('auth', args.auth); + config('online', args.online); if (args.save) config.save(start); @@ -82,7 +77,7 @@ function start(config) { var SERVER = '../lib/server'; - if (!args.noserver) + if (args.server) require(SERVER)(config); } diff --git a/json/bin.json b/json/bin.json index bec0ad85ff..d707ca986f 100644 --- a/json/bin.json +++ b/json/bin.json @@ -2,12 +2,12 @@ "-h, --help " : "display this help and exit", "-v, --version " : "output version information and exit", "-s, --save " : "save options", - "-on, --online " : "load scripts from remote servers", - "-off, --offline" : "load scripts from local server", + "-o, --online " : "load scripts from remote servers", "-a, --auth " : "enable authorization", - "-na, --noauth " : "disable authorization", "-p, --port " : "set port number", "-u, --username " : "set username", "-ps, --password" : "set password", - "-ns, --noserver" : "do not start server" + "--no-auth " : "disable authorization", + "--no-server" : "do not start server", + "--no-online" : "load scripts from local server" } From 8ea6c6360e34e764afc3751478f23338c20bc6f8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 04:43:53 -0400 Subject: [PATCH 0023/3805] docs(help) -on -> -o --- HELP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HELP.md b/HELP.md index 92b0d73564..2e7448fa4c 100644 --- a/HELP.md +++ b/HELP.md @@ -61,7 +61,7 @@ Cloud Commander supports command line parameters: | `-h, --help` | display help and exit | `-v, --version` | output version information and exit | `-s, --save` | save options -| `-on, --online` | load scripts from remote servers +| `-o, --online` | load scripts from remote servers | `-a, --auth` | enable authorization | `-p, --port` | set port number | `-u, --username` | set username From 8de9f4b85c3a3a28be668ffbec286466d582b7f6 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 16:03:37 +0200 Subject: [PATCH 0024/3805] docs(help) --noauth -> --no-auth --- HELP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HELP.md b/HELP.md index 2e7448fa4c..4eeb513c3c 100644 --- a/HELP.md +++ b/HELP.md @@ -66,7 +66,7 @@ Cloud Commander supports command line parameters: | `-p, --port` | set port number | `-u, --username` | set username | `-ps, --password` | set password -| `--noauth` | disable authorization +| `--no-auth` | disable authorization | `--no-server` | do not start server | `--no-online` | load scripts from remote servers From d2c0afccabc53a03322586dff4a9359dd0c7f6d2 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 25 Mar 2015 16:51:10 +0200 Subject: [PATCH 0025/3805] docs(readme) add package quality --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 5ed9c07e17..ffc410e39f 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ Cloud Commander v2.2.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][N [BuildStatusURL]: https://travis-ci.org/coderaiser/cloudcmd "Build Status" [BuildStatusIMGURL]: https://img.shields.io/travis/coderaiser/cloudcmd/dev.svg?style=flat +[PackageQualityURL]: http://packagequality.com/#?package=cloudcmd "Package Quality" +[PackageQualityIMGURL]: http://packagequality.com/badge/cloudcmd.png + **Cloud Commander** orthodox web file manager with console and editor. ![Cloud Commander](http://cloudcmd.io/img/logo/cloudcmd.png "Cloud Commander") @@ -39,3 +42,5 @@ Open url `http://localhost:8000` in browser. ## License MIT + +[![Package quality][PackageQualityIMGURL]][PackageQualityURL] From c12cd62ce7a7478458319b0394e53b70a678a7a0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 26 Mar 2015 03:48:30 -0400 Subject: [PATCH 0026/3805] fix(listeners) pop: event.state could be null --- lib/client/listeners.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index fb0fe1e527..3a3748971d 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -317,17 +317,17 @@ var Util, DOM, CloudFunc, CloudCmd; function pop() { Events.add('popstate', function(event) { - var path = event.state; + var path = event.state || ''; path = path.replace(CloudFunc.FS, ''); - if (path) + if (!path) + CloudCmd.route(location.hash); + else CloudCmd.loadDir({ path : path, history : false }); - else - CloudCmd.route(location.hash); }); } From bb924c86fa486e7f831b7e250fb88de7484a50fa Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 26 Mar 2015 05:01:12 -0400 Subject: [PATCH 0027/3805] feature(docs) zip -> tar.gz --- gulp/docs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulp/docs.js b/gulp/docs.js index 81ed85135a..80fe654586 100644 --- a/gulp/docs.js +++ b/gulp/docs.js @@ -14,7 +14,7 @@ link = '//github.com/cloudcmd/archive/raw/master/cloudcmd', template = '- *{{ date }}*, ' + '**[v{{ version }}]' + - '(' + link + '-v{{ version }}.zip)**\n', + '(' + link + '-v{{ version }}.tar.gz)**\n', version = Info.version; cl(function(error, versionNew) { From 4b50c00028e915b913f49d881c992b89051e3d97 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 26 Mar 2015 06:33:10 -0400 Subject: [PATCH 0028/3805] feature(package) v2.3.0 --- ChangeLog | 26 ++++++++++++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5b4531f0b4..27603ac6fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2015.03.26, v2.3.0 + +fix: +- (listeners) pop: event.state could be null +- (cloudcmd) port: port -> number + +feature: +- (docs) zip -> tar.gz +- (bin) add --no-online, --no-auth, --no-server +- (bin) add --noserver +- (bin) add --no-server +- (bin) add --online, --offline +- (bin) add --auth, --no-auth +- (bin) add --username, --password, --save +- (config) save stringify: add 4 +- (config) add algo +- (package) copymitter v1.6.0 +- (appveyor) io.js: 1.0 -> 1 +- (route) rm checkup +- (util) rm getTime +- (util) rm checkExt +- (util) applyConstructor: util -> client +- (config) add .full-width +- (json) rm ext, edit + + 2015.03.19, v2.2.1 fix: diff --git a/HELP.md b/HELP.md index 4eeb513c3c..619918d33d 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v2.2.1 +Cloud Commander v2.3.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -337,6 +337,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.03.26*, **[v2.3.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.3.0.tar.gz)** - *2015.03.19*, **[v2.2.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.2.1.zip)** - *2015.03.13*, **[v2.2.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.2.0.zip)** - *2015.02.02*, **[v2.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.1.0.zip)** diff --git a/README.md b/README.md index ffc410e39f..70482d694d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v2.2.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] +Cloud Commander v2.3.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 69bf1dca8c..376b7b0b3e 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "2.2.1", + "version": "2.3.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 7d0e813c26..34f996e970 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "2.2.1", + "version": "2.3.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 0e9f15a7c36b975221841f6f778663c45706a757 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 26 Mar 2015 07:14:07 -0400 Subject: [PATCH 0029/3805] fix(cloudcmd) auth always false --- bin/cloudcmd.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 5e0450bafe..5b45d14f70 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -3,14 +3,13 @@ (function() { 'use strict'; - var config, - Info = require('../package'), - Config = require('../json/config.json'), - + var Info = require('../package'), + DIR = __dirname + '/../', DIR_LIB = DIR + 'lib/', DIR_SERVER = DIR_LIB + 'server/', + config = require(DIR_SERVER + 'config'), rendy = require('rendy'), createPass = require(DIR_SERVER + 'password'), @@ -31,8 +30,8 @@ 'repl', 'save'], default: { - 'auth' : Config.auth, - 'online': Config.online, + 'auth' : config('auth'), + 'online': config('online'), 'server': true }, alias: { @@ -55,8 +54,6 @@ if (args.repl) repl(); - config = require(DIR_SERVER + 'config'); - password(args.password); username(args.username); port(args.port); From ed29320b9047dc2522b797bc3e46d2c189632db1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 26 Mar 2015 07:14:34 -0400 Subject: [PATCH 0030/3805] feature(package) v2.3.1 --- ChangeLog | 6 ++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 27603ac6fb..340eb0333a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015.03.26, v2.3.1 + +fix: +- (cloudcmd) auth always false + + 2015.03.26, v2.3.0 fix: diff --git a/HELP.md b/HELP.md index 619918d33d..dc0b46cf27 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v2.3.0 +Cloud Commander v2.3.1 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -337,6 +337,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.03.26*, **[v2.3.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.3.1.tar.gz)** - *2015.03.26*, **[v2.3.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.3.0.tar.gz)** - *2015.03.19*, **[v2.2.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.2.1.zip)** - *2015.03.13*, **[v2.2.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v2.2.0.zip)** diff --git a/README.md b/README.md index 70482d694d..97eaab7ab0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v2.3.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] +Cloud Commander v2.3.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 376b7b0b3e..2f66ff2360 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "2.3.0", + "version": "2.3.1", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 34f996e970..bbe29a3fc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "2.3.0", + "version": "2.3.1", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 897f0099b2b1e6d22894ffd40a107e3b1583ab27 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 27 Mar 2015 08:34:05 -0400 Subject: [PATCH 0031/3805] feature(rest) onPut: forEach -> RegExp --- lib/server/rest.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 032826857b..845b4d8e02 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -262,14 +262,12 @@ if (!files.from) { callback(body); } else { - from = mellow.pathToWin(files.from); + from = mellow.pathToWin(files.from); if (files.to) - to = mellow.pathToWin(files.to); + to = mellow.pathToWin(files.to); else - ['.zip', '.tar.gz', '.gz'].forEach(function(str) { - to = files.from.replace(str); - }); + to = files.from.replace(/(\.gz|\.tar\.gz)$/, ''); packer.unpack(from, to, function(error) { var name = path.basename(files.from), From 15b2a622176b929e122e97e577965dd1b3af3a2f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 27 Mar 2015 11:16:57 -0400 Subject: [PATCH 0032/3805] fix(client) loadDir: changePanel even when noCurrent is true --- lib/client.js | 12 ++++++++---- lib/client/dom.js | 5 ++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/client.js b/lib/client.js index fa047fa379..61882fe17f 100644 --- a/lib/client.js +++ b/lib/client.js @@ -64,10 +64,11 @@ var Util, DOM, CloudFunc, join; if (pathParams) link = pathParams; - if (panel && panel !== Info.panel) { - DOM.changePanel(); - panelChanged = true; - } + if (!params.noCurrent) + if (panel && panel !== Info.panel) { + DOM.changePanel(); + panelChanged = true; + } if (panelChanged || isRefresh) imgPosition = 'top'; @@ -325,6 +326,9 @@ var Util, DOM, CloudFunc, join; options = {}; } + if (typeof callback !== 'function') + throw(Error('callback should be function!')); + CloudCmd.loadDir({ path : notSlashlLink, isRefresh : NEEDREFRESH, diff --git a/lib/client/dom.js b/lib/client/dom.js index 5df2ad454b..493fe0e3d3 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -1636,7 +1636,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; DOM.setCurrentFile(current); }; - CloudCmd.refresh(panelPassive, {noCurrent: true}); + CloudCmd.refresh(panelPassive, {noCurrent: true}, function() { + + }); + CloudCmd.refresh(panel, setCurrent); }); }); From 8b7080cc4d8b1cdfa7f6e1f92f39f2c8357b2ecc Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 27 Mar 2015 11:49:11 -0400 Subject: [PATCH 0033/3805] chore(cloudcmd) add " " --- lib/client/dom.js | 7 +++++-- lib/client/key.js | 2 +- lib/client/listeners.js | 2 +- lib/client/notify.js | 2 +- lib/client/storage/_filepicker.js | 2 +- lib/client/view.js | 8 ++++---- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 493fe0e3d3..47bd6e9cdd 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -1128,7 +1128,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; if (!Title) Title = DOM.getByTag('title')[0] || DOM.load({ - name :'title', + name : 'title', innerHTML : name, parentElement : document.head }); @@ -1755,7 +1755,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; files = current.parentElement, panel = files.parentElement, - panelPassive = Cmd.getPanel({active:false}), + panelPassive = Cmd.getPanel({ + active: false + }), + filesPassive = DOM.getFiles(panelPassive), name = Cmd.getCurrentName(current); diff --git a/lib/client/key.js b/lib/client/key.js index d5e553d81c..be9e2ab83c 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -70,7 +70,7 @@ var CloudCmd, Util, DOM; TRA : 192, /* Typewritten Reverse Apostrophe (`) */ BACKSLASH : 220, - BRACKET_CLOSE :221 + BRACKET_CLOSE: 221 }; KeyProto.prototype = KEY; diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 3a3748971d..302659d198 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -333,7 +333,7 @@ var Util, DOM, CloudFunc, CloudCmd; function online() { var cssSet = DOM.load.style.bind(null, { - id :'local-droids-font', + id : 'local-droids-font', element : document.head, inner : '@font-face {font-family: "Droid Sans Mono";' + 'font-style: normal;font-weight: normal;' + diff --git a/lib/client/notify.js b/lib/client/notify.js index 76e24e42ff..f2d7877c72 100644 --- a/lib/client/notify.js +++ b/lib/client/notify.js @@ -17,7 +17,7 @@ var Util, DOM; Notification = window.Notification; Events.add({ - 'blur' :function() { + 'blur': function() { Show = true; }, 'focus': function() { diff --git a/lib/client/storage/_filepicker.js b/lib/client/storage/_filepicker.js index dd246cbae7..a1b5025ff1 100644 --- a/lib/client/storage/_filepicker.js +++ b/lib/client/storage/_filepicker.js @@ -37,7 +37,7 @@ var CloudCmd, Util, DOM, filepicker; DOM.load.ajax({ url : fpFile.url, - responseType :'arraybuffer', + responseType : 'arraybuffer', success : function(data) { Util.exec(callback, fpFile.filename, data); } diff --git a/lib/client/view.js b/lib/client/view.js index 1f92e03f4f..b4bdfe5228 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -277,10 +277,10 @@ var CloudCmd, Util, DOM, CloudFunc, $; DOM.load.css(prefix + '/css/view.css', callback); DOM.load.style({ - id:'view-css', - inner : '#fancybox-loading {' + - 'display: none' + - '}' + id : 'view-css', + inner : '#fancybox-loading {' + + 'display: none' + + '}' }); }); } From ffda8aaddfe999493b8d078ea67b2c84bc519730 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 28 Mar 2015 08:48:16 -0400 Subject: [PATCH 0034/3805] feature(bin) -ps -> -p, -p -> --port --- HELP.md | 6 +++--- bin/cloudcmd.js | 18 +++++++++--------- json/bin.json | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/HELP.md b/HELP.md index dc0b46cf27..b7e7b4c120 100644 --- a/HELP.md +++ b/HELP.md @@ -63,10 +63,10 @@ Cloud Commander supports command line parameters: | `-s, --save` | save options | `-o, --online` | load scripts from remote servers | `-a, --auth` | enable authorization -| `-p, --port` | set port number | `-u, --username` | set username -| `-ps, --password` | set password -| `--no-auth` | disable authorization +| `-p, --password` | set password +| `--port` | set port number +| `--no-auth` | disable authorization | `--no-server` | do not start server | `--no-online` | load scripts from remote servers diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 5b45d14f70..82e8fff558 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -31,16 +31,16 @@ 'save'], default: { 'auth' : config('auth'), + 'port' : config('port'), 'online': config('online'), 'server': true }, alias: { v: 'version', h: 'help', - p: 'port', + p: 'password', on: 'online', u: 'username', - ps: 'password', s: 'save', a: 'auth' } @@ -94,13 +94,13 @@ config('username', name); } - function port(number) { - if (number) { - if (!isNaN(number)) - config('port', number); - else - console.error('port: ignored, should be a number'); - } + function port(arg) { + var number = parseInt(arg, 10); + + if (!isNaN(number)) + config('port', number); + else + console.error('port: ignored, should be a number'); } function help() { diff --git a/json/bin.json b/json/bin.json index d707ca986f..8be3215746 100644 --- a/json/bin.json +++ b/json/bin.json @@ -4,9 +4,9 @@ "-s, --save " : "save options", "-o, --online " : "load scripts from remote servers", "-a, --auth " : "enable authorization", - "-p, --port " : "set port number", "-u, --username " : "set username", - "-ps, --password" : "set password", + "-p, --password " : "set password", + "--port " : "set port number", "--no-auth " : "disable authorization", "--no-server" : "do not start server", "--no-online" : "load scripts from local server" From b5928c3be90b6ce833384bc3a3e7d33ee944ba28 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 28 Mar 2015 09:16:49 -0400 Subject: [PATCH 0035/3805] feature(modules) add --- .gitignore | 5 +- HELP.md | 1 - modules/fancybox/.bower.json | 14 + modules/fancybox/.gitattributes | 7 + modules/fancybox/CHANGELOG.md | 125 + modules/fancybox/README.md | 217 + modules/fancybox/source/blank.gif | Bin 0 -> 43 bytes modules/fancybox/source/fancybox_loading.gif | Bin 0 -> 6567 bytes .../fancybox/source/fancybox_loading@2x.gif | Bin 0 -> 13984 bytes modules/fancybox/source/fancybox_overlay.png | Bin 0 -> 1003 bytes modules/fancybox/source/fancybox_sprite.png | Bin 0 -> 1362 bytes .../fancybox/source/fancybox_sprite@2x.png | Bin 0 -> 6553 bytes .../source/helpers/fancybox_buttons.png | Bin 0 -> 1080 bytes .../helpers/jquery.fancybox-buttons.css | 97 + .../source/helpers/jquery.fancybox-buttons.js | 122 + .../source/helpers/jquery.fancybox-media.js | 199 + .../source/helpers/jquery.fancybox-thumbs.css | 55 + .../source/helpers/jquery.fancybox-thumbs.js | 162 + modules/fancybox/source/jquery.fancybox.css | 274 + modules/fancybox/source/jquery.fancybox.js | 2020 ++++ .../fancybox/source/jquery.fancybox.pack.js | 46 + modules/fancybox/sprite.psd | Bin 0 -> 250491 bytes modules/format-io/.bower.json | 36 + modules/format-io/ChangeLog | 6 + modules/format-io/LICENSE | 21 + modules/format-io/README.md | 49 + modules/format-io/bower.json | 27 + modules/format-io/lib/format.js | 163 + modules/format-io/package.json | 22 + modules/jquery/.bower.json | 37 + modules/jquery/MIT-LICENSE.txt | 21 + modules/jquery/bower.json | 27 + modules/jquery/dist/jquery.js | 9205 +++++++++++++++++ modules/jquery/dist/jquery.min.js | 5 + modules/jquery/dist/jquery.min.map | 1 + modules/menu/.bower.json | 32 + modules/menu/ChangeLog | 27 + modules/menu/LICENSE | 22 + modules/menu/README.md | 96 + modules/menu/bower.json | 23 + modules/menu/example/example.css | 4 + modules/menu/example/menu-data.js | 16 + modules/menu/example/menu-min.html | 15 + modules/menu/example/menu.html | 15 + modules/menu/menu-io.css | 74 + modules/menu/menu-io.js | 385 + modules/menu/menu-io.min.css | 1 + modules/menu/menu-io.min.js | 1 + modules/menu/package.json | 28 + modules/promise-polyfill/.bower.json | 37 + modules/promise-polyfill/Gruntfile.js | 23 + modules/promise-polyfill/LICENSE | 20 + modules/promise-polyfill/Promise.js | 186 + modules/promise-polyfill/Promise.min.js | 2 + modules/promise-polyfill/README.md | 55 + modules/promise-polyfill/bower.json | 28 + modules/promise-polyfill/package.json | 26 + package.json | 4 +- 58 files changed, 14081 insertions(+), 3 deletions(-) create mode 100644 modules/fancybox/.bower.json create mode 100644 modules/fancybox/.gitattributes create mode 100644 modules/fancybox/CHANGELOG.md create mode 100644 modules/fancybox/README.md create mode 100644 modules/fancybox/source/blank.gif create mode 100644 modules/fancybox/source/fancybox_loading.gif create mode 100644 modules/fancybox/source/fancybox_loading@2x.gif create mode 100644 modules/fancybox/source/fancybox_overlay.png create mode 100644 modules/fancybox/source/fancybox_sprite.png create mode 100644 modules/fancybox/source/fancybox_sprite@2x.png create mode 100644 modules/fancybox/source/helpers/fancybox_buttons.png create mode 100644 modules/fancybox/source/helpers/jquery.fancybox-buttons.css create mode 100644 modules/fancybox/source/helpers/jquery.fancybox-buttons.js create mode 100644 modules/fancybox/source/helpers/jquery.fancybox-media.js create mode 100644 modules/fancybox/source/helpers/jquery.fancybox-thumbs.css create mode 100644 modules/fancybox/source/helpers/jquery.fancybox-thumbs.js create mode 100644 modules/fancybox/source/jquery.fancybox.css create mode 100755 modules/fancybox/source/jquery.fancybox.js create mode 100755 modules/fancybox/source/jquery.fancybox.pack.js create mode 100644 modules/fancybox/sprite.psd create mode 100644 modules/format-io/.bower.json create mode 100644 modules/format-io/ChangeLog create mode 100644 modules/format-io/LICENSE create mode 100644 modules/format-io/README.md create mode 100644 modules/format-io/bower.json create mode 100644 modules/format-io/lib/format.js create mode 100644 modules/format-io/package.json create mode 100644 modules/jquery/.bower.json create mode 100644 modules/jquery/MIT-LICENSE.txt create mode 100644 modules/jquery/bower.json create mode 100644 modules/jquery/dist/jquery.js create mode 100644 modules/jquery/dist/jquery.min.js create mode 100644 modules/jquery/dist/jquery.min.map create mode 100644 modules/menu/.bower.json create mode 100644 modules/menu/ChangeLog create mode 100644 modules/menu/LICENSE create mode 100644 modules/menu/README.md create mode 100644 modules/menu/bower.json create mode 100644 modules/menu/example/example.css create mode 100644 modules/menu/example/menu-data.js create mode 100644 modules/menu/example/menu-min.html create mode 100644 modules/menu/example/menu.html create mode 100644 modules/menu/menu-io.css create mode 100644 modules/menu/menu-io.js create mode 100644 modules/menu/menu-io.min.css create mode 100755 modules/menu/menu-io.min.js create mode 100644 modules/menu/package.json create mode 100644 modules/promise-polyfill/.bower.json create mode 100644 modules/promise-polyfill/Gruntfile.js create mode 100644 modules/promise-polyfill/LICENSE create mode 100644 modules/promise-polyfill/Promise.js create mode 100644 modules/promise-polyfill/Promise.min.js create mode 100644 modules/promise-polyfill/README.md create mode 100644 modules/promise-polyfill/bower.json create mode 100644 modules/promise-polyfill/package.json diff --git a/.gitignore b/.gitignore index 6d78b23128..286bb7d457 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ -modules node_modules npm-debug.log + +modules/fancybox/lib/ +modules/jquery/src +modules/fancybox/demo diff --git a/HELP.md b/HELP.md index b7e7b4c120..05e79e5fb2 100644 --- a/HELP.md +++ b/HELP.md @@ -37,7 +37,6 @@ Install The installation of file manager is very simple. - install [node.js](http://nodejs.org/ "node.js") or [io.js](https://iojs.org/ "io.js") if you still have not. -- install [bower](http://bower.io "Bower") and [git](http://git-scm.com "Git") ([How to install Git on Windows](https://github.com/bower/bower#windows-users "How to install Git on Windows")) - install ```cloudcmd``` via ```npm``` with: ```sh diff --git a/modules/fancybox/.bower.json b/modules/fancybox/.bower.json new file mode 100644 index 0000000000..e01ef50d2c --- /dev/null +++ b/modules/fancybox/.bower.json @@ -0,0 +1,14 @@ +{ + "name": "fancybox", + "homepage": "https://github.com/fancyapps/fancyBox", + "version": "2.1.5", + "_release": "2.1.5", + "_resolution": { + "type": "version", + "tag": "v2.1.5", + "commit": "18d171278d21ca59067aace6d52a1adeb6462219" + }, + "_source": "git://github.com/fancyapps/fancyBox.git", + "_target": "~2.1.5", + "_originalSource": "fancybox" +} \ No newline at end of file diff --git a/modules/fancybox/.gitattributes b/modules/fancybox/.gitattributes new file mode 100644 index 0000000000..f6bb280a0b --- /dev/null +++ b/modules/fancybox/.gitattributes @@ -0,0 +1,7 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Denote all files that are truly binary and should not be modified. +*.png binary +*.jpg binary +*.gif binary \ No newline at end of file diff --git a/modules/fancybox/CHANGELOG.md b/modules/fancybox/CHANGELOG.md new file mode 100644 index 0000000000..b0d847e256 --- /dev/null +++ b/modules/fancybox/CHANGELOG.md @@ -0,0 +1,125 @@ +fancyBox - Changelog +========= + +### Version 2.1.5 - June 14, 2013 +* Fixed #493 - Broken slideshow +* Fixed #556 - Parent option +* Retina graphics (#564) and retina display support (#420) +* Improved "lock" feature + +### Version 2.1.4 - January 10, 2013 +* Update to be compatible with jQuery v1.9 +* Small changes that should fix usability issues for certain users + +### Version 2.1.3 - October 23, 2012 + +* Fixed #426 - Broken IE7 +* Fixed #423 - Background flickering on iOS +* Fixed #418 - Automatically Grow/Shrink and Center +* Updated the script to work with jQuery 1.6 +* Media helper supports YouTube video series + +### Version 2.1.2 - October 15, 2012 + +* Fixed #414 - Don't allow nextClick if there is only one item +* Fixed #397 - Button helper 'Menu' not visible in IE7 +* Overlay can be opened/closed manually: +* $.fancybox.helpers.overlay.open(); +* $.fancybox.helpers.overlay.open({closeClick : false}); +* $.fancybox.helpers.overlay.close(); +* Optimized for Internet Explorer 10 (Windows 8) + +### Version 2.1.1 - October 01, 2012 + +* Fixed #357 - Converting values like 'auto' in getScalar() +* Fixed #358 - Updated overlay background image +* New "fancybox-href" and "fancybox-title" HTML5 data-attributes (#317) +* Improved helpers: +* - now they can have a property 'defaults' that contains default settings +* - updated vimeo and youtube parsers for media helper +* Content locking now can be turned off + +### Version 2.1.0 - August 20, 2012 + +* Fixed #103 - DOM element re-injection after closing +* Fixed #188 - navigation keys inside editable content +* New animation directions (see https://github.com/fancyapps/fancyBox/issues/233#issuecomment-5512453) +* New option "iframe" - it is now possible to separate scrolling for iframe and wrapping element; choose to preload +* New option "swf" - brings back functionality from fancyBox v1 +* Improved media helper - better support for vimeo and youtube; links are now configurable +* Rewritten overlay helper: +* - new option "showEarly" - toggles if should be open before of after content is loaded +* - Facebook-style (https://github.com/fancyapps/fancyBox/issues/24) and therefore uses image for background +* Option "padding" accepts array (e.g., padding: [15, 50, 10, 5]) +* One of dimensions (width or height) can now be set to "auto" (option "autoSize" needs to be "false") +* Updated callbacks: +* - "beforeClose" is now called only once +* - "afterLoad" receives current and previous object as arguments +* Method "$.fancybox.update();" recalculates content width/height +* Updated to work with jQuery v1.8 + +### Version 2.0.6 - April 16, 2012 + +* Fixed #188 - keystrokes in contenteditable +* Fixed #171 - non-images should not be preloaded +* Fixed #158 - 'closeClick: true' breaks gallery navigation +* New "media" helper - detects and displays various media types +* New option "groupAttr" - name of group selector attribute, default is "data-fancybox-group" +* New feature - selector expressions in URLs, see #170 +* Improved 'overlay' helper to use "position: fixed" +* Improved autoSize, fixed wrong height in some cases +* Improved centering and iframe scrolling for iOS +* Updated markup, new element '.fancybox-skin' is now used for styling + +### Version 2.0.5 - February 21, 2012 + +* Fixed #155 - easing for prev/next animations +* Fixed #153 - overriding "keys" options +* Fixed #147 - IE7 problem with #hash links +* Fixed #130 - changing dynamically data-fancybox-group +* Fixed #126 - obey minWidth/minHeight +* Fixed #118 - placement of loading icon and navigation arrows +* Fixed #101 - "index" option not working +* Fixed #94 - "orig" option not working +* Fixed #80 - does not work on IE6 +* Fixed #72 - can't set overlay opacity to 0 +* Fixed #63 - properly set gallery index +* New option "autoCenter" - toggles centering on window resize or scroll, disabled for mobile devices by default +* New option "autoResize" - toggles responsivity, disabled for mobile devices by default +* New option "preload" - number of images to preload +* New feature to target mobile/desktop browsers using CSS, see #108 +* Changed ajax option defaults to "{ dataType: 'html', headers: { 'X-fancyBox': true } }", see #150 and #128 +* Updated loading icon for IE7, IE8 +* Calculates height of the iframe if 'autoSize' is set to 'true' and the iframe is on the same domain as the main page + +### Version 2.0.4 - December 12, 2011 + +* Fixed #47 - fix overriding properties +* New option "position" to thumbnail and button helpers + + +### Version 2.0.3 - November 29, 2011 + +* Fixed #29 - broken elastic transitions + + +### Version 2.0.2 - November 28, 2011 + +* Fixed slideshow +* Fixed scrollbars issue when displayed a very tall image +* New option "nextClick" - navigate to next gallery item when user clicks the content +* New option "modal" - to disable navigation and closing +* Add 'metadata' plugin support +* Add ability to create groups using 'data-fancybox-group' attribute +* Updated manual usage to match earlier releases + + +### Version 2.0.1 - November 23, 2011 + +* Fixed keyboard events inside form elements +* Fixed manual usage + + +### Version 2.0.0 - November 21, 2011 + +First release - completely rewritten, many new features and updated graphics. \ No newline at end of file diff --git a/modules/fancybox/README.md b/modules/fancybox/README.md new file mode 100644 index 0000000000..943489378b --- /dev/null +++ b/modules/fancybox/README.md @@ -0,0 +1,217 @@ +fancyBox +======== + +fancyBox is a tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages. + +More information and examples: http://www.fancyapps.com/fancybox/ + +License: http://www.fancyapps.com/fancybox/#license + +Copyright (c) 2012 Janis Skarnelis - janis@fancyapps.com + + +How to use +---------- + +To get started, download the plugin, unzip it and copy files to your website/application directory. +Load files in the section of your HTML document. Make sure you also add the jQuery library. + + + + + + + +Create your links with a `title` if you want a title to be shown, and add a class: + + + +If you have a set of related items that you would like to group, +additionally include a group name in the `rel` (or `data-fancybox-group`) attribute: + + + + +Initialise the script like this: + + + +May also be passed an optional options object which will extend the default values. Example: + + + +Tip: Automatically group and apply fancyBox to all images: + + $("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox(); + +Script uses the `href` attribute of the matched elements to obtain the location of the content and to figure out content type you want to display. +You can specify type directly by adding classname (fancybox.image, fancybox.iframe, etc) or `data-fancybox-type` attribute: + + //Ajax: + Example + //or + Example + + //Iframe: + Example + + //Inline (will display an element with `id="example"`) + Example + + //SWF: + Example + + //Image: + Example + +Note, ajax requests are subject to the [same origin policy](http://en.wikipedia.org/wiki/Same_origin_policy). +If fancyBox will not be able to get content type, it will try to guess based on 'href' and will quit silently if would not succeed. +(this is different from previsous versions where 'ajax' was used as default type or an error message was displayed). + +Advanced +-------- + +### Helpers + +Helpers provide a simple mechanism to extend the capabilities of fancyBox. There are two built-in helpers - 'overlay' and 'title'. +You can disable them, set custom options or enable other helpers. Examples: + + //Disable title helper + $(".fancybox").fancybox({ + helpers: { + title: null + } + }); + + //Disable overlay helper + $(".fancybox").fancybox({ + helpers: { + overlay : null + } + }); + + //Change title position and overlay color + $(".fancybox").fancybox({ + helpers: { + title : { + type : 'inside' + }, + overlay : { + css : { + 'background' : 'rgba(255,255,255,0.5)' + } + } + } + }); + + //Enable thumbnail helper and set custom options + $(".fancybox").fancybox({ + helpers: { + thumbs : { + width: 50, + height: 50 + } + } + }); + + +### API + +Also available are event driven callback methods. The `this` keyword refers to the current or upcoming object (depends on callback method). Here is how you can change title: + + $(".fancybox").fancybox({ + beforeLoad : function() { + this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + + /* + "this.element" refers to current element, so you can, for example, use the "alt" attribute of the image to store the title: + this.title = $(this.element).find('img').attr('alt'); + */ + } + }); + +It`s possible to open fancyBox programmatically in various ways: + + //HTML content: + $.fancybox( '

Lorem Lipsum

Lorem lipsum

', { + title : 'Custom Title' + }); + + //DOM element: + $.fancybox( $("#inline"), { + title : 'Custom Title' + }); + + //Custom object: + $.fancybox({ + href: 'example.jpg', + title : 'Custom Title' + }); + + //Array of objects: + $.fancybox([ + { + href: 'example1.jpg', + title : 'Custom Title 1' + }, + { + href: 'example2.jpg', + title : 'Custom Title 2' + } + ], { + padding: 0 + }); + +There are several methods that allow you to interact with and manipulate fancyBox, example: + + //Close fancybox: + $.fancybox.close(); + +There is a simply way to access wrapping elements using JS: + + $.fancybox.wrap + $.fancybox.skin + $.fancybox.outer + $.fancybox.inner + +You can override CSS to customize the look. For example, make navigation arrows always visible, +change width and move them outside of area (use this snippet after including fancybox.css): + + .fancybox-nav span { + visibility: visible; + } + + .fancybox-nav { + width: 80px; + } + + .fancybox-prev { + left: -80px; + } + + .fancybox-next { + right: -80px; + } + +In that case, you might want to increase space around box: + + $(".fancybox").fancybox({ + margin : [20, 60, 20, 60] + }); + + +Bug tracker +----------- + +Have a bug? Please create an issue on GitHub at https://github.com/fancyapps/fancyBox/issues \ No newline at end of file diff --git a/modules/fancybox/source/blank.gif b/modules/fancybox/source/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/modules/fancybox/source/fancybox_loading.gif b/modules/fancybox/source/fancybox_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..a03a40c097ee728709f65d4ea7397903a389d484 GIT binary patch literal 6567 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 literal 0 HcmV?d00001 diff --git a/modules/fancybox/source/fancybox_loading@2x.gif b/modules/fancybox/source/fancybox_loading@2x.gif new file mode 100644 index 0000000000000000000000000000000000000000..9205aeb09fffa6b571b4c6beee30b18400829c03 GIT binary patch literal 13984 zcmdtpX;f2(+Ar{(ot=4L0|COk2@%3*z%UvmBmq&;1`CRoVn8Z`pb=0JsqPHSQ$#>O zlpu(Ls8JA6P{W{NYc1kXYOM{3ii(OuTWdX>n;y^c^`4${?|t8U*In!0e1XN{3&Z}c z|NnWOELa%o9}vd{xWEAbfIvv4P>F@&!Tv!ui=7ak(7eBSVtj&O!iZcJ$@AuAre}7Z z=&Y=+yfJd)^~={(GPR_rBz#f$m9MV2ySk^Qq_(%U+gRDetcu|W@^i9tde8K}d;4zc z*;M_$`a5^;KzK-%rxJ&X2QLn?o!AL$6PjC^Cmu{N%o&l(BYD2O%*~mdU7huH^*3(a zc>T+3DxF$VRuaB6{L0lU?w;r>m0w%gd*#Kgw%=ks&6=k%WIeK+$C_{YoPuau=B zk)Mi!B_ZCPTr9@$b%);|5($_Gxc~7zfBcvLenz)X7Uph+@%iqcoEz9Md`R*#z-GR2 zt8dXVpW?ZVIZ+-Gx=Ycb(>>SzCy`;_Wwyar_cK7Wh&O zrlIseae92AkZ50;y?W<7KWti>V~)@`f6qLxhBEd3d4LHAEHdDkiYOs-Y)E{V> zW6~D2Vh>eoeqwMQvwM#Fl3qfgiFP)WjF1Bwg^0QQ6y5A-#_f4rQ>{ZN!bL)0FKcTj zmtREz>uarK!Iv6s=Pl9&3g{3SgfGt;U2si=UkR|9DQrcaG60u7isr@<0SI=eK&Fo^ zD5be?9#mQCKQjUyhnGl(MIkd-Q|7a?DLlO$K=fO7R5j{NxbUU>FJ2r>(*il^6xhiY z>VYN#BOC1&Nbi>(V6PW1W^Qu2@}*POh)!lqE&*prUJD90A6Ur~1Cn9C3_=KY-6?@2 z+kBkHC|pv+ec`({{OnGtI;_W%MbkT22*IID5#$9S zXvQ)C7@*nAY@T$WGDj4Gs1X2WF#xqhL=24KkO8B4T{q2%dO;l3^!ANQqQmk-HIRco zYYlba_0G!GuXnx?`&;QJn|JA-4k2QTD;$VyMqM~oZ3Y1Sv_
bMxRL(pijsY@019xTxeF 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 literal 0 HcmV?d00001 diff --git a/modules/fancybox/source/fancybox_overlay.png b/modules/fancybox/source/fancybox_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..a4391396a9d6b6d7ff3b781f16904732fea40bdd GIT binary patch literal 1003 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 S1P^~LSQ@H2DwWEJcmD(3qHSjY literal 0 HcmV?d00001 diff --git a/modules/fancybox/source/helpers/fancybox_buttons.png b/modules/fancybox/source/helpers/fancybox_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..07872072704114b91681e2e6f9697ce1521b64d2 GIT binary patch literal 1080 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S903?%u>HW~n_y#YQUu0R?WSg~RSP%1Go5lD7* zbwQLpe*757ICA6&kW5WYZD?o!GK`Ilf#ib+545$lfs7|lo|Kf7golSGBqXd|yY}6? zcgK$(2by;H@Zldne!PGGe#3?hK*r6RH}~(~f9%+?@87@w1cMhZUi|v?>-O#24<9~! z_3G8{-@iY6_yAP-?b|mX`_G?0|Ns97D*W>0%coDDfKr0iiH$(}%u0g%f*BZ@S=qVy z1VzPVE?Tl=<;G1rjvPIE`Ra{3j~;*c^fm05 z&}0S%rZ1i@jv*CsZ>PnU&vFoGYh)GcNLbUk(XcbqE{E69EG*srz@Pu~uR3~FiyV{r zKBIe^jd`)*o5yoLKHYF_zn{1F51Du38}jGBJ=VP0ecMa>bF+9K`W*ijXIeka_uU8A z*POd= z37@}bnmsYU%ylPY9@}5u*!t|)yNM@Xh;kTr{CTM%UpgJrq;^z1sCv#Ff{JcXH0QycQ=j-SpqK)3sqC&x%d{>uv#p4L4W% zmLHbjTwSCP^ID(pX0NGG_)`a^m0!6nD|Dt#Dvad0vf#zR8xqRnG{y^pfbH6Kc3;s;HW4p`heoW(jKH<7AtsEly z$M&AE{dQl2(Z%x9#dt|gSIbWy<4Xjtobc#5EmRoE7k>Wa#EFw7ELWat{GexP^oT7` zWJjo_z_Z6E{wwPO!J9zw9U;?iErx;1Arv+D^&N20C4AEY>{Ek`B=i66zn9m4$^{AUqIL)kd`}_|Y zirXZ4+!kL{DD1t`cieXN&YnLTl;^yVdNTEd730M4<~70>Dwl5dOP&;N_1dH)?&X@x qGoDO6XT>`g#8(4K<@tG^_7CJ-u|B8Hp&OWk7(8A5T-G@yGywqna}dM; literal 0 HcmV?d00001 diff --git a/modules/fancybox/source/helpers/jquery.fancybox-buttons.css b/modules/fancybox/source/helpers/jquery.fancybox-buttons.css new file mode 100644 index 0000000000..a26273af23 --- /dev/null +++ b/modules/fancybox/source/helpers/jquery.fancybox-buttons.css @@ -0,0 +1,97 @@ +#fancybox-buttons { + position: fixed; + left: 0; + width: 100%; + z-index: 8050; +} + +#fancybox-buttons.top { + top: 10px; +} + +#fancybox-buttons.bottom { + bottom: 10px; +} + +#fancybox-buttons ul { + display: block; + width: 166px; + height: 30px; + margin: 0 auto; + padding: 0; + list-style: none; + border: 1px solid #111; + border-radius: 3px; + -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + background: rgb(50,50,50); + background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); + background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); +} + +#fancybox-buttons ul li { + float: left; + margin: 0; + padding: 0; +} + +#fancybox-buttons a { + display: block; + width: 30px; + height: 30px; + text-indent: -9999px; + background-color: transparent; + background-image: url('fancybox_buttons.png'); + background-repeat: no-repeat; + outline: none; + opacity: 0.8; +} + +#fancybox-buttons a:hover { + opacity: 1; +} + +#fancybox-buttons a.btnPrev { + background-position: 5px 0; +} + +#fancybox-buttons a.btnNext { + background-position: -33px 0; + border-right: 1px solid #3e3e3e; +} + +#fancybox-buttons a.btnPlay { + background-position: 0 -30px; +} + +#fancybox-buttons a.btnPlayOn { + background-position: -30px -30px; +} + +#fancybox-buttons a.btnToggle { + background-position: 3px -60px; + border-left: 1px solid #111; + border-right: 1px solid #3e3e3e; + width: 35px +} + +#fancybox-buttons a.btnToggleOn { + background-position: -27px -60px; +} + +#fancybox-buttons a.btnClose { + border-left: 1px solid #111; + width: 35px; + background-position: -56px 0px; +} + +#fancybox-buttons a.btnDisabled { + opacity : 0.4; + cursor: default; +} \ No newline at end of file diff --git a/modules/fancybox/source/helpers/jquery.fancybox-buttons.js b/modules/fancybox/source/helpers/jquery.fancybox-buttons.js new file mode 100644 index 0000000000..fd8b955668 --- /dev/null +++ b/modules/fancybox/source/helpers/jquery.fancybox-buttons.js @@ -0,0 +1,122 @@ + /*! + * Buttons helper for fancyBox + * version: 1.0.5 (Mon, 15 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * buttons: { + * position : 'top' + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.buttons = { + defaults : { + skipSingle : false, // disables if gallery contains single image + position : 'top', // 'top' or 'bottom' + tpl : '

' + }, + + list : null, + buttons: null, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + + if (opts.skipSingle && obj.group.length < 2) { + obj.helpers.buttons = false; + obj.closeBtn = true; + + return; + } + + //Increase top margin to give space for buttons + obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; + }, + + onPlayStart: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); + } + }, + + onPlayEnd: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); + } + }, + + afterShow: function (opts, obj) { + var buttons = this.buttons; + + if (!buttons) { + this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); + + buttons = { + prev : this.list.find('.btnPrev').click( F.prev ), + next : this.list.find('.btnNext').click( F.next ), + play : this.list.find('.btnPlay').click( F.play ), + toggle : this.list.find('.btnToggle').click( F.toggle ), + close : this.list.find('.btnClose').click( F.close ) + } + } + + //Prev + if (obj.index > 0 || obj.loop) { + buttons.prev.removeClass('btnDisabled'); + } else { + buttons.prev.addClass('btnDisabled'); + } + + //Next / Play + if (obj.loop || obj.index < obj.group.length - 1) { + buttons.next.removeClass('btnDisabled'); + buttons.play.removeClass('btnDisabled'); + + } else { + buttons.next.addClass('btnDisabled'); + buttons.play.addClass('btnDisabled'); + } + + this.buttons = buttons; + + this.onUpdate(opts, obj); + }, + + onUpdate: function (opts, obj) { + var toggle; + + if (!this.buttons) { + return; + } + + toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); + + //Size toggle button + if (obj.canShrink) { + toggle.addClass('btnToggleOn'); + + } else if (!obj.canExpand) { + toggle.addClass('btnDisabled'); + } + }, + + beforeClose: function () { + if (this.list) { + this.list.remove(); + } + + this.list = null; + this.buttons = null; + } + }; + +}(jQuery)); diff --git a/modules/fancybox/source/helpers/jquery.fancybox-media.js b/modules/fancybox/source/helpers/jquery.fancybox-media.js new file mode 100644 index 0000000000..3584c8a781 --- /dev/null +++ b/modules/fancybox/source/helpers/jquery.fancybox-media.js @@ -0,0 +1,199 @@ +/*! + * Media helper for fancyBox + * version: 1.0.6 (Fri, 14 Jun 2013) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * media: true + * } + * }); + * + * Set custom URL parameters: + * $(".fancybox").fancybox({ + * helpers : { + * media: { + * youtube : { + * params : { + * autoplay : 0 + * } + * } + * } + * } + * }); + * + * Or: + * $(".fancybox").fancybox({, + * helpers : { + * media: true + * }, + * youtube : { + * autoplay: 0 + * } + * }); + * + * Supports: + * + * Youtube + * http://www.youtube.com/watch?v=opj24KnzrWo + * http://www.youtube.com/embed/opj24KnzrWo + * http://youtu.be/opj24KnzrWo + * http://www.youtube-nocookie.com/embed/opj24KnzrWo + * Vimeo + * http://vimeo.com/40648169 + * http://vimeo.com/channels/staffpicks/38843628 + * http://vimeo.com/groups/surrealism/videos/36516384 + * http://player.vimeo.com/video/45074303 + * Metacafe + * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ + * http://www.metacafe.com/watch/7635964/ + * Dailymotion + * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people + * Twitvid + * http://twitvid.com/QY7MD + * Twitpic + * http://twitpic.com/7p93st + * Instagram + * http://instagr.am/p/IejkuUGxQn/ + * http://instagram.com/p/IejkuUGxQn/ + * Google maps + * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 + * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 + * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 + */ +(function ($) { + "use strict"; + + //Shortcut for fancyBox object + var F = $.fancybox, + format = function( url, rez, params ) { + params = params || ''; + + if ( $.type( params ) === "object" ) { + params = $.param(params, true); + } + + $.each(rez, function(key, value) { + url = url.replace( '$' + key, value || '' ); + }); + + if (params.length) { + url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; + } + + return url; + }; + + //Add helper object + F.helpers.media = { + defaults : { + youtube : { + matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, + params : { + autoplay : 1, + autohide : 1, + fs : 1, + rel : 0, + hd : 1, + wmode : 'opaque', + enablejsapi : 1 + }, + type : 'iframe', + url : '//www.youtube.com/embed/$3' + }, + vimeo : { + matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, + params : { + autoplay : 1, + hd : 1, + show_title : 1, + show_byline : 1, + show_portrait : 0, + fullscreen : 1 + }, + type : 'iframe', + url : '//player.vimeo.com/video/$1' + }, + metacafe : { + matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, + params : { + autoPlay : 'yes' + }, + type : 'swf', + url : function( rez, params, obj ) { + obj.swf.flashVars = 'playerVars=' + $.param( params, true ); + + return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; + } + }, + dailymotion : { + matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, + params : { + additionalInfos : 0, + autoStart : 1 + }, + type : 'swf', + url : '//www.dailymotion.com/swf/video/$1' + }, + twitvid : { + matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, + params : { + autoplay : 0 + }, + type : 'iframe', + url : '//www.twitvid.com/embed.php?guid=$1' + }, + twitpic : { + matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, + type : 'image', + url : '//twitpic.com/show/full/$1/' + }, + instagram : { + matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, + type : 'image', + url : '//$1/p/$2/media/?size=l' + }, + google_maps : { + matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, + type : 'iframe', + url : function( rez ) { + return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); + } + } + }, + + beforeLoad : function(opts, obj) { + var url = obj.href || '', + type = false, + what, + item, + rez, + params; + + for (what in opts) { + if (opts.hasOwnProperty(what)) { + item = opts[ what ]; + rez = url.match( item.matcher ); + + if (rez) { + type = item.type; + params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); + + url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); + + break; + } + } + } + + if (type) { + obj.href = url; + obj.type = type; + + obj.autoHeight = false; + } + } + }; + +}(jQuery)); \ No newline at end of file diff --git a/modules/fancybox/source/helpers/jquery.fancybox-thumbs.css b/modules/fancybox/source/helpers/jquery.fancybox-thumbs.css new file mode 100644 index 0000000000..63d294368d --- /dev/null +++ b/modules/fancybox/source/helpers/jquery.fancybox-thumbs.css @@ -0,0 +1,55 @@ +#fancybox-thumbs { + position: fixed; + left: 0; + width: 100%; + overflow: hidden; + z-index: 8050; +} + +#fancybox-thumbs.bottom { + bottom: 2px; +} + +#fancybox-thumbs.top { + top: 2px; +} + +#fancybox-thumbs ul { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} + +#fancybox-thumbs ul li { + float: left; + padding: 1px; + opacity: 0.5; +} + +#fancybox-thumbs ul li.active { + opacity: 0.75; + padding: 0; + border: 1px solid #fff; +} + +#fancybox-thumbs ul li:hover { + opacity: 1; +} + +#fancybox-thumbs ul li a { + display: block; + position: relative; + overflow: hidden; + border: 1px solid #222; + background: #111; + outline: none; +} + +#fancybox-thumbs ul li img { + display: block; + position: relative; + border: 0; + padding: 0; + max-width: none; +} \ No newline at end of file diff --git a/modules/fancybox/source/helpers/jquery.fancybox-thumbs.js b/modules/fancybox/source/helpers/jquery.fancybox-thumbs.js new file mode 100644 index 0000000000..5db3d4ac2e --- /dev/null +++ b/modules/fancybox/source/helpers/jquery.fancybox-thumbs.js @@ -0,0 +1,162 @@ + /*! + * Thumbnail helper for fancyBox + * version: 1.0.7 (Mon, 01 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * thumbs: { + * width : 50, + * height : 50 + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.thumbs = { + defaults : { + width : 50, // thumbnail width + height : 50, // thumbnail height + position : 'bottom', // 'top' or 'bottom' + source : function ( item ) { // function to obtain the URL of the thumbnail image + var href; + + if (item.element) { + href = $(item.element).find('img').attr('src'); + } + + if (!href && item.type === 'image' && item.href) { + href = item.href; + } + + return href; + } + }, + + wrap : null, + list : null, + width : 0, + + init: function (opts, obj) { + var that = this, + list, + thumbWidth = opts.width, + thumbHeight = opts.height, + thumbSource = opts.source; + + //Build list structure + list = ''; + + for (var n = 0; n < obj.group.length; n++) { + list += '
  • '; + } + + this.wrap = $('
    ').addClass(opts.position).appendTo('body'); + this.list = $('
      ' + list + '
    ').appendTo(this.wrap); + + //Load each thumbnail + $.each(obj.group, function (i) { + var href = thumbSource( obj.group[ i ] ); + + if (!href) { + return; + } + + $("").load(function () { + var width = this.width, + height = this.height, + widthRatio, heightRatio, parent; + + if (!that.list || !width || !height) { + return; + } + + //Calculate thumbnail width/height and center it + widthRatio = width / thumbWidth; + heightRatio = height / thumbHeight; + + parent = that.list.children().eq(i).find('a'); + + if (widthRatio >= 1 && heightRatio >= 1) { + if (widthRatio > heightRatio) { + width = Math.floor(width / heightRatio); + height = thumbHeight; + + } else { + width = thumbWidth; + height = Math.floor(height / widthRatio); + } + } + + $(this).css({ + width : width, + height : height, + top : Math.floor(thumbHeight / 2 - height / 2), + left : Math.floor(thumbWidth / 2 - width / 2) + }); + + parent.width(thumbWidth).height(thumbHeight); + + $(this).hide().appendTo(parent).fadeIn(300); + + }).attr('src', href); + }); + + //Set initial width + this.width = this.list.children().eq(0).outerWidth(true); + + this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); + }, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + if (obj.group.length < 2) { + obj.helpers.thumbs = false; + + return; + } + + //Increase bottom margin to give space for thumbs + obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); + }, + + afterShow: function (opts, obj) { + //Check if exists and create or update list + if (this.list) { + this.onUpdate(opts, obj); + + } else { + this.init(opts, obj); + } + + //Set active element + this.list.children().removeClass('active').eq(obj.index).addClass('active'); + }, + + //Center list + onUpdate: function (opts, obj) { + if (this.list) { + this.list.stop(true).animate({ + 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) + }, 150); + } + }, + + beforeClose: function () { + if (this.wrap) { + this.wrap.remove(); + } + + this.wrap = null; + this.list = null; + this.width = 0; + } + } + +}(jQuery)); \ No newline at end of file diff --git a/modules/fancybox/source/jquery.fancybox.css b/modules/fancybox/source/jquery.fancybox.css new file mode 100644 index 0000000000..367890a4af --- /dev/null +++ b/modules/fancybox/source/jquery.fancybox.css @@ -0,0 +1,274 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden !important; + width: auto; +} + +.fancybox-lock body { + overflow: hidden !important; +} + +.fancybox-lock-test { + overflow-y: hidden !important; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} + +/*Retina graphics!*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5){ + + #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite@2x.png'); + background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ + } + + #fancybox-loading div { + background-image: url('fancybox_loading@2x.gif'); + background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ + } +} \ No newline at end of file diff --git a/modules/fancybox/source/jquery.fancybox.js b/modules/fancybox/source/jquery.fancybox.js new file mode 100755 index 0000000000..e8e1987c6c --- /dev/null +++ b/modules/fancybox/source/jquery.fancybox.js @@ -0,0 +1,2020 @@ +/*! + * fancyBox - jQuery Plugin + * version: 2.1.5 (Fri, 14 Jun 2013) + * @requires jQuery v1.6 or later + * + * Examples at http://fancyapps.com/fancybox/ + * License: www.fancyapps.com/fancybox/#license + * + * Copyright 2012 Janis Skarnelis - janis@fancyapps.com + * + */ + +(function (window, document, $, undefined) { + "use strict"; + + var H = $("html"), + W = $(window), + D = $(document), + F = $.fancybox = function () { + F.open.apply( this, arguments ); + }, + IE = navigator.userAgent.match(/msie/i), + didUpdate = null, + isTouch = document.createTouch !== undefined, + + isQuery = function(obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }, + isString = function(str) { + return str && $.type(str) === "string"; + }, + isPercentage = function(str) { + return isString(str) && str.indexOf('%') > 0; + }, + isScrollable = function(el) { + return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); + }, + getScalar = function(orig, dim) { + var value = parseInt(orig, 10) || 0; + + if (dim && isPercentage(orig)) { + value = F.getViewport()[ dim ] / 100 * value; + } + + return Math.ceil(value); + }, + getValue = function(value, dim) { + return getScalar(value, dim) + 'px'; + }; + + $.extend(F, { + // The current version of fancyBox + version: '2.1.5', + + defaults: { + padding : 15, + margin : 20, + + width : 800, + height : 600, + minWidth : 100, + minHeight : 100, + maxWidth : 9999, + maxHeight : 9999, + pixelRatio: 1, // Set to 2 for retina display support + + autoSize : true, + autoHeight : false, + autoWidth : false, + + autoResize : true, + autoCenter : !isTouch, + fitToView : true, + aspectRatio : false, + topRatio : 0.5, + leftRatio : 0.5, + + scrolling : 'auto', // 'auto', 'yes' or 'no' + wrapCSS : '', + + arrows : true, + closeBtn : true, + closeClick : false, + nextClick : false, + mouseWheel : true, + autoPlay : false, + playSpeed : 3000, + preload : 3, + modal : false, + loop : true, + + ajax : { + dataType : 'html', + headers : { 'X-fancyBox': true } + }, + iframe : { + scrolling : 'auto', + preload : true + }, + swf : { + wmode: 'transparent', + allowfullscreen : 'true', + allowscriptaccess : 'always' + }, + + keys : { + next : { + 13 : 'left', // enter + 34 : 'up', // page down + 39 : 'left', // right arrow + 40 : 'up' // down arrow + }, + prev : { + 8 : 'right', // backspace + 33 : 'down', // page up + 37 : 'right', // left arrow + 38 : 'down' // up arrow + }, + close : [27], // escape key + play : [32], // space - start/stop slideshow + toggle : [70] // letter "f" - toggle fullscreen + }, + + direction : { + next : 'left', + prev : 'right' + }, + + scrollOutside : true, + + // Override some properties + index : 0, + type : null, + href : null, + content : null, + title : null, + + // HTML templates + tpl: { + wrap : '
    ', + image : '', + iframe : '', + error : '

    The requested content cannot be loaded.
    Please try again later.

    ', + closeBtn : '', + next : '', + prev : '' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + D.unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + D.bind({ + 'onCancel.player beforeClose.player' : stop, + 'onUpdate.player' : set, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('
    ').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } + + D.trigger(event); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width / F.opts.pixelRatio; + F.coming.height = this.height / F.opts.pixelRatio; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('
    ').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
    ').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.outerHeight(true); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : F._afterZoomIn + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + el : $('html'), // element that contains "the lock" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('
    ').appendTo( F.coming ? F.coming.parent : opts.parent ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + + return false; + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + var scrollV, scrollH; + + W.unbind('resize.overlay'); + + if (this.el.hasClass('fancybox-lock')) { + $('.fancybox-margin').removeClass('fancybox-margin'); + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.removeClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + $('.fancybox-overlay').remove().hide(); + + $.extend(this, { + overlay : null, + fixed : false + }); + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if (IE) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + var overlay = this.overlay; + + $('.fancybox-overlay').stop(true, true); + + if (!overlay) { + this.create(opts); + } + + if (opts.locked && this.fixed && obj.fixed) { + if (!overlay) { + this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; + } + + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + var scrollV, scrollH; + + if (obj.locked) { + if (this.margin !== false) { + $('*').filter(function(){ + return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); + }).addClass('fancybox-margin'); + + this.el.addClass('fancybox-margin'); + } + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.addClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + //if (this.overlay && !F.isActive) { + if (this.overlay && !F.coming) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('
    ' + text + '
    '); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if (IE) { + title.width( title.width() ); + } + + title.wrapInner(''); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + var w1, w2; + + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('
    ').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('
    ').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + + //Get real width of page scroll-bar + w1 = $(window).width(); + + H.addClass('fancybox-lock-test'); + + w2 = $(window).width(); + + H.removeClass('fancybox-lock-test'); + + $("").appendTo("head"); + }); + +}(window, document, jQuery)); \ No newline at end of file diff --git a/modules/fancybox/source/jquery.fancybox.pack.js b/modules/fancybox/source/jquery.fancybox.pack.js new file mode 100755 index 0000000000..73f7578438 --- /dev/null +++ b/modules/fancybox/source/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, +c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& +k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= +a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), +b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), +y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; +if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, +{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, +mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= +!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); +"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= +this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); +f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, +e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, +outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", +g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": +"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? +h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| +h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
    ').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? +b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), +p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= +b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, +e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ +":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
    ').appendTo("body");var e=20=== +d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/modules/fancybox/sprite.psd b/modules/fancybox/sprite.psd new file mode 100644 index 0000000000000000000000000000000000000000..6f2032db60b78d7858a42f3ce7c8578dfd5639fc GIT binary patch literal 250491 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" + ], + "description": "Format size, permissions, etc", + "main": "lib/format.js", + "moduleType": [ + "globals", + "node" + ], + "keywords": [ + "format", + "size", + "permissions" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "_release": "0.9.6", + "_resolution": { + "type": "version", + "tag": "v0.9.6", + "commit": "3381e500de22cc60a25a4049589c377198f8cc57" + }, + "_source": "git://github.com/coderaiser/format-io.git", + "_target": "~0.9.6", + "_originalSource": "format-io" +} \ No newline at end of file diff --git a/modules/format-io/ChangeLog b/modules/format-io/ChangeLog new file mode 100644 index 0000000000..00c56124dd --- /dev/null +++ b/modules/format-io/ChangeLog @@ -0,0 +1,6 @@ +2015.02.18, v0.9.6 + +feature: +- (bower) add +- (format) scope -> global + diff --git a/modules/format-io/LICENSE b/modules/format-io/LICENSE new file mode 100644 index 0000000000..2c5ecaa006 --- /dev/null +++ b/modules/format-io/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 coderaiser + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/modules/format-io/README.md b/modules/format-io/README.md new file mode 100644 index 0000000000..40972930df --- /dev/null +++ b/modules/format-io/README.md @@ -0,0 +1,49 @@ +# Format + +Library for format size, permissions, etc. + +# How to use? + +Format could be used in browser or node. + +In browser: + +```js + +``` + +In node: + +```js +var Format = require('format-io'); +``` + +# API + +## size + +```js + var size = 1024 * 1024 * 5, + sizeStr = Format.size(size); + //'5.00mb' +``` + +## permissions.symbolic + +```js + var perm = '00777', + permStr = Format.permissions.symbolic(perm); + //'rwx rwx rwx +``` + +## permissions.numeric + +```js + var perm = 'rwx rwx rwx', + permNum = Format.permissions.numeric(perm); + //'00777' +``` + +# License + +MIT diff --git a/modules/format-io/bower.json b/modules/format-io/bower.json new file mode 100644 index 0000000000..967aa75a55 --- /dev/null +++ b/modules/format-io/bower.json @@ -0,0 +1,27 @@ +{ + "name": "format-io", + "version": "0.9.6", + "homepage": "https://github.com/coderaiser/format-io", + "authors": [ + "coderaiser " + ], + "description": "Format size, permissions, etc", + "main": "lib/format.js", + "moduleType": [ + "globals", + "node" + ], + "keywords": [ + "format", + "size", + "permissions" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/modules/format-io/lib/format.js b/modules/format-io/lib/format.js new file mode 100644 index 0000000000..d13ba7058c --- /dev/null +++ b/modules/format-io/lib/format.js @@ -0,0 +1,163 @@ +(function(global) { + 'use strict'; + + if (typeof module === 'object' && module.exports) + module.exports = new FormatProto(); + else + global.Format = new FormatProto(); + + function FormatProto() { + this.addSlashToEnd = function(path) { + var length, isSlash; + + if (path) { + length = path.length - 1; + isSlash = path[length] === '/'; + + if (!isSlash) + path += '/'; + } + + return path; + }; + + /** Функция получает короткие размеры + * конвертируя байт в килобайты, мегабойты, + * гигайбайты и терабайты + * @pSize - размер в байтах + */ + this.size = function(size) { + var isNumber = typeof size === 'number', + l1KB = 1024, + l1MB = l1KB * l1KB, + l1GB = l1MB * l1KB, + l1TB = l1GB * l1KB, + l1PB = l1TB * l1KB; + + if (isNumber) { + if (size < l1KB) size = size + 'b'; + else if (size < l1MB) size = (size / l1KB).toFixed(2) + 'kb'; + else if (size < l1GB) size = (size / l1MB).toFixed(2) + 'mb'; + else if (size < l1TB) size = (size / l1GB).toFixed(2) + 'gb'; + else if (size < l1PB) size = (size / l1TB).toFixed(2) + 'tb'; + else size = (size / l1PB).toFixed(2) + 'pb'; + } + + return size; + }; + + /** + * Функция переводит права из цыфрового вида в символьный + * @param perms - строка с правами доступа + * к файлу в 8-миричной системе + */ + this.permissions = { + symbolic: function(perms) { + var type, owner, group, all, + is = typeof perms !== undefined, + permsStr = '', + permissions = ''; + /* + S_IRUSR 0000400 protection: readable by owner + S_IWUSR 0000200 writable by owner + S_IXUSR 0000100 executable by owner + S_IRGRP 0000040 readable by group + S_IWGRP 0000020 writable by group + S_IXGRP 0000010 executable by group + S_IROTH 0000004 readable by all + S_IWOTH 0000002 writable by all + S_IXOTH 0000001 executable by all + */ + + if (is) { + permsStr = perms.toString(); + /* тип файла */ + type = permsStr.charAt(0); + + switch (type - 0) { + case 1: /* обычный файл */ + type = '-'; + break; + case 2: /* байт-ориентированное (символьное) устройство*/ + type = 'c'; + break; + case 4: /* каталог */ + type = 'd'; + break; + default: + type = '-'; + } + + /* оставляем последние 3 символа*/ + if (permsStr.length > 5) + permsStr = permsStr.substr(3); + else + permsStr = permsStr.substr(2); + + /* Рекомендации гугла советуют вместо string[3] + * использовать string.charAt(3) + */ + /* + http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml?showone=Standards_features#Standards_features + + Always preferred over non-standards featuresFor + maximum portability and compatibility, always + prefer standards features over non-standards + features (e.g., string.charAt(3) over string[3] + and element access with DOM functions instead + of using an application-specific shorthand). + */ + /* Переводим в двоичную систему */ + owner = (permsStr[0] - 0).toString(2), + group = (permsStr[1] - 0).toString(2), + all = (permsStr[2] - 0).toString(2), + + /* переводим в символьную систему*/ + permissions = + (owner[0] - 0 > 0 ? 'r' : '-') + + (owner[1] - 0 > 0 ? 'w' : '-') + + (owner[2] - 0 > 0 ? 'x' : '-') + + ' ' + + (group[0] - 0 > 0 ? 'r' : '-') + + (group[1] - 0 > 0 ? 'w' : '-') + + (group[2] - 0 > 0 ? 'x' : '-') + + ' ' + + (all[0] - 0 > 0 ? 'r' : '-') + + (all[1] - 0 > 0 ? 'w' : '-') + + (all[2] - 0 > 0 ? 'x' : '-'); + } + + return permissions; + }, + + /** + * Функция конвертирует права доступа к файлам из символьного вида + * в цыфровой + */ + numeric: function(perms) { + var owner, group, all, + length = perms && perms.length === 11; + + if (length) { + owner = (perms[0] === 'r' ? 4 : 0) + + (perms[1] === 'w' ? 2 : 0) + + (perms[2] === 'x' ? 1 : 0), + + group = (perms[4] === 'r' ? 4 : 0) + + (perms[5] === 'w' ? 2 : 0) + + (perms[6] === 'x' ? 1 : 0), + + all = (perms[8] === 'r' ? 4 : 0) + + (perms[9] === 'w' ? 2 : 0) + + (perms[10] === 'x' ? 1 : 0); + + /* добавляем 2 цифры до 5 */ + perms = '00' + owner + group + all; + } + + return perms; + } + }; + } + +})(this); diff --git a/modules/format-io/package.json b/modules/format-io/package.json new file mode 100644 index 0000000000..eba72224ef --- /dev/null +++ b/modules/format-io/package.json @@ -0,0 +1,22 @@ +{ + "name": "format-io", + "version": "0.9.6", + "author": "coderaiser (https://github.com/coderaiser)", + "description": "Format size, permissions, etc", + "homepage": "http://github.com/coderaiser/format-io", + "repository": { + "type": "git", + "url": "git://github.com/coderaiser/format-io.git" + }, + "keywords": [ + "format", + "size", + "permissions" + ], + "dependencies": {}, + "license": "MIT", + "engines": { + "node": ">=0.4.x" + }, + "main": "lib/format.js" +} diff --git a/modules/jquery/.bower.json b/modules/jquery/.bower.json new file mode 100644 index 0000000000..942e1ca0c6 --- /dev/null +++ b/modules/jquery/.bower.json @@ -0,0 +1,37 @@ +{ + "name": "jquery", + "version": "2.1.3", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "**/.*", + "build", + "speed", + "test", + "*.md", + "AUTHORS.txt", + "Gruntfile.js", + "package.json" + ], + "devDependencies": { + "sizzle": "2.1.1-jquery.2.1.2", + "requirejs": "2.1.10", + "qunit": "1.14.0", + "sinon": "1.8.1" + }, + "keywords": [ + "jquery", + "javascript", + "library" + ], + "homepage": "https://github.com/jquery/jquery", + "_release": "2.1.3", + "_resolution": { + "type": "version", + "tag": "2.1.3", + "commit": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0" + }, + "_source": "git://github.com/jquery/jquery.git", + "_target": "~2.1.3", + "_originalSource": "jquery" +} \ No newline at end of file diff --git a/modules/jquery/MIT-LICENSE.txt b/modules/jquery/MIT-LICENSE.txt new file mode 100644 index 0000000000..cdd31b5c71 --- /dev/null +++ b/modules/jquery/MIT-LICENSE.txt @@ -0,0 +1,21 @@ +Copyright 2014 jQuery Foundation and other contributors +http://jquery.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/modules/jquery/bower.json b/modules/jquery/bower.json new file mode 100644 index 0000000000..61c9487293 --- /dev/null +++ b/modules/jquery/bower.json @@ -0,0 +1,27 @@ +{ + "name": "jquery", + "version": "2.1.3", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "**/.*", + "build", + "speed", + "test", + "*.md", + "AUTHORS.txt", + "Gruntfile.js", + "package.json" + ], + "devDependencies": { + "sizzle": "2.1.1-jquery.2.1.2", + "requirejs": "2.1.10", + "qunit": "1.14.0", + "sinon": "1.8.1" + }, + "keywords": [ + "jquery", + "javascript", + "library" + ] +} diff --git a/modules/jquery/dist/jquery.js b/modules/jquery/dist/jquery.js new file mode 100644 index 0000000000..79d631ff46 --- /dev/null +++ b/modules/jquery/dist/jquery.js @@ -0,0 +1,9205 @@ +/*! + * jQuery JavaScript Library v2.1.3 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-18T15:11Z + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// + +var arr = []; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var support = {}; + + + +var + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + version = "2.1.3", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; + }, + + isPlainObject: function( obj ) { + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.constructor && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + // Support: Android<4.0, iOS<6 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + var script, + indirect = eval; + + code = jQuery.trim( code ); + + if ( code ) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if ( code.indexOf("use strict") === 1 ) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild( script ).parentNode.removeChild( script ); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect( code ); + } + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE9-11+ + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + nodeType = context.nodeType; + + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + if ( !seed && documentIsHTML ) { + + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType !== 1 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + parent = doc.defaultView; + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Support: Blackberry 4.6 + // gEBID returns nodes no longer in the document (#6963) + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // Add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // If we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // We once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + +function Data() { + // Support: Android<4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android<4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; +var data_priv = new Data(); + +var data_user = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Safari<=5.1 + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari<=5.1, Android<4.2 + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<=11+ + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); +var strundefined = typeof undefined; + + + +support.focusinBubbles = "onfocusin" in window; + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome<28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: Android<4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Support: Firefox, Chrome, Safari +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE9 + option: [ 1, "" ], + + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] + }; + +// Support: IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, type, key, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optimization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "'; - var frame = div.firstChild; - var self = this; - setTimeout(function() { - frame.frameBorder = '0'; - if (options) extend(frame, options); - obj.insertBefore(frame, obj.firstChild); - self.start(frame); - }, 0); - return frame; -} - -w.fastXDM.Client.prototype.callMethod = w.fastXDM.Server.prototype.callMethod = function() { - var args = Array.prototype.slice.call(arguments); - var method = args.shift(); - var i = args.length; - while (i--) { - if (typeof(args[i]) == 'function') { - this.funcsCount = (this.funcsCount || 0) + 1; - var func = args[i]; - var funcName = '_func' + this.funcsCount; - this.methods[funcName] = function() { - func.apply(this, arguments); - delete this.methods[funcName]; - } - args[i] = {_func: this.funcsCount}; - } - } - waitFor(this, 'caller', function() { - w.fastXDM.on(this.id, function() { - getEnv(function(env) { - env.send(this, env.json.stringify([method, args])); - }, this); - }, this); - }, this); -} - -if (w.JSON && typeof(w.JSON) == 'object' && w.JSON.parse && w.JSON.stringify && w.JSON.stringify({a:[1,2,3]}).replace(/ /g, '') == '{"a":[1,2,3]}') { - env.json = {parse: w.JSON.parse, stringify: w.JSON.stringify}; -} else { - w.fastXDM._needJSON = true; -} - -// PostMessage cover -if (w.postMessage) { - env.protocol = 'p'; - env.send = function(xdm, strData) { - // alert(key+':'+strData); - xdm.caller.postMessage(xdm.key+':'+strData, "*"); - } - if (w.addEventListener) { - w.addEventListener("message", w.fastXDM.onMessage, false); - } else { - w.attachEvent("onmessage", w.fastXDM.onMessage); - } - - if (w.fastXDM._needJSON) { - w.fastXDM._onlyJSON = true; - attachScript(); - } else { - envLoaded(); - } -} else { - attachScript(); -} -})(window); - - -if (!window.VK) window.VK = {}; - - -/* - * Based on JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - */ -if(!VK.MD5){VK.MD5=function(n){var j=function(o,r){var q=(o&65535)+(r&65535),p=(o>>16)+(r>>16)+(q>>16);return(p<<16)|(q&65535)},g=function(o,p){return(o<>>(32-p))},k=function(w,r,p,o,v,u){return j(g(j(j(r,w),j(o,u)),v),p)},a=function(q,p,w,v,o,u,r){return k((p&w)|((~p)&v),q,p,o,u,r)},h=function(q,p,w,v,o,u,r){return k((p&v)|(w&(~v)),q,p,o,u,r)},c=function(q,p,w,v,o,u,r){return k(p^w^v,q,p,o,u,r)},m=function(q,p,w,v,o,u,r){return k(w^(p|(~v)),q,p,o,u,r)},b=function(A,u){var z=1732584193,y=-271733879,w=-1732584194,v=271733878,r,q,p,o;A[u>>5]|=128<<((u)%32);A[(((u+64)>>>9)<<4)+14]=u;for(var t=0,s=A.length;t>>6)&31),128|(o&63))}else{if(o<=65535){q+=String.fromCharCode(224|((o>>>12)&15),128|((o>>>6)&63),128|(o&63))}else{if(o<=2097151){q+=String.fromCharCode(240|((o>>>18)&7),128|((o>>>12)&63),128|((o>>>6)&63),128|(o&63))}}}}}return q},e=function(p){var o=Array(p.length>>2),r,q;for(r=0,q=o.length;r>5]|=(p.charCodeAt(r/8)&255)<<(r%32)}return o},l=function(p){var o="";for(var r=0,q=p.length*32;r>5]>>>(r%32))&255)}return o},d=function(o){return l(b(e(o),o.length*8))},i=function(q){var t="0123456789abcdef",p="",o;for(var s=0,r=q.length;s>>4)&15)+t.charAt(o&15)}return p};return i(d(f(n)))}} - -/* - * VKontakte Open API JavaScript library - * http://vk.com/ - */ - -VK.extend = function(target, source, overwrite) { - for (var key in source) { - if (overwrite || typeof target[key] === 'undefined') { - target[key] = source[key]; - } - } - return target; -}; - -VK._protocol = ((location.protocol === 'https:') ? 'https:' : 'http:'); - -if (!VK.xdConnectionCallbacks) { - -VK.extend(VK, { - _apiId: null, - _session: null, - _userStatus: 'unknown', - _domain: { - main: 'https://oauth.vk.com/', - api: 'https://api.vk.com/' - }, - _path: { - login: 'authorize', - proxy: 'fxdm_oauth_proxy.html' - }, - _rootId: 'vk_api_transport', - _nameTransportPath: '', - xdReady: false, - access: { - FRIENDS: 0x2, - PHOTOS: 0x4, - AUDIO: 0x8, - VIDEO: 0x10, - MATCHES: 0x20, - QUESTIONS: 0x40, - WIKI: 0x80 - } -}); - -VK.init = function(options) { - var body, root; - - VK._apiId = null; - if (!options.apiId) { - throw 'VK.init() called without an apiId' - } - VK._apiId = options.apiId; - - if (options.onlyWidgets) return true; - - if (options.nameTransportPath && options.nameTransportPath !== '') { - VK._nameTransportPath = options.nameTransportPath; - } - - root = document.getElementById(VK._rootId); - if (!root) { - root = document.createElement('div'); - root.id = VK._rootId; - body = document.getElementsByTagName('body')[0]; - body.insertBefore(root, body.childNodes[0]); - } - root.style.position = 'absolute'; - root.style.top = '-10000px'; - - var session = VK.Cookie.load(); - if (session) { - VK.Auth._loadState = 'loaded'; - VK.Auth.setSession(session, session ? 'connected' : 'unknown'); - } -}; - -if (!VK.Cookie) { -VK.Cookie = { - _domain: null, - load: function() { - var - cookie = document.cookie.match('\\bvk_app_' + VK._apiId + '=([^;]*)\\b'), - session; - - if (cookie) { - session = this.decode(cookie[1]); - if (session.secret != 'oauth') { - return false; - } - session.expire = parseInt(session.expire, 10); - VK.Cookie._domain = '.' + window.location.hostname;//session.base_domain; - } - - return session; - }, - setRaw: function(val, ts, domain, time) { - var rawCookie; - rawCookie = 'vk_app_' + VK._apiId + '=' + val + ''; - var exp = time ? (new Date().getTime() + time * 1000) : ts * 1000; - rawCookie += (val && ts === 0 ? '' : '; expires=' + new Date(exp).toGMTString()); - rawCookie += '; path=/'; - rawCookie += (domain ? '; domain=.' + domain : ''); - document.cookie = rawCookie; - - this._domain = domain; - }, - set: function(session, resp) { - if (session) { - this.setRaw(this.encode(session), session.expire, window.location.hostname, (resp || {}).time); - } else { - this.clear(); - } - }, - clear: function() { - this.setRaw('', 0, this._domain, 0); - }, - encode: function(params) { - var - pairs = [], - key; - - for (key in params) { - if (key != 'user') pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - pairs.sort(); - - return pairs.join('&'); - }, - decode: function(str) { - var - params = {}, - parts = str.split('&'), - i, - pair; - - for (i=0; i < parts.length; i++) { - pair = parts[i].split('=', 2); - if (pair && pair[0]) { - params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); - } - } - - return params; - } -}; -} - -if (!VK.Api) { -VK.Api = { - _headId: null, - _callbacks: {}, - ie6_7: function() { - if (!VK.Api.ieTested) { - VK.Api.isIE6_7 = navigator.userAgent.match(/MSIE [6|7]/i); - VK.Api.ieTested = true; - } - return VK.Api.isIE6_7; - }, - attachScript: function(url) { - if (!VK.Api._headId) VK.Api._headId = document.getElementsByTagName("head")[0]; - var newScript = document.createElement('script'); - newScript.type = 'text/javascript'; - newScript.setAttribute('encoding', 'UTF-8'); - newScript.src = url; - VK.Api._headId.appendChild(newScript); - }, - checkMethod: function(method, params, cb, queryTry) { - var m = method.toLowerCase(); - if (m == 'wall.post' || m == 'activity.set') { - var text = (m == 'activity.set') ? params.text : params.message; - var query = VK._protocol + '//vk.com/al_apps.php?act=wall_post_box&widget=1&method='+m+'&aid=' + parseInt(VK._apiId, 10) + '&text=' + encodeURIComponent(text); - if (m == 'wall.post') { - query += '&owner_id=' + parseInt(params.owner_id || 0, 10) + '&attachments=' + (params.attachments || params.attachment || ''); - } - var method_access = '_'+(Math.random()).toString(16).substr(2); - query += '&method_access='+method_access; - var popup = VK.UI.popup({ - url: query, - width: 460, - height: 220 - }); - var timer = setInterval(function() { - if (VK.UI.active.closed) { - clearInterval(timer); - params.method_access = method_access; - VK.Api.call(method, params, cb, queryTry); - } - }, 500); - return false; - } - return true; - }, - call: function(method, params, cb, queryTry) { - var - query = params || {}, - qs, - responseCb; - - if (typeof query != 'object' || typeof cb != 'function') { - return false; - } - if (!params.method_access && !params.method_force && !VK.Api.checkMethod(method, params, cb, queryTry)) { - return; - } - - if (!queryTry) queryTry = 0; - - if (VK.Auth._loadState != 'loaded') { - var authFunc = function(result) { - if (result && result.session) { - VK.Observer.unsubscribe('auth.loginStatus', authFunc); - VK.Api.call(method, params, cb); - } - }; - VK.Observer.subscribe('auth.loginStatus', authFunc); - VK.Auth.getLoginStatus(); - return; - } - - if (VK.Api.queryLength(query) < 1500 && !VK.Api.ie6_7()) { - var useXDM = false; - var rnd = parseInt(Math.random() * 10000000, 10); - while (VK.Api._callbacks[rnd]) { - rnd = parseInt(Math.random() * 10000000, 10) - } - query.callback = 'VK.Api._callbacks['+rnd+']'; - } else { - var useXDM = true; - } - - if (VK._session && VK._session.sid) { - query.access_token = VK._session.sid; - } - - qs = VK.Cookie.encode(query); - - responseCb = function(response) { - if (response.error && (response.error.error_code == 3 || response.error.error_code == 4 || response.error.error_code == 5)) { - if (queryTry > 3) return false; - var repeatCall = function(resp) { - VK.Observer.unsubscribe('auth.sessionChange', repeatCall); - delete params.access_token; - if (resp.session) VK.Api.call(method, params, cb, queryTry + 1); - } - VK.Observer.subscribe('auth.sessionChange', repeatCall); - VK.Auth.getLoginStatus(); - } else { - cb(response); - } - if (!useXDM) delete VK.Api._callbacks[rnd]; - }; - - if (useXDM) { - if (VK.xdReady) { - VK.XDM.remote.callMethod('apiCall', method, qs, responseCb); - } else { - VK.Observer.subscribe('xdm.init', function() {VK.XDM.remote.callMethod('apiCall', method, qs, responseCb);}); - VK.XDM.init(); - } - } else { - VK.Api._callbacks[rnd] = responseCb; - VK.Api.attachScript(VK._domain.api + 'method/' + method +'?' + qs); - } - }, - queryLength: function(query) { - var len = 100, i; // sid + sig - for (i in query) { - len += i.length + encodeURIComponent(query.i).length + 1; - } - return len; - } -}; - -// Alias -VK.api = function(method, params, cb) {VK.Api.call(method, params, cb);} -}; - -if (!VK.Auth) { -VK.Auth = { - popup: null, - lsCb: {}, - setSession: function(session, status, settings, resp) { - var - login = !VK._session && session, - logout = VK._session && !session, - both = VK._session && session && VK._session.mid != session.mid, - sessionChange = login || logout || (VK._session && session && VK._session.sid != session.sid), - statusChange = status != VK._userStatus, - response = { - 'session': session, - 'status': status, - 'settings': settings - }; - - VK._session = session; - - VK._userStatus = status; - - VK.Cookie.set(session, resp); - - if (sessionChange || statusChange || both) { - setTimeout(function() { - if (statusChange) { - VK.Observer.publish('auth.statusChange', response); - } - - if (logout || both) { - VK.Observer.publish('auth.logout', response); - } - - if (login || both) { - if (VK.xdReady) VK.XDM.remote.init(VK._apiId, session, status); - VK.Observer.publish('auth.login', response); - } - - if (sessionChange) { - VK.Observer.publish('auth.sessionChange', response); - } - }, 0); - } - - return response; - }, - // Public VK.Auth methods - login: function(cb, settings) { - var channel, url; - if (!VK._apiId) { - return false; - } - channel = window.location.protocol + '//' + window.location.hostname; - url = VK._domain.main + VK._path.login + '?client_id='+VK._apiId+'&display=popup&redirect_uri=close.html&response_type=token'; - if (settings && parseInt(settings, 10) > 0) { - url += '&scope=' + settings; - } - VK.Observer.unsubscribe('auth.onLogin'); - VK.Observer.subscribe('auth.onLogin', cb); - VK.UI.popup({ - width: 620, - height: 370, - url: url - }); - var authCallback = function() { - VK.Auth.getLoginStatus(function(resp) { - VK.Observer.publish('auth.onLogin', resp); - VK.Observer.unsubscribe('auth.onLogin'); - }, true); - } - - VK.UI.popupOpened = true; - var popupCheck = function() { - if (!VK.UI.popupOpened) return false; - try { - if (!VK.UI.active.top) { - VK.UI.popupOpened = false; - authCallback(); - return true; - } - } catch(e) { - VK.UI.popupOpened = false; - authCallback(); - return true; - } - setTimeout(popupCheck, 100); - }; - - setTimeout(popupCheck, 100); - }, - // Logout user from app, vk.com & login.vk.com - logout: function(cb) { - VK.Auth.revokeGrants(cb); - }, - revokeGrants: function(cb) { - var onLogout = function(resp) { - VK.Observer.unsubscribe('auth.statusChange', onLogout); - if (cb) cb(resp); - } - VK.Observer.subscribe('auth.statusChange', onLogout); - if (VK._session && VK._session.sid) VK.Api.attachScript('https://login.vk.com/?act=openapi&oauth=1&aid=' + parseInt(VK._apiId, 10) + '&location=' + encodeURIComponent(window.location.hostname)+'&do_logout=1&token='+VK._session.sid); - VK.Cookie.clear(); - }, - // Get current login status from session (sync) (not use on load time) - getSession: function() { - return VK._session; - }, - // Get current login status from vk.com (async) - getLoginStatus: function(cb, force) { - if (!VK._apiId) { - return; - } - - if (cb) { - if (!force && VK.Auth._loadState == 'loaded') { - cb({status: VK._userStatus, session: VK._session}); - return; - } else { - VK.Observer.subscribe('auth.loginStatus', cb); - } - } - - if (!force && VK.Auth._loadState == 'loading') { - return; - } - - VK.Auth._loadState = 'loading'; - var rnd = parseInt(Math.random() * 10000000, 10); - while (VK.Auth.lsCb[rnd]) { - rnd = parseInt(Math.random() * 10000000, 10) - } - VK.Auth.lsCb[rnd] = function(response) { - delete VK.Auth.lsCb[rnd]; - VK.Auth._loadState = 'loaded'; - if (response && response.auth) { - var session = { - mid: response.user.id, - sid: response.access_token, - sig: response.sig, - secret: response.secret, - expire: response.expire - }; - if (force) session.user = response.user; - var status = 'connected'; - } else { - var session = null; - var status = response.user ? 'logined' : 'unknown'; - VK.Cookie.clear(); - } - VK.Auth.setSession(session, status, false, response); - VK.Observer.publish('auth.loginStatus', {session: session, status: status}); - VK.Observer.unsubscribe('auth.loginStatus'); - }; - // AttachScript here - VK.Api.attachScript('https://login.vk.com/?act=openapi&oauth=1&aid=' + parseInt(VK._apiId, 10) + '&location=' + encodeURIComponent(window.location.hostname)+'&rnd='+rnd); - } -}; -} - -} else { // if VK.xdConnectionCallbacks - setTimeout(function() { - var callback; - while (callback = VK.xdConnectionCallbacks.pop()) { - callback(); - } - }, 0); - if (VK.Widgets && !VK.Widgets._constructor) { - VK.Widgets = false; - } -} - -if (!VK.UI) { -VK.UI = { - active: null, - _buttons: [], - popup: function(options) { - var - screenX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft, - screenY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop, - outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth, - outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22), - width = options.width, - height = options.height, - left = parseInt(screenX + ((outerWidth - width) / 2), 10), - top = parseInt(screenY + ((outerHeight - height) / 2.5), 10), - features = ( - 'width=' + width + - ',height=' + height + - ',left=' + left + - ',top=' + top - ); - this.active = window.open(options.url, 'vk_openapi', features); - }, - button: function(el, handler) { - var html = ''; - - if (typeof el == 'string') { - el = document.getElementById(el); - } - - - this._buttons.push(el); - index = this._buttons.length - 1; - - html = ( - '' + - '' + - '' + - '' + - '
    Войти
    Контакте
    ' - ); - el.innerHTML = html; - el.style.width = el.childNodes[0].offsetWidth + 'px'; - }, - _change: function(state, index) { - var row = document.getElementById('openapi_UI_' + index).rows[0]; - var elems = [row.cells[0].firstChild.firstChild, row.cells[2].firstChild.firstChild]; - for (var i = 0; i < 2; ++i) { - var elem = elems[i]; - if (state === 0) { - elem.style.backgroundColor = '#6D8DB1'; - elem.style.borderTopColor = '#7E9CBC'; - elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#5C82AB'; - } else if (state == 1) { - elem.style.backgroundColor = '#7693B6'; - elem.style.borderTopColor = '#88A4C4'; - elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#6088B4'; - } else if (state == 2) { - elem.style.backgroundColor = '#6688AD'; - elem.style.borderBottomColor = '#7495B8'; - elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderTopColor = '#51779F'; - } - } - if (state === 0 || state == 2) { - row.cells[2].firstChild.style.backgroundPosition = '0px -42px'; - } else if (state == 1) { - row.cells[2].firstChild.style.backgroundPosition = '0px -63px'; - } - } -}; -} - -if (!VK.XDM) { -VK.XDM = { - remote: null, - init: function() { - if (this.remote) return false; - var url = VK._domain.api + VK._path.proxy; - this.remote = new fastXDM.Server({ - onInit: function() { - VK.XDM.remote.callMethod('init', VK._apiId, VK._session, VK._userStatus); - VK.xdReady = true; - VK.Observer.publish('xdm.init'); - }, - setSession: { - isVoid: true, - method: function(session, status) { - VK.Auth.setSession(session, status); - } - }, - alert: { - isVoid: true, - method: function(text) { - alert(text); - } - } - }); - - this.remote.append(document.getElementById(VK._rootId), { - src: url - }); - }, - xdHandler: function(code) { - try { - eval('VK.' + code); - } catch(e) {} - } -}; -} - -if (!VK.Observer) { -VK.Observer = { - _subscribers: function() { - if (!this._subscribersMap) { - this._subscribersMap = {}; - } - return this._subscribersMap; - }, - publish: function(eventName) { - var - args = Array.prototype.slice.call(arguments), - eventName = args.shift(), - subscribers = this._subscribers()[eventName], - i, j; - - if (!subscribers) return; - - for (i = 0, j = subscribers.length; i < j; i++) { - if (subscribers[i] != null) { - subscribers[i].apply(this, args); - } - } - }, - subscribe: function(eventName, handler) { - var - subscribers = this._subscribers(); - - if (typeof handler != 'function') return false; - - if (!subscribers[eventName]) { - subscribers[eventName] = [handler]; - } else { - subscribers[eventName].push(handler); - } - }, - unsubscribe: function(eventName, handler) { - var - subscribers = this._subscribers()[eventName], - i, j; - - if (!subscribers) return false; - if (typeof handler == 'function') { - for (i = 0, j = subscribers.length; i < j; i++) { - if (subscribers[i] == handler) { - subscribers[i] = null; - } - } - } else { - delete this._subscribers()[eventName]; - } - } -}; -} - -if (!VK.Widgets) { - VK.Widgets = {}; - - VK.Widgets.count = 0; - VK.Widgets.RPC = {}; - - VK.Widgets.loading = function(obj, enabled) { - obj.style.background = enabled ? 'url("' + VK._protocol + '//vk.com/images/upload.gif") center center no-repeat transparent' : 'none'; - }; - - VK.Widgets.Comments = function(objId, options, page) { - var pData = VK.Util.getPageData(); - if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); - options = options || {}; - var params = { - limit: options.limit || 10, - height: options.height || 0, - mini: options.mini === undefined ? 'auto' : options.mini, - norealtime: options.norealtime ? 1 : 0 - }, mouseup = function () { - rpc.callMethod('mouseUp'); - return false; - }, move = function (event) { - rpc.callMethod('mouseMove', {screenY: event.screenY}); - }, iframe, rpc; - - if (options.browse) { // browse all comments - params.browse = 1; - params.replies = options.replies || 0; - } else { // page - VK.extend(params, { - page: page || 0, - status_publish: options.autoPublish === undefined ? 1 : options.autoPublish, - attach: options.attach === undefined ? '*' : (options.attach ? options.attach : ''), - url: options.pageUrl || pData.url, - title: options.pageTitle || pData.title, - description: options.pageDescription || pData.description, - image: options.pageImage || pData.image - }); - } - if (options.onChange) { // DEPRECATED - VK.Observer.subscribe('widgets.comments.new_comment', options.onChange); - VK.Observer.subscribe('widgets.comments.delete_comment', options.onChange); - } - - return VK.Widgets._constructor('widget_comments.php', objId, options, params, { - showBox: function (url, props) { - var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [props.width, props.height], { - proxy: function () { - rpc.callMethod.apply(rpc, arguments); - } - }); - box.show(); - }, - startDrag: function() { - cursorBack = window.document.body.style.cursor; - window.document.body.style.cursor = 'pointer'; - VK.Util.addEvent('mousemove', move); - VK.Util.addEvent('mouseup', mouseup); - }, - stopDrag: function() { - window.document.body.style.cursor = cursorBack; - VK.Util.removeEvent('mousemove', move); - VK.Util.removeEvent('mouseup', mouseup); - } - }, { - startHeight: 133, - minWidth: 300, - width: '100%' - }, function (o, i, r) {iframe = i; rpc = r;}); - }; - - VK.Widgets.CommentsBrowse = function(objId, options) { - options = options || {}; - options.browse = 1; - return VK.Widgets.Comments(objId, options); - }; - - VK.Widgets.Recommended = function(objId, options) { - var pData = VK.Util.getPageData(); - if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); - options = options || {}; - var params = { - limit: options.limit || 5, - max: options.max || 0, - sort: options.sort || 'friend_likes', - verb: options.verb || 0, - period: options.period || 'week', - target: options.target || 'parent' - }; - return VK.Widgets._constructor('widget_recommended.php', objId, options, params, {}, { - startHeight: (90 + params.limit * 30), - minWidth: 150, - width: '100%' - }); - }; - - VK.Widgets.Like = function(objId, options, page) { - var pData = VK.Util.getPageData(); - if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); - options = VK.extend(options || {}, {allowTransparency: true}); - if (options.type == 'button' || options.type == 'vertical' || options.type == 'mini') delete options.width; - var - type = (options.type == 'full' || options.type == 'button' || options.type == 'vertical' || options.type == 'mini') ? options.type : 'full', - width = type == 'full' ? Math.max(200, options.width || 350) : (type == 'button' ? 180 : (type == 'mini' ? 100 : 41)), - btnHeight = parseInt(options.height, 10) || 22, - height = type == 'vertical' ? (2 * btnHeight + 7) : (type == 'full' ? btnHeight + 1 : btnHeight), - params = { - page: page || 0, - url: options.pageUrl || pData.url, - type: type, - verb: options.verb == 1 ? 1 : 0, - title: options.pageTitle || pData.title, - description: options.pageDescription || pData.description, - image: options.pageImage || pData.image, - text: (options.text || '').substr(0, 140), - h: btnHeight - }, - ttHere = options.ttHere || false, - isOver = false, - obj, buttonIfr, buttonRpc, tooltipIfr, tooltipRpc, checkTO, statsBox; - - function showTooltip(force) { - if ((!isOver && !force) || !tooltipRpc) return; - if (!tooltipIfr || !tooltipRpc || tooltipIfr.style.display != 'none' && tooltipIfr.getAttribute('vkhidden') != 'yes') return; - var scrollTop = options.getScrollTop ? options.getScrollTop() : (document.body.scrollTop || document.documentElement.scrollTop || 0); - var objPos = VK.Util.getXY(obj, options.fixed); - var startY = ttHere ? 0 : objPos[1]; - if (scrollTop > objPos[1] - 120 && options.tooltipPos != 'top' || type == 'vertical' || options.tooltipPos == 'bottom') { - tooltipIfr.style.top = (startY + height + 2) + 'px'; - tooltipRpc.callMethod('show', false); - } else { - tooltipIfr.style.top = (startY - 125) + 'px'; - tooltipRpc.callMethod('show', true); - } - VK.Util.ss(tooltipIfr, {left: ((ttHere ? 0 : objPos[0]) - (type == 'vertical' || type == 'mini' ? 36 : 2)) + 'px', display: 'block', opacity: 1, filter: 'none'}); - tooltipIfr.setAttribute('vkhidden', 'no'); - isOver = true; - } - - function hideTooltip(force) { - if ((isOver && !force) || !tooltipRpc) return; - tooltipRpc.callMethod('hide'); - buttonRpc.callMethod('hide'); - setTimeout(function () { - tooltipIfr.style.display = 'none' - }, 400); - } - - return VK.Widgets._constructor('widget_like.php', objId, options, params, { - initTooltip: function (counter) { - tooltipRpc = new fastXDM.Server({ - onInit: counter ? function() {showTooltip(true)} : function () {}, - proxy: function () { - buttonRpc.callMethod.apply(buttonRpc, arguments); - }, - showBox: function (url, props) { - var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [props.width, props.height], { - proxy: function () { - tooltipRpc.callMethod.apply(tooltipRpc, arguments); - } - }); - box.show(); - }, - statsBox: function (act) { - hideTooltip(true); - statsBox = VK.Util.Box(buttonIfr.src + '&act=a_stats_box', [498, 442]); - statsBox.show(); - } - }); - tooltipIfr = tooltipRpc.append(ttHere ? obj : document.body, { - src: buttonIfr.src + '&act=a_share_tooltip', - scrolling: 'no', - allowTransparency: true, - id: buttonIfr.id + '_tt', - style: {position: 'absolute', padding: 0, display: 'block', opacity: 0.01, filter: 'alpha(opacity=1)', border: '0', width: '206px', height: '127px', zIndex: 5000, overflow: 'hidden'} - }); - tooltipIfr.setAttribute('vkhidden', 'yes'); - - obj.onmouseover = tooltipIfr.onmouseover = function () {isOver = true;}; - obj.onmouseout = tooltipIfr.onmouseout = function () { - clearTimeout(checkTO); - isOver = false; - checkTO = setTimeout(function () {hideTooltip(); }, 200); - }; - }, - showTooltip: showTooltip, - hideTooltip: hideTooltip, - showBox: function (url, props) { - var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [props.width, props.height], { - proxy: function () { - buttonRpc.callMethod.apply(buttonRpc, arguments); - } - }); - box.show(); - }, - proxy: function () {if (tooltipRpc) tooltipRpc.callMethod.apply(tooltipRpc, arguments);} - }, { - startHeight: height, - minWidth: width - }, function (o, i, r) { - buttonRpc = r; - VK.Util.ss(obj = o, {height: height + 'px', width: width + 'px', position: 'relative', clear: 'both'}); - VK.Util.ss(buttonIfr = i, {height: height + 'px', width: width + 'px', overflow: 'hidden', zIndex: 150}); - }); - }; - - VK.Widgets.Poll = function(objId, options, pollId) { - var pData = VK.Util.getPageData(); - // if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); - if (!pollId) throw Error('No poll id passed'); - options = options || {}; - var params = { - poll_id: pollId, - url: options.pageUrl || pData.url || location.href, - title: options.pageTitle || pData.title, - description: options.pageDescription || pData.description - }; - return VK.Widgets._constructor('widget_poll.php', objId, options, params, {}, { - startHeight: 133, - minWidth: 300, - width: '100%' - }); - }; - - VK.Widgets.PagePoll = function(objId, options, page) { - var pData = VK.Util.getPageData(); - // if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); - options = options || {}; - var params = { - page: page || 0, - norealtime: options.norealtime ? 1 : 0, - poll_id: options.pollId || '', - url: options.pageUrl || pData.url || location.href, - title: options.pageTitle || pData.title, - description: options.pageDescription || pData.description - }; - return VK.Widgets._constructor('al_widget_poll.php', objId, options, params, {}, { - startHeight: 133, - minWidth: 300, - width: '100%' - }); - }; - - VK.Widgets.Community = VK.Widgets.Group = function(objId, options, gid) { - gid = parseInt(gid, 10); - var RPC; - if (!gid) { - throw Error('No group_id passed'); - } - options.mode = parseInt(options.mode, 10).toString(); - var params = { - gid: gid, - mode: (options.mode) ? options.mode : '0' - }; - if (!options.width) { - options.width = 200; - } - if (options.wall) { - params.wall = options.wall; - } - if (!options.height) { - options.height = 290; - } - if (options.wide) { - params.wide = 1; - if (options.width < 300) { - options.width = 300; - } - } - - var cursorBack; - - function mouseup() { - RPC.callMethod('mouseUp'); - return false; - } - - function move(event) { - RPC.callMethod('mouseMove', {screenY: event.screenY}); - return false; - } - - return VK.Widgets._constructor('widget_community.php', objId, options, params, { - showBox: function (url, props) { - var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [props.width, props.height], { - proxy: function () { - rpc.callMethod.apply(rpc, arguments); - } - }); - box.show(); - }, - startDrag: function() { - cursorBack = window.document.body.style.cursor; - window.document.body.style.cursor = 'pointer'; - VK.Util.addEvent('mousemove', move); - VK.Util.addEvent('mouseup', mouseup); - }, - stopDrag: function() { - window.document.body.style.cursor = cursorBack; - VK.Util.removeEvent('mousemove', move); - VK.Util.removeEvent('mouseup', mouseup); - }, - auth: function() { - VK.Auth.login(null, 1); - } - }, { - minWidth: 120, - width: '200', - height: '290', - startHeight: 200 - }, function (o, i, r) { - RPC = r; - }); - }; - - VK.Widgets.Auth = function(objId, options) { - var pData = VK.Util.getPageData(); - if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); - if (!options.width) { - options.width = 200; - } - if (options.type) { - type = 1; - } else { - type = 0; - } - return VK.Widgets._constructor('widget_auth.php', objId, options, {}, {makeAuth: function(data) { - if (data.session) { - VK.Auth._loadState = 'loaded'; - VK.Auth.setSession(data.session, 'connected'); - VK.Observer.publish('auth.loginStatus', {session: data.session, status: 'connected'}); - VK.Observer.unsubscribe('auth.loginStatus'); - } - if (options.onAuth) { - options.onAuth(data); - } else { - if (options.authUrl) { - var href = options.authUrl; - } else { - var href = window.location.href; - } - if (href.indexOf('?') == -1) { - href+='?'; - } else { - href+='&'; - } - var vars = []; - - for (var i in data) { - if (i != 'session') vars.push(i+'='+decodeURIComponent(data[i])); - } - window.location.href = href + vars.join('&'); - } - }}, {startHeight: 80}); - }; - - VK.Widgets.Subscribe = function(objId, options, oid) { - oid = parseInt(oid, 10); - var RPC; - if (!oid) { - throw Error('No owner_id passed'); - } - var params = { - oid: oid - }; - if (options.mode) { - params.mode = options.mode; - } - if (options.soft) { - params.soft = options.soft; - } - - return VK.Widgets._constructor('widget_subscribe.php', objId, options, params, { - showBox: function (url, props) { - var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [props.width, props.height], { - proxy: function () { - rpc.callMethod.apply(rpc, arguments); - } - }); - box.show(); - }, - auth: function() { - VK.Auth.login(null, 1); - } - }, { - minWidth: 220, - startHeight: 22, - height: options.height || 22 - }, function (o, i, r) { - RPC = r; - }); - }; - - VK.Widgets.Ads = function(objId, options, paramsExtra) { - options = options || {}; - paramsExtra = paramsExtra || {}; - var params = {}; - var defaults = {}; - var funcs = {}; - var rpc; - var iframe; - - var paramsExtraFix = {}; - for (var key in paramsExtra) { - var keyFix = (inArray(key, ['ads_count', 'hash']) ? key : 'ads_' + key); - paramsExtraFix[keyFix] = paramsExtra[key]; - } - - if (paramsExtraFix.ads_ad_unit_width === 'auto' || paramsExtraFix.ads_ad_unit_height === 'auto') { - var obj = document.getElementById(objId); - if (obj && obj.getBoundingClientRect) { - obj.style.width = '100%'; - obj.style.height = '100%'; - var rect = obj.getBoundingClientRect(); - obj.style.width = ''; - obj.style.height = ''; - if (paramsExtraFix.ads_ad_unit_width === 'auto') { - paramsExtraFix.ads_ad_unit_width = Math.floor(rect.right - rect.left); - if (!paramsExtraFix.ads_ad_unit_width) { - delete paramsExtraFix.ads_ad_unit_width; - } - } - if (paramsExtraFix.ads_ad_unit_height === 'auto') { - paramsExtraFix.ads_ad_unit_height = Math.floor(rect.bottom - rect.top); - if (!paramsExtraFix.ads_ad_unit_height) { - delete paramsExtraFix.ads_ad_unit_height; - } - } - } - if (paramsExtraFix.ads_ad_unit_width === 'auto') { - delete paramsExtraFix.ads_ad_unit_width; - } - if (paramsExtraFix.ads_ad_unit_height === 'auto') { - delete paramsExtraFix.ads_ad_unit_height; - } - } - - var width = (paramsExtraFix && parseInt(paramsExtraFix.ads_ad_unit_width) || 100); - var height = (paramsExtraFix && parseInt(paramsExtraFix.ads_ad_unit_height) || 100); - var handler = paramsExtraFix.ads_handler; - var handlerFailOnly = !!paramsExtraFix.ads_handler_fail_only; - delete paramsExtraFix.ads_handler; - delete paramsExtraFix.ads_handler_fail_only; - - params.act = 'ads_web'; - params.url = location.href; - VK.extend(params, paramsExtraFix); - - options.noDefaultParams = true; - options.width = width; - options.allowTransparency = true; - defaults.startHeight = height; - defaults.minWidth = width; - funcs.adsOnInit = adsOnInit; - funcs.adsCheckVisible = adsCheckVisible; - funcs.adsAddEvents = adsAddEvents; - - return VK.Widgets._constructor('ads_rotate.php', objId, options, params, funcs, defaults, onDone); - - function adsOnInit() { - if (options.onAdsReady) options.onAdsReady.apply(options.onAdsReady, Array.prototype.slice.call(arguments)); - var errorCode = arguments[0]; - if (!handlerFailOnly || errorCode <= 0) { - adsEvalHandler(handler, errorCode); - } - } - function adsCheckVisible(oneAdMaxWidth, oneAdMaxHeight) { - var isVisibleAds = true; - var windowWidth = Math.max(parseInt(window.innerWidth) || 0, parseInt(document.documentElement.clientWidth) || 0); - var windowHeigth = Math.max(parseInt(window.innerHeight) || 0, parseInt(document.documentElement.clientHeight) || 0); - if (iframe.getBoundingClientRect) { - var iframeRect = iframe.getBoundingClientRect(); - var firstAdCenterX = iframeRect.left + oneAdMaxWidth * 0.5; - var firstAdCenterY = iframeRect.top + oneAdMaxHeight * 0.5; - isVisibleAds = (isVisibleAds && firstAdCenterX > 0 && firstAdCenterX < windowWidth); - isVisibleAds = (isVisibleAds && firstAdCenterY > 0 && firstAdCenterY < windowHeigth); - if (document.elementFromPoint && oneAdMaxWidth && oneAdMaxHeight) { - isVisibleAds = (isVisibleAds && document.elementFromPoint(firstAdCenterX, firstAdCenterY) === iframe); - } - } - rpc.callMethod('onAdsCheckVisibleResult', isVisibleAds); - } - function adsAddEvents(adsScriptVersion) { - VK.Observer.subscribe('ads.onHasFocus', function(){ rpc.callMethod('onAdsHasFocus'); }) - VK.Observer.subscribe('ads.onFocusWindow', function(){ rpc.callMethod('onAdsFocusWindow'); }) - VK.Observer.subscribe('ads.onBlurWindow', function(){ rpc.callMethod('onAdsBlurWindow'); }) - VK.Observer.subscribe('ads.onMouseDownDocument', function(){ rpc.callMethod('onAdsMouseDownDocument'); }) - VK.Observer.subscribe('ads.onMouseDownDocumentAction', function(){ rpc.callMethod('onAdsMouseDownDocumentAction'); }) - - adsAttachScript(adsScriptVersion); - } - function adsAttachScript(adsScriptVersion) { - if (window.vk__adsLight) { - if (vk__adsLight.onInit) { - vk__adsLight.onInit(); - } - } else { - adsScriptVersion = parseInt(adsScriptVersion); - var attachScriptFucn = (VK.Api && VK.Api.attachScript || VK.addScript); - var base_domain = (options.base_domain || VK._protocol + '//vk.com'); - attachScriptFucn(base_domain + '/js/al/aes_light.js?' + adsScriptVersion); - } - } - function adsEvalHandler(handler) { - try { - if (!handler) { - return; - } - var func = false; - if (isFunction(handler)) { - func = handler; - } else if (isString(handler)) { - var handlerFuncs = handler.split('.'); - func = window; - for (var i = 0, len = handlerFuncs.length; i < len; i++) { - func = func[handlerFuncs[i]]; - if (!func) { - break; - } - } - if (!func) { - var handlerResult = (new Function(handler))(); - if (isFunction(handlerResult)) { - func = handlerResult; - } - } - } - if (func) { - var args = Array.prototype.slice.call(arguments, 1); - func.apply(func, args); - } - } catch (e) { - try { - console.error(e); - } catch (e2) {} - } - function isFunction(obj) { - return Object.prototype.toString.call(obj) === '[object Function]'; - } - function isString(obj) { - return Object.prototype.toString.call(obj) === '[object String]'; - } - } - function indexOf(arr, value, from) { - for (var i = from || 0, l = (arr || []).length; i < l; i++) { - if (arr[i] == value) return i; - } - return -1; - } - function inArray(value, arr) { - return indexOf(arr, value) != -1; - } - function onDone(o, i, r) { - iframe = i; - rpc = r; - } - }; - - VK.Widgets._constructor = function(widgetUrl, objId, options, params, funcs, defaults, onDone, widgetId, iter) { - var obj = document.getElementById(objId); - widgetId = widgetId || (++VK.Widgets.count); - - if (!obj) { - iter = iter || 0; - if (iter > 10) { - throw Error('VK.Widgets: object #' + objId + ' not found.'); - } - setTimeout(function () { - VK.Widgets._constructor(widgetUrl, objId, options, params, funcs, defaults, onDone, widgetId, iter + 1); - }, 500); - return widgetId; - } - - var ifr, base_domain, width, url, urlQueryString, encodedParam, rpc, iframe, i; - options = options || {}; - defaults = defaults || {}; - funcs = funcs || {}; - - base_domain = options.base_domain || VK._protocol + '//vk.com'; - width = (options.width == 'auto') ? obj.clientWidth || '100%' : parseInt(options.width, 10); - - if (options.height) { - params.height = options.height; - obj.style.height = options.height + 'px'; - } else { - obj.style.height = (defaults.startHeight || 200) + 'px'; - } - - width = width ? (Math.max(defaults.minWidth || 200, Math.min(10000, width)) + 'px') : '100%'; - - if (!params.url) { - params.url = options.pageUrl || location.href.replace(/#.*$/, ''); - } - url = base_domain + '/' + widgetUrl; - urlQueryString = ''; - if (!options.noDefaultParams) { - urlQueryString += '&app=' + (VK._apiId || '0') + '&width=' + width - } - if (VK._iframeAppWidget) { - params.iframe_app = 1; - } - for (i in params) { - if (i == 'title' && params[i].length > 80) params[i] = params[i].substr(0, 80)+'...'; - if (i == 'description' && params[i].length > 160) params[i] = params[i].substr(0, 160)+'...'; - if (typeof(params[i]) == 'number') { - encodedParam = params[i]; - } else { - try { - encodedParam = encodeURIComponent(params[i]); - } catch (e) { - encodedParam = ''; - } - } - urlQueryString += '&' + i + '=' + encodedParam; - } - urlQueryString += '&' + (+new Date()).toString(16); - url += '?' + urlQueryString.substr(1); - - obj.style.width = width; - VK.Widgets.loading(obj, true); - - funcs.publish = function () { - var args = Array.prototype.slice.call(arguments); - args.push(widgetId); - VK.Observer.publish.apply(VK.Observer, args); - }; - funcs.onInit = function() { - VK.Widgets.loading(obj, false); - if (funcs.onReady) funcs.onReady(); - if (options.onReady) options.onReady(); - } - funcs.resize = function(e, cb) { - obj.style.height = e + 'px'; - var el = document.getElementById('vkwidget' + widgetId); - if (el) { - el.style.height = e + 'px'; - } - } - funcs.resizeWidget = function(newWidth, newHeight) { - newWidth = parseInt(newWidth); - newHeight = parseInt(newHeight); - var widgetElem = document.getElementById('vkwidget' + widgetId); - if (isFinite(newWidth)) { - obj.style.width = newWidth + 'px'; - if (widgetElem) { - widgetElem.style.width = newWidth + 'px'; - } - } - if (isFinite(newHeight)) { - obj.style.height = newHeight + 'px'; - if (widgetElem) { - widgetElem.style.height = newHeight + 'px'; - } - } - if (options.onResizeWidget) options.onResizeWidget(); - } - rpc = VK.Widgets.RPC[widgetId] = new fastXDM.Server(funcs, function(origin) { - if (!origin) return true; - origin = origin.toLowerCase(); - return (origin.indexOf('.vk.com') != -1 || origin.indexOf('/vk.com') != -1); - }); - iframe = VK.Widgets.RPC[widgetId].append(obj, { - src: url, - width: (width.indexOf('%') != -1) ? width : (parseInt(width) || width), - height: defaults.startHeight || '100%', - scrolling: 'no', - id: 'vkwidget' + widgetId, - allowTransparency: options.allowTransparency || false, - style: { - overflow: 'hidden' - } - }); - onDone && setTimeout(function () {onDone(obj, iframe || obj.firstChild, rpc);}, 10); - return widgetId; - }; -} - -if (!VK.Util) { -VK.Util = { - getPageData: function () { - if (!VK._pData) { - var metas = document.getElementsByTagName('meta'), pData = {}, keys = ['description', 'title', 'url', 'image', 'app_id'], metaName; - for (var i in metas) { - if (!metas[i].getAttribute) continue; - if (metas[i].getAttribute && ((metaName = metas[i].getAttribute('name')) || (metaName = metas[i].getAttribute('property')))) { - for (var j in keys) { - if (metaName == keys[j] || metaName == 'og:'+keys[j] || metaName == 'vk:'+keys[j]) { - pData[keys[j]] = metas[i].content; - } - } - } - } - if (pData.app_id && !VK._apiId) { - VK._apiId = pData.app_id; - } - pData.title = pData.title || document.title || ''; - pData.description = pData.description || ''; - pData.image = pData.image || ''; - if (!pData.url && VK._iframeAppWidget && VK._apiId) { - pData.url = '/app' + VK._apiId; - if (VK._browserHash) { - pData.url += VK._browserHash - } - } - var loc = location.href.replace(/#.*$/, ''); - if (!pData.url || !pData.url.indexOf(loc)) { - pData.url = loc; - } - VK._pData = pData; - } - return VK._pData; - }, - getXY: function (obj, fixed) { - if (!obj || obj === undefined) return; - var left = 0, top = 0; - if (obj.offsetParent) { - do { - left += obj.offsetLeft; - top += obj.offsetTop; - if (fixed) { - left -= obj.scrollLeft; - top -= obj.scrollTop; - } - } while (obj = obj.offsetParent); - } - if (fixed) { - top += window.pageYOffset || window.scrollNode && scrollNode.scrollTop || document.documentElement.scrollTop; - } - return [left,top]; - }, - Box: function (src, sizes, fnc, options) { - fnc = fnc || {}; - var rpc = new fastXDM.Server(VK.extend(fnc, { - onInit: function () { - iframe.style.background = 'transparent'; - }, - hide: function () { - iframe.style.display = 'none'; - }, - destroy: function () { - try { - iframe.src = 'about: blank;'; - } catch (e) {} - iframe.parentNode.removeChild(iframe); - }, - resize: function (w, h) { - sizes[0] = w; - sizes[1] = h; - VK.Util.ss(iframe, {width: sizes[0] + 'px', height: sizes[1] + 'px'}); - updateCoords(); - } - }, true)), - iframe = rpc.append(document.body, { - src: src, - scrolling: 'no', - allowTransparency: true, - style: {position: 'absolute', left: '50%', zIndex: 1002, background: VK._protocol + '//vk.com/images/upload.gif center center no-repeat transparent', padding: '0', border: '0', width: sizes[0] + 'px', height: sizes[1] + 'px', overflow: 'hidden'} - }), - updateCoords = function (scrollTop, height) { - height = Math.min(1000, height || (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight))); - scrollTop = scrollTop || Math.max(parseInt(window.pageYOffset, 10) || 0, document.documentElement.scrollTop, document.body.scrollTop); - var top = Math.max(0, scrollTop + (height - sizes[1]) / 3); - VK.Util.ss(iframe, {'top': top + 'px', margin: '0 0 0 ' + (-sizes[0]/2) + 'px'}); - }; - return { - show: function (scrollTop, height) { - updateCoords(scrollTop, height); - iframe.style.display = 'block'; - }, - hide: function () { - iframe.style.display = 'none'; - }, - iframe: iframe, - rpc: rpc - } - }, - addEvent: function(type, func) { - if (window.document.addEventListener) { - window.document.addEventListener(type, func, false); - } else if (window.document.attachEvent) { - window.document.attachEvent('on'+type, func); - } - }, - removeEvent: function(type, func) { - if (window.document.removeEventListener) { - window.document.removeEventListener(type, func, false); - } else if (window.document.detachEvent) { - window.document.detachEvent('on'+type, func); - } - }, - ss: function (el, styles) {VK.extend(el.style, styles, true);} -}; -} - -// Init asynchronous library loading -window.vkAsyncInit && setTimeout(vkAsyncInit, 0); - -if (window.vkAsyncInitCallbacks && vkAsyncInitCallbacks.length) { - setTimeout(function() { - var callback; - while (callback = vkAsyncInitCallbacks.pop()) { - try { - callback(); - } catch(e) { - try { - console.error(e); - } catch (e2) {} - } - } - }, 0); -} \ No newline at end of file +(function(w) { +if (w.fastXDM) return; + +var handlers = {}; +var onEnvLoad = []; +var env = {}; + +// Key generation +function genKey() { + var key = ''; + for (i=0;i<5;i++) key += Math.ceil(Math.random()*15).toString(16); + return key; +} +function waitFor(obj, prop, func, self, count) { + if (obj[prop]) { + func.apply(self); + } else { + count = count || 0; + if (count < 1000) setTimeout(function() { + waitFor(obj, prop, func, self, count + 1) + }, 0); + } +} +function attachScript(url) { + setTimeout(function() { + var newScript = document.createElement('script'); + newScript.type = 'text/javascript'; + newScript.src = url || w.fastXDM.helperUrl; + waitFor(document, 'body', function() { + document.getElementsByTagName('HEAD')[0].appendChild(newScript); + }); + }, 0); +} + +function walkVar(value, clean) { + switch (typeof value) { + case 'string': + if (clean) { + return value.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); + } + return value.replace(/'/g, '\'').replace(/"/g, '"').replace(/>/g, '>').replace(/</g, '<').replace(/&/g, '&'); + + case 'object': + if (Object.prototype.toString.apply(value) === '[object Array]') { + newValue = []; + for (var i = 0; i < value.length; i++) { + newValue[i] = walkVar(value[i], clean); + } + } else { + for (var k in value) { + newValue = {}; + if (Object.hasOwnProperty.call(value, k)) { + newValue[k] = walkVar(value[k], clean); + } + } + } + default: + newValue = value; + } + + return newValue; +} + +// Env functions +function getEnv(callback, self) { + if (env.loaded) { + callback.apply(self, [env]); + } else { + onEnvLoad.push([self, callback]); + } +} + +function envLoaded() { + env.loaded = true; + var i = onEnvLoad.length; + while (i--) { + onEnvLoad[i][1].apply(onEnvLoad[i][0], [env]); + } +} + +function applyMethod(strData, self) { + getEnv(function(env) { + var data = env.json.parse(strData); + if (data[0]) { + if (!data[1]) data[1] = []; + var i = data[1].length; + while (i--) { + if (data[1][i]._func) { + var funcNum = data[1][i]._func; + data[1][i] = function() { + var args = Array.prototype.slice.call(arguments); + args.unshift('_func'+funcNum); + self.callMethod.apply(self, args); + } + } else if (self.options.safe) { + data[1][i] = walkVar(data[1][i], true); + } + } + setTimeout(function() { + if (!self.methods[data[0]]) { + throw Error('fastXDM: Method ' + data[0] + ' is undefined'); + } + self.methods[data[0]].apply(self, data[1]); + }, 0); + } + }); +} + +// XDM object +w.fastXDM = { + _id: 0, + helperUrl: ((location.protocol === 'https:') ? 'https:' : 'http:') + '//vk.com/js/api/xdmHelper.js', + + Server: function(methods, filter, options) { + this.methods = methods || {}; + this.id = w.fastXDM._id++; + this.options = options || {}; + this.filter = filter; + this.key = genKey(); + this.methods['%init%'] = this.methods.__fxdm_i = function() { + w.fastXDM.run(this.id); + if (this.methods.onInit) this.methods.onInit(); + }; + this.frameName = 'fXD'+this.key; + this.server = true; + handlers[this.key] = [applyMethod, this]; + }, + + Client: function(methods, options) { + this.methods = methods || {}; + this.id = w.fastXDM._id++; + this.options = options || {}; + w.fastXDM.run(this.id); + if (window.name.indexOf('fXD') === 0) { + this.key = window.name.substr(3); + } else { + throw Error('Wrong window.name property.'); + } + this.caller = window.parent; + handlers[this.key] = [applyMethod, this]; + this.client = true; + + w.fastXDM.on('helper', function() { + w.fastXDM.onClientStart(this); + }, this); + + getEnv(function(env) { + env.send(this, env.json.stringify(['%init%'])); + var methods = this.methods; + setTimeout(function() { + if (methods.onInit) methods.onInit(); + }, 0); + }, this); + }, + + onMessage: function(e) { + if (!e.data) return false; + var data = e.data; + if (typeof data != 'string' && !(data instanceof String)) return false; + var key = data.substr(0, 5); + if (handlers[key]) { + var self = handlers[key][1]; + if (self && (!self.filter || self.filter(e.origin))) { + handlers[key][0](e.data.substr(6), self); + } + } + }, + + setJSON: function(json) { + env.json = json; + }, + + getJSON: function(callback) { + if (!callback) return env.json; + getEnv(function(env) { + callback(env.json); + }); + }, + + setEnv: function(exEnv) { + var i; + for (i in exEnv) { + env[i] = exEnv[i]; + } + envLoaded(); + }, + + _q: {}, + + on: function(key, act, self) { + if (!this._q[key]) this._q[key] = []; + if (this._q[key] == -1) { + act.apply(self); + } else { + this._q[key].push([act, self]); + } + }, + + run: function(key) { + var len = (this._q[key] || []).length; + if (this._q[key] && len > 0) { + for (var i = 0; i < len; i++) this._q[key][i][0].apply(this._q[key][i][1]); + } + this._q[key] = -1; + }, + + waitFor: waitFor +} + +w.fastXDM.Server.prototype.start = function(obj, count) { + if (obj.contentWindow) { + this.caller = obj.contentWindow; + this.frame = obj; + + w.fastXDM.on('helper', function() { + w.fastXDM.onServerStart(this); + }, this); + + } else { // Opera old versions + var self = this; + count = count || 0; + if (count < 50) setTimeout(function() { + self.start.apply(self, [obj, count+1]); + }, 100); + } +} + +w.fastXDM.Server.prototype.destroy = function() { + handlers.splice(handlers.indexOf(this.key), 1); +} + +function extend(obj1, obj2){ + for (var i in obj2) { + if (obj1[i] && typeof(obj1[i]) == 'object') { + extend(obj1[i], obj2[i]) + } else { + obj1[i] = obj2[i]; + } + } +} + +w.fastXDM.Server.prototype.append = function(obj, options) { + var div = document.createElement('DIV'); + div.innerHTML = ''; + var frame = div.firstChild; + var self = this; + setTimeout(function() { + frame.frameBorder = '0'; + if (options) extend(frame, options); + obj.insertBefore(frame, obj.firstChild); + self.start(frame); + }, 0); + return frame; +} + +w.fastXDM.Client.prototype.callMethod = w.fastXDM.Server.prototype.callMethod = function() { + var args = Array.prototype.slice.call(arguments); + var method = args.shift(); + var i = args.length; + while (i--) { + if (typeof(args[i]) == 'function') { + this.funcsCount = (this.funcsCount || 0) + 1; + var func = args[i]; + var funcName = '_func' + this.funcsCount; + this.methods[funcName] = function() { + func.apply(this, arguments); + delete this.methods[funcName]; + } + args[i] = {_func: this.funcsCount}; + } else if (this.options.safe) { + args[i] = walkVar(args[i], false); + } + } + waitFor(this, 'caller', function() { + w.fastXDM.on(this.id, function() { + getEnv(function(env) { + env.send(this, env.json.stringify([method, args])); + }, this); + }, this); + }, this); +} + +if (w.JSON && typeof(w.JSON) == 'object' && w.JSON.parse && w.JSON.stringify && w.JSON.stringify({a:[1,2,3]}).replace(/ /g, '') == '{"a":[1,2,3]}') { + env.json = {parse: w.JSON.parse, stringify: w.JSON.stringify}; +} else { + w.fastXDM._needJSON = true; +} + +// PostMessage cover +if (w.postMessage) { + env.protocol = 'p'; + env.send = function(xdm, strData) { + var win = (xdm.frame ? xdm.frame.contentWindow : xdm.caller); + win.postMessage(xdm.key+':'+strData, "*"); + } + if (w.addEventListener) { + w.addEventListener("message", w.fastXDM.onMessage, false); + } else { + w.attachEvent("onmessage", w.fastXDM.onMessage); + } + + if (w.fastXDM._needJSON) { + w.fastXDM._onlyJSON = true; + attachScript(); + } else { + envLoaded(); + } +} else { + attachScript(); +} +})(window); + + +if (!window.VK) window.VK = {}; + + +/* + * Based on JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Copyright (C) Paul Johnston 1999 - 2009 + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + */ +if(!VK.MD5){VK.MD5=function(n){var j=function(o,r){var q=(o&65535)+(r&65535),p=(o>>16)+(r>>16)+(q>>16);return(p<<16)|(q&65535)},g=function(o,p){return(o<>>(32-p))},k=function(w,r,p,o,v,u){return j(g(j(j(r,w),j(o,u)),v),p)},a=function(q,p,w,v,o,u,r){return k((p&w)|((~p)&v),q,p,o,u,r)},h=function(q,p,w,v,o,u,r){return k((p&v)|(w&(~v)),q,p,o,u,r)},c=function(q,p,w,v,o,u,r){return k(p^w^v,q,p,o,u,r)},m=function(q,p,w,v,o,u,r){return k(w^(p|(~v)),q,p,o,u,r)},b=function(A,u){var z=1732584193,y=-271733879,w=-1732584194,v=271733878,r,q,p,o;A[u>>5]|=128<<((u)%32);A[(((u+64)>>>9)<<4)+14]=u;for(var t=0,s=A.length;t>>6)&31),128|(o&63))}else{if(o<=65535){q+=String.fromCharCode(224|((o>>>12)&15),128|((o>>>6)&63),128|(o&63))}else{if(o<=2097151){q+=String.fromCharCode(240|((o>>>18)&7),128|((o>>>12)&63),128|((o>>>6)&63),128|(o&63))}}}}}return q},e=function(p){var o=Array(p.length>>2),r,q;for(r=0,q=o.length;r>5]|=(p.charCodeAt(r/8)&255)<<(r%32)}return o},l=function(p){var o="";for(var r=0,q=p.length*32;r>5]>>>(r%32))&255)}return o},d=function(o){return l(b(e(o),o.length*8))},i=function(q){var t="0123456789abcdef",p="",o;for(var s=0,r=q.length;s>>4)&15)+t.charAt(o&15)}return p};return i(d(f(n)))}} + +/* + * VKontakte Open API JavaScript library + * http://vk.com/ + */ + +VK.extend = function(target, source, overwrite) { + for (var key in source) { + if (overwrite || typeof target[key] === 'undefined') { + target[key] = source[key]; + } + } + return target; +}; + +if (VK._protocol !== 'https:') { + VK._protocol = ((location.protocol === 'https:') ? 'https:' : 'http:'); +} + +if (!VK.xdConnectionCallbacks) { + +VK.extend(VK, { + version: 1, + _apiId: null, + _session: null, + _userStatus: 'unknown', + _domain: { + main: 'https://oauth.vk.com/', + api: 'https://api.vk.com/' + }, + _path: { + login: 'authorize', + proxy: 'fxdm_oauth_proxy.html' + }, + _rootId: 'vk_api_transport', + _nameTransportPath: '', + xdReady: false, + access: { + FRIENDS: 0x2, + PHOTOS: 0x4, + AUDIO: 0x8, + VIDEO: 0x10, + MATCHES: 0x20, + QUESTIONS: 0x40, + WIKI: 0x80 + } +}); + +VK.init = function(options) { + var body, root; + + VK._apiId = null; + if (!options.apiId) { + throw Error('VK.init() called without an apiId'); + } + VK._apiId = options.apiId; + + if (options.onlyWidgets) return true; + + if (options.nameTransportPath && options.nameTransportPath !== '') { + VK._nameTransportPath = options.nameTransportPath; + } + + root = document.getElementById(VK._rootId); + if (!root) { + root = document.createElement('div'); + root.id = VK._rootId; + body = document.getElementsByTagName('body')[0]; + body.insertBefore(root, body.childNodes[0]); + } + root.style.position = 'absolute'; + root.style.top = '-10000px'; + + var session = VK.Cookie.load(); + if (session) { + VK.Auth._loadState = 'loaded'; + VK.Auth.setSession(session, session ? 'connected' : 'unknown'); + } +}; + +if (!VK.Cookie) { +VK.Cookie = { + _domain: null, + load: function() { + var + cookie = document.cookie.match('\\bvk_app_' + VK._apiId + '=([^;]*)\\b'), + session; + + if (cookie) { + session = this.decode(cookie[1]); + if (session.secret != 'oauth') { + return false; + } + session.expire = parseInt(session.expire, 10); + VK.Cookie._domain = '.' + window.location.hostname;//session.base_domain; + } + + return session; + }, + setRaw: function(val, ts, domain, time) { + var rawCookie; + rawCookie = 'vk_app_' + VK._apiId + '=' + val + ''; + var exp = time ? (new Date().getTime() + time * 1000) : ts * 1000; + rawCookie += (val && ts === 0 ? '' : '; expires=' + new Date(exp).toGMTString()); + rawCookie += '; path=/'; + rawCookie += (domain ? '; domain=.' + domain : ''); + document.cookie = rawCookie; + + this._domain = domain; + }, + set: function(session, resp) { + if (session) { + this.setRaw(this.encode(session), session.expire, window.location.hostname, (resp || {}).time); + } else { + this.clear(); + } + }, + clear: function() { + this.setRaw('', 0, this._domain, 0); + }, + encode: function(params) { + var + pairs = [], + key; + + for (key in params) { + if (key != 'user') pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); + } + pairs.sort(); + + return pairs.join('&'); + }, + decode: function(str) { + var + params = {}, + parts = str.split('&'), + i, + pair; + + for (i=0; i < parts.length; i++) { + pair = parts[i].split('=', 2); + if (pair && pair[0]) { + params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); + } + } + + return params; + } +}; +} + +if (!VK.Api) { +VK.Api = { + _headId: null, + _callbacks: {}, + ie6_7: function() { + if (!VK.Api.ieTested) { + VK.Api.isIE6_7 = navigator.userAgent.match(/MSIE [6|7]/i); + VK.Api.ieTested = true; + } + return VK.Api.isIE6_7; + }, + attachScript: function(url) { + if (!VK.Api._headId) VK.Api._headId = document.getElementsByTagName("head")[0]; + var newScript = document.createElement('script'); + newScript.type = 'text/javascript'; + newScript.setAttribute('encoding', 'UTF-8'); + newScript.src = url; + VK.Api._headId.appendChild(newScript); + }, + checkMethod: function(method, params, cb, queryTry) { + var m = method.toLowerCase(); + if (m == 'wall.post' || m == 'activity.set') { + var text = (m == 'activity.set') ? params.text : params.message; + if (!text) { + text = ''; + } + var query = VK._protocol + '//vk.com/al_apps.php?act=wall_post_box&widget=1&method='+m+'&aid=' + parseInt(VK._apiId, 10) + '&text=' + encodeURIComponent(text); + if (m == 'wall.post') { + query += '&owner_id=' + parseInt(params.owner_id || 0, 10) + '&attachments=' + (params.attachments || params.attachment || '') + '&publish_date=' + (params.publish_date || ''); + } + var method_access = '_'+(Math.random()).toString(16).substr(2); + query += '&method_access='+method_access; + var popup = VK.UI.popup({ + url: query, + width: 460, + height: 249 + }); + var timer = setInterval(function() { + if (VK.UI.active.closed) { + clearInterval(timer); + params.method_access = method_access; + VK.Api.call(method, params, cb, queryTry); + } + }, 500); + return false; + } + return true; + }, + call: function(method, params, cb, queryTry) { + var + query = params || {}, + qs, + responseCb; + + if (typeof query != 'object' || typeof cb != 'function') { + return false; + } + if (!params.method_access && !params.method_force && !VK.Api.checkMethod(method, params, cb, queryTry)) { + return; + } + + if (!queryTry) queryTry = 0; + + if (VK.Auth._loadState != 'loaded') { + var authFunc = function(result) { + if (result && result.session) { + VK.Observer.unsubscribe('auth.loginStatus', authFunc); + VK.Api.call(method, params, cb); + } + }; + VK.Observer.subscribe('auth.loginStatus', authFunc); + VK.Auth.getLoginStatus(); + return; + } + + if (VK.Api.queryLength(query) < 1500 && !VK.Api.ie6_7()) { + var useXDM = false; + var rnd = parseInt(Math.random() * 10000000, 10); + while (VK.Api._callbacks[rnd]) { + rnd = parseInt(Math.random() * 10000000, 10) + } + query.callback = 'VK.Api._callbacks['+rnd+']'; + } else { + var useXDM = true; + } + + if (VK._session && VK._session.sid) { + query.access_token = VK._session.sid; + } + + qs = VK.Cookie.encode(query); + + responseCb = function(response) { + if (response.error && (response.error.error_code == 3 || response.error.error_code == 4 || response.error.error_code == 5)) { + if (queryTry > 3) return false; + var repeatCall = function(resp) { + VK.Observer.unsubscribe('auth.sessionChange', repeatCall); + delete params.access_token; + if (resp.session) VK.Api.call(method, params, cb, queryTry + 1); + } + VK.Observer.subscribe('auth.sessionChange', repeatCall); + VK.Auth.getLoginStatus(); + } else { + cb(response); + } + if (!useXDM) delete VK.Api._callbacks[rnd]; + }; + + if (useXDM) { + if (VK.xdReady) { + VK.XDM.remote.callMethod('apiCall', method, qs, responseCb); + } else { + VK.Observer.subscribe('xdm.init', function() { + VK.XDM.remote.callMethod('apiCall', method, qs, responseCb); + }); + VK.XDM.init(); + } + } else { + VK.Api._callbacks[rnd] = responseCb; + VK.Api.attachScript(VK._domain.api + 'method/' + method +'?' + qs); + } + }, + queryLength: function(query) { + var len = 100, i; // sid + sig + for (i in query) { + len += i.length + encodeURIComponent(query[i]).length + 1; + } + return len; + } +}; + +// Alias +VK.api = function(method, params, cb) {VK.Api.call(method, params, cb);} +}; + +if (!VK.Auth) { +VK.Auth = { + popup: null, + lsCb: {}, + setSession: function(session, status, settings, resp) { + var + login = !VK._session && session, + logout = VK._session && !session, + both = VK._session && session && VK._session.mid != session.mid, + sessionChange = login || logout || (VK._session && session && VK._session.sid != session.sid), + statusChange = status != VK._userStatus, + response = { + 'session': session, + 'status': status, + 'settings': settings + }; + + VK._session = session; + + VK._userStatus = status; + + VK.Cookie.set(session, resp); + + if (sessionChange || statusChange || both) { + setTimeout(function() { + if (statusChange) { + VK.Observer.publish('auth.statusChange', response); + } + + if (logout || both) { + VK.Observer.publish('auth.logout', response); + } + + if (login || both) { + VK.Observer.publish('auth.login', response); + } + + if (sessionChange) { + VK.Observer.publish('auth.sessionChange', response); + } + }, 0); + } + + return response; + }, + // Public VK.Auth methods + login: function(cb, settings) { + var channel, url; + if (!VK._apiId) { + return false; + } + channel = window.location.protocol + '//' + window.location.hostname; + url = VK._domain.main + VK._path.login + '?client_id='+VK._apiId+'&display=popup&redirect_uri=close.html&response_type=token'; + if (settings && parseInt(settings, 10) > 0) { + url += '&scope=' + settings; + } + VK.Observer.unsubscribe('auth.onLogin'); + VK.Observer.subscribe('auth.onLogin', cb); + VK.UI.popup({ + width: 665, + height: 370, + url: url + }); + var authCallback = function() { + VK.Auth.getLoginStatus(function(resp) { + VK.Observer.publish('auth.onLogin', resp); + VK.Observer.unsubscribe('auth.onLogin'); + }, true); + } + + VK.UI.popupOpened = true; + var popupCheck = function() { + if (!VK.UI.popupOpened) return false; + try { + if (!VK.UI.active.top || VK.UI.active.closed) { + VK.UI.popupOpened = false; + authCallback(); + return true; + } + } catch(e) { + VK.UI.popupOpened = false; + authCallback(); + return true; + } + setTimeout(popupCheck, 100); + }; + + setTimeout(popupCheck, 100); + }, + // Logout user from app, vk.com & login.vk.com + logout: function(cb) { + VK.Auth.revokeGrants(cb); + }, + revokeGrants: function(cb) { + var onLogout = function(resp) { + VK.Observer.unsubscribe('auth.statusChange', onLogout); + if (cb) cb(resp); + } + VK.Observer.subscribe('auth.statusChange', onLogout); + if (VK._session && VK._session.sid) VK.Api.attachScript('https://login.vk.com/?act=openapi&oauth=1&aid=' + parseInt(VK._apiId, 10) + '&location=' + encodeURIComponent(window.location.hostname)+'&do_logout=1&token='+VK._session.sid); + VK.Cookie.clear(); + }, + // Get current login status from session (sync) (not use on load time) + getSession: function() { + return VK._session; + }, + // Get current login status from vk.com (async) + getLoginStatus: function(cb, force) { + if (!VK._apiId) { + return; + } + + if (cb) { + if (!force && VK.Auth._loadState == 'loaded') { + cb({status: VK._userStatus, session: VK._session}); + return; + } else { + VK.Observer.subscribe('auth.loginStatus', cb); + } + } + + if (!force && VK.Auth._loadState == 'loading') { + return; + } + + VK.Auth._loadState = 'loading'; + var rnd = parseInt(Math.random() * 10000000, 10); + while (VK.Auth.lsCb[rnd]) { + rnd = parseInt(Math.random() * 10000000, 10) + } + VK.Auth.lsCb[rnd] = function(response) { + delete VK.Auth.lsCb[rnd]; + VK.Auth._loadState = 'loaded'; + if (response && response.auth) { + var session = { + mid: response.user.id, + sid: response.access_token, + sig: response.sig, + secret: response.secret, + expire: response.expire + }; + if (force) session.user = response.user; + var status = 'connected'; + } else { + var session = null; + var status = response.user ? 'logined' : 'unknown'; + VK.Cookie.clear(); + } + VK.Auth.setSession(session, status, false, response); + VK.Observer.publish('auth.loginStatus', {session: session, status: status}); + VK.Observer.unsubscribe('auth.loginStatus'); + }; + // AttachScript here + VK.Api.attachScript('https://login.vk.com/?act=openapi&oauth=1&aid=' + parseInt(VK._apiId, 10) + '&location=' + encodeURIComponent(window.location.hostname)+'&rnd='+rnd); + } +}; +} + +} else { // if VK.xdConnectionCallbacks + setTimeout(function() { + var callback; + while (callback = VK.xdConnectionCallbacks.pop()) { + callback(); + } + }, 0); + if (VK.Widgets && !VK.Widgets._constructor) { + VK.Widgets = false; + } +} + +if (!VK.UI) { +VK.UI = { + active: null, + _buttons: [], + popup: function(options) { + var + screenX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft, + screenY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop, + outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth, + outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22), + width = options.width, + height = options.height, + left = parseInt(screenX + ((outerWidth - width) / 2), 10), + top = parseInt(screenY + ((outerHeight - height) / 2.5), 10), + features = ( + 'width=' + width + + ',height=' + height + + ',left=' + left + + ',top=' + top + ); + this.active = window.open(options.url, 'vk_openapi', features); + }, + button: function(el, handler) { + var html = ''; + + if (typeof el == 'string') { + el = document.getElementById(el); + } + + + this._buttons.push(el); + index = this._buttons.length - 1; + + html = ( + '' + + '' + + '' + + '' + + '
    Войти
    Контакте
    ' + ); + el.innerHTML = html; + el.style.width = el.childNodes[0].offsetWidth + 'px'; + }, + _change: function(state, index) { + var row = document.getElementById('openapi_UI_' + index).rows[0]; + var elems = [row.cells[0].firstChild.firstChild, row.cells[2].firstChild.firstChild]; + for (var i = 0; i < 2; ++i) { + var elem = elems[i]; + if (state === 0) { + elem.style.backgroundColor = '#6D8DB1'; + elem.style.borderTopColor = '#7E9CBC'; + elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#5C82AB'; + } else if (state == 1) { + elem.style.backgroundColor = '#7693B6'; + elem.style.borderTopColor = '#88A4C4'; + elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#6088B4'; + } else if (state == 2) { + elem.style.backgroundColor = '#6688AD'; + elem.style.borderBottomColor = '#7495B8'; + elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderTopColor = '#51779F'; + } + } + if (state === 0 || state == 2) { + row.cells[2].firstChild.style.backgroundPosition = '0px -42px'; + } else if (state == 1) { + row.cells[2].firstChild.style.backgroundPosition = '0px -63px'; + } + } +}; +} + +if (!VK.XDM) { +VK.XDM = { + remote: null, + init: function() { + if (this.remote) return false; + var url = VK._domain.api + VK._path.proxy; + this.remote = new fastXDM.Server({ + onInit: function() { + VK.xdReady = true; + VK.Observer.publish('xdm.init'); + } + }); + + this.remote.append(document.getElementById(VK._rootId), { + src: url + }); + }, + xdHandler: function(code) { + try { + eval('VK.' + code); + } catch(e) {} + } +}; +} + +if (!VK.Observer) { +VK.Observer = { + _subscribers: function() { + if (!this._subscribersMap) { + this._subscribersMap = {}; + } + return this._subscribersMap; + }, + publish: function(eventName) { + var + args = Array.prototype.slice.call(arguments), + eventName = args.shift(), + subscribers = this._subscribers()[eventName], + i, j; + + if (!subscribers) return; + + for (i = 0, j = subscribers.length; i < j; i++) { + if (subscribers[i] != null) { + subscribers[i].apply(this, args); + } + } + }, + subscribe: function(eventName, handler) { + var + subscribers = this._subscribers(); + + if (typeof handler != 'function') return false; + + if (!subscribers[eventName]) { + subscribers[eventName] = [handler]; + } else { + subscribers[eventName].push(handler); + } + }, + unsubscribe: function(eventName, handler) { + var + subscribers = this._subscribers()[eventName], + i, j; + + if (!subscribers) return false; + if (typeof handler == 'function') { + for (i = 0, j = subscribers.length; i < j; i++) { + if (subscribers[i] == handler) { + subscribers[i] = null; + } + } + } else { + delete this._subscribers()[eventName]; + } + } +}; +} + +if (!VK.Widgets) { + VK.Widgets = {}; + + VK.Widgets.count = 0; + VK.Widgets.RPC = {}; + + VK.Widgets.loading = function(obj, enabled) { + obj.style.background = enabled ? 'url("' + VK._protocol + '//vk.com/images/upload.gif") center center no-repeat transparent' : 'none'; + }; + + VK.Widgets.Comments = function(objId, options, page) { + var pData = VK.Util.getPageData(); + if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); + options = options || {}; + var params = { + limit: options.limit || 10, + height: options.height || 0, + mini: options.mini === undefined ? 'auto' : options.mini, + norealtime: options.norealtime ? 1 : 0 + }, mouseup = function() { + rpc.callMethod('mouseUp'); + return false; + }, move = function(event) { + rpc.callMethod('mouseMove', {screenY: event.screenY}); + }, iframe, rpc; + + if (options.browse) { // browse all comments + params.browse = 1; + params.replies = options.replies || 0; + } else { // page + var url = options.pageUrl || pData.url; + if (url.substr(0, 1) == '/') { + url = (location.protocol + '//' + location.host) + url; + } + VK.extend(params, { + page: page || 0, + status_publish: options.autoPublish === undefined ? 1 : options.autoPublish, + attach: options.attach === undefined ? '*' : (options.attach ? options.attach : ''), + url: url, + title: options.pageTitle || pData.title, + description: options.pageDescription || pData.description, + image: options.pageImage || pData.image + }); + } + if (options.onChange) { // DEPRECATED + VK.Observer.subscribe('widgets.comments.new_comment', options.onChange); + VK.Observer.subscribe('widgets.comments.delete_comment', options.onChange); + } + + return VK.Widgets._constructor('widget_comments.php', objId, options, params, { + showBox: function(url, props) { + var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com') + '/' + url, [], { + proxy: function() { + rpc.callMethod.apply(rpc, arguments); + } + }); + box.show(); + }, + startDrag: function() { + cursorBack = window.document.body.style.cursor; + window.document.body.style.cursor = 'pointer'; + VK.Util.addEvent('mousemove', move); + VK.Util.addEvent('mouseup', mouseup); + }, + stopDrag: function() { + window.document.body.style.cursor = cursorBack; + VK.Util.removeEvent('mousemove', move); + VK.Util.removeEvent('mouseup', mouseup); + } + }, { + startHeight: 133, + minWidth: 300, + width: '100%' + }, function(o, i, r) {iframe = i; rpc = r;}); + }; + + VK.Widgets.CommentsBrowse = function(objId, options) { + options = options || {}; + options.browse = 1; + return VK.Widgets.Comments(objId, options); + }; + + VK.Widgets.Recommended = function(objId, options) { + var pData = VK.Util.getPageData(); + if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); + options = options || {}; + var params = { + limit: options.limit || 5, + max: options.max || 0, + sort: options.sort || 'friend_likes', + verb: options.verb || 0, + period: options.period || 'week', + target: options.target || 'parent' + }; + return VK.Widgets._constructor('widget_recommended.php', objId, options, params, {}, { + startHeight: (90 + params.limit * 30), + minWidth: 150, + width: '100%' + }); + }; + + VK.Widgets.Post = function(objId, ownerId, postId, hash, options) { + options = options || {}; + var params = { + owner_id: ownerId, + post_id: postId, + hash: hash || '', + width: options.width || 500 + }, iframe, rpc, cursorBack; + return VK.Widgets._constructor('widget_post.php', objId, options, params, { + showBox: function(url, props) { + var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com') + '/' + url, [], { + proxy: function() { + rpc.callMethod.apply(rpc, arguments); + } + }); + box.show(); + }, + startDrag: function() { + cursorBack = window.document.body.style.cursor; + window.document.body.style.cursor = 'pointer'; + }, + stopDrag: function() { + window.document.body.style.cursor = cursorBack; + } + }, { + startHeight: 90, + minWidth: 250, + width: '100%' + }, function(o, i, r) {iframe = i; rpc = r;}); + }; + + VK.Widgets.Like = function(objId, options, page) { + var pData = VK.Util.getPageData(); + if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); + options = VK.extend(options || {}, {allowTransparency: true}); + if (options.type == 'button' || options.type == 'vertical' || options.type == 'mini') delete options.width; + var + type = (options.type == 'full' || options.type == 'button' || options.type == 'vertical' || options.type == 'mini') ? options.type : 'full', + width = type == 'full' ? Math.max(200, options.width || 350) : (type == 'button' ? 180 : (type == 'mini' ? 100 : 41)), + btnHeight = parseInt(options.height, 10) || 22, + height = type == 'vertical' ? (2 * btnHeight + 7) : (type == 'full' ? btnHeight + 1 : btnHeight), + params = { + page: page || 0, + url: options.pageUrl || pData.url, + type: type, + verb: options.verb == 1 ? 1 : 0, + color: options.color || '', + title: options.pageTitle || pData.title, + description: options.pageDescription || pData.description, + image: options.pageImage || pData.image, + text: (options.text || '').substr(0, 140), + h: btnHeight + }, + ttHere = options.ttHere || false, + isOver = false, + obj, buttonIfr, buttonRpc, tooltipIfr, tooltipRpc, checkTO, statsBox; + + function showTooltip(force) { + if ((!isOver && !force) || !tooltipRpc) return; + if (!tooltipIfr || !tooltipRpc || tooltipIfr.style.display != 'none' && tooltipIfr.getAttribute('vkhidden') != 'yes') return; + var scrollTop = options.getScrollTop ? options.getScrollTop() : (document.body.scrollTop || document.documentElement.scrollTop || 0); + var objPos = VK.Util.getXY(obj, options.fixed); + var startY = ttHere ? 0 : objPos[1]; + if (scrollTop > objPos[1] - 120 && options.tooltipPos != 'top' || type == 'vertical' || options.tooltipPos == 'bottom') { + tooltipIfr.style.top = (startY + height + 2) + 'px'; + tooltipRpc.callMethod('show', false); + } else { + tooltipIfr.style.top = (startY - 125) + 'px'; + tooltipRpc.callMethod('show', true); + } + VK.Util.ss(tooltipIfr, {left: ((ttHere ? 0 : objPos[0]) - (type == 'vertical' || type == 'mini' ? 36 : 2)) + 'px', display: 'block', opacity: 1, filter: 'none'}); + tooltipIfr.setAttribute('vkhidden', 'no'); + isOver = true; + } + + function hideTooltip(force) { + if ((isOver && !force) || !tooltipRpc) return; + tooltipRpc.callMethod('hide'); + buttonRpc.callMethod('hide'); + setTimeout(function() { + tooltipIfr.style.display = 'none' + }, 400); + } + + function handleStatsBox(act) { + hideTooltip(true); + statsBox = VK.Util.Box(buttonIfr.src + '&act=a_stats_box&widget_width=620'); + statsBox.show(); + } + + return VK.Widgets._constructor('widget_like.php', objId, options, params, { + initTooltip: function(counter) { + tooltipRpc = new fastXDM.Server({ + onInit: counter ? function() {showTooltip(true)} : function() {}, + proxy: function() { + buttonRpc.callMethod.apply(buttonRpc, arguments); + }, + showBox: function(url, props) { + var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [props.width, props.height], { + proxy: function() { + tooltipRpc.callMethod.apply(tooltipRpc, arguments); + } + }); + box.show(); + }, + statsBox: handleStatsBox + }, false, {safe: true}); + tooltipIfr = tooltipRpc.append(ttHere ? obj : document.body, { + src: buttonIfr.src + '&act=a_like_tooltip', + scrolling: 'no', + allowTransparency: true, + id: buttonIfr.id + '_tt', + style: {position: 'absolute', padding: 0, display: 'block', opacity: 0.01, filter: 'alpha(opacity=1)', border: '0', width: '238px', height: '124px', zIndex: 5000, overflow: 'hidden'} + }); + tooltipIfr.setAttribute('vkhidden', 'yes'); + + obj.onmouseover = tooltipIfr.onmouseover = function() { + clearTimeout(checkTO); + isOver = true; + }; + obj.onmouseout = tooltipIfr.onmouseout = function() { + clearTimeout(checkTO); + isOver = false; + checkTO = setTimeout(function() {hideTooltip(); }, 200); + }; + }, + statsBox: handleStatsBox, + showTooltip: showTooltip, + hideTooltip: hideTooltip, + showBox: function(url, props) { + var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [], { + proxy: function() { + buttonRpc.callMethod.apply(buttonRpc, arguments); + } + }); + box.show(); + }, + proxy: function() {if (tooltipRpc) tooltipRpc.callMethod.apply(tooltipRpc, arguments);} + }, { + startHeight: height, + minWidth: width + }, function(o, i, r) { + buttonRpc = r; + VK.Util.ss(obj = o, {height: height + 'px', width: width + 'px', position: 'relative', clear: 'both'}); + VK.Util.ss(buttonIfr = i, {height: height + 'px', width: width + 'px', overflow: 'hidden', zIndex: 150}); + }); + }; + + VK.Widgets.Poll = function(objId, options, pollId) { + var pData = VK.Util.getPageData(); + // if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); + if (!pollId) throw Error('No poll id passed'); + options = options || {}; + var params = { + poll_id: pollId, + url: options.pageUrl || pData.url || location.href, + title: options.pageTitle || pData.title, + description: options.pageDescription || pData.description + }; + return VK.Widgets._constructor('widget_poll.php', objId, options, params, {}, { + startHeight: 133, + minWidth: 300, + width: '100%' + }); + }; + + VK.Widgets.PagePoll = function(objId, options, page) { + var pData = VK.Util.getPageData(); + // if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); + options = options || {}; + var params = { + page: page || 0, + norealtime: options.norealtime ? 1 : 0, + poll_id: options.pollId || '', + url: options.pageUrl || pData.url || location.href, + title: options.pageTitle || pData.title, + description: options.pageDescription || pData.description + }; + return VK.Widgets._constructor('al_widget_poll.php', objId, options, params, {}, { + startHeight: 133, + minWidth: 300, + width: '100%' + }); + }; + + VK.Widgets.Community = VK.Widgets.Group = function(objId, options, gid) { + gid = parseInt(gid, 10); + var RPC; + if (!gid) { + throw Error('No group_id passed'); + } + options.mode = parseInt(options.mode, 10).toString(); + var params = { + gid: gid, + mode: (options.mode) ? options.mode : '0' + }; + if (!options.width) options.width = 200; + if (options.wall) params.wall = options.wall; + params.color1 = options.color1 || ''; + params.color2 = options.color2 || ''; + params.color3 = options.color3 || ''; + params.class_name = options.class_name || ''; + if (options.no_head) params.no_head = 1; + if (!options.height) options.height = 290; + if (options.wide) { + params.wide = 1; + if (options.width < 300) { + options.width = 300; + } + } + + var cursorBack; + + function mouseup() { + RPC.callMethod('mouseUp'); + return false; + } + + function move(event) { + RPC.callMethod('mouseMove', {screenY: event.screenY}); + return false; + } + + return VK.Widgets._constructor('widget_community.php', objId, options, params, { + showBox: function(url, props) { + var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [], { + proxy: function() { + rpc.callMethod.apply(rpc, arguments); + } + }); + box.show(); + }, + startDrag: function() { + cursorBack = window.document.body.style.cursor; + window.document.body.style.cursor = 'pointer'; + VK.Util.addEvent('mousemove', move); + VK.Util.addEvent('mouseup', mouseup); + }, + stopDrag: function() { + window.document.body.style.cursor = cursorBack; + VK.Util.removeEvent('mousemove', move); + VK.Util.removeEvent('mouseup', mouseup); + }, + auth: function() { + VK.Auth.login(null, 1); + } + }, { + minWidth: 120, + width: '200', + height: '290', + startHeight: 200 + }, function(o, i, r) { + RPC = r; + }); + }; + + VK.Widgets.Auth = function(objId, options) { + var pData = VK.Util.getPageData(); + if (!VK._apiId) throw Error('VK not initialized. Please use VK.init'); + if (!options.width) { + options.width = 200; + } + if (options.type) { + type = 1; + } else { + type = 0; + } + return VK.Widgets._constructor('widget_auth.php', objId, options, {}, {makeAuth: function(data) { + if (data.session) { + VK.Auth._loadState = 'loaded'; + VK.Auth.setSession(data.session, 'connected'); + VK.Observer.publish('auth.loginStatus', {session: data.session, status: 'connected'}); + VK.Observer.unsubscribe('auth.loginStatus'); + } + if (options.onAuth) { + options.onAuth(data); + } else { + if (options.authUrl) { + var href = options.authUrl; + } else { + var href = window.location.href; + } + if (href.indexOf('?') == -1) { + href+='?'; + } else { + href+='&'; + } + var vars = []; + + for (var i in data) { + if (i != 'session') vars.push(i+'='+decodeURIComponent(data[i]).replace(/&/g, '%26').replace(/\?/, '%3F')); + } + window.location.href = href + vars.join('&'); + } + }}, {startHeight: 80}); + }; + + VK.Widgets.Subscribe = function(objId, options, oid) { + oid = parseInt(oid, 10); + var RPC; + if (!oid) { + throw Error('No owner_id passed'); + } + var params = { + oid: oid + }; + if (options.mode) { + params.mode = options.mode; + } + if (options.soft) { + params.soft = options.soft; + } + + return VK.Widgets._constructor('widget_subscribe.php', objId, options, params, { + showBox: function(url, props) { + var box = VK.Util.Box((options.base_domain || VK._protocol + '//vk.com/') + url, [], { + proxy: function() { + rpc.callMethod.apply(rpc, arguments); + } + }); + box.show(); + }, + auth: function() { + VK.Auth.login(null, 1); + } + }, { + minWidth: 220, + startHeight: 22, + height: options.height || 22 + }, function(o, i, r) { + RPC = r; + }); + }; + + VK.Widgets.Ads = function(objId, options, paramsExtra) { + options = options || {}; + paramsExtra = paramsExtra || {}; + var params = {}; + var defaults = {}; + var funcs = {}; + var obj = document.getElementById(objId); + var iframe; + var rpc; + + var adsParams = {}; + var adsParamsLocal = {}; + var adsParamsDefault = {}; + for (var key in paramsExtra) { + var keyFix = (inArray(key, ['hash']) ? key : 'ads_' + key); + adsParams[keyFix] = paramsExtra[key]; + } + + if (obj && obj.getBoundingClientRect) { + obj.style.width = '100%'; + obj.style.height = '100%'; + var rect = obj.getBoundingClientRect(); + obj.style.width = ''; + obj.style.height = ''; + adsParams.ads_ad_unit_width_auto = Math.floor(rect.right - rect.left); + adsParams.ads_ad_unit_height_auto = Math.floor(rect.bottom - rect.top); + } + + adsParamsDefault.ads_ad_unit_width = 100; + adsParamsDefault.ads_ad_unit_height = 100; + + adsParamsLocal.ads_ad_unit_width = (parseInt(adsParams.ads_ad_unit_width) || adsParams.ads_ad_unit_width === 'auto' && adsParams.ads_ad_unit_width_auto || adsParamsDefault.ads_ad_unit_width); + adsParamsLocal.ads_ad_unit_height = (parseInt(adsParams.ads_ad_unit_height) || adsParams.ads_ad_unit_height === 'auto' && adsParams.ads_ad_unit_height_auto || adsParamsDefault.ads_ad_unit_height); + if (adsParams.ads_handler) { + adsParamsLocal.ads_handler = adsParams.ads_handler; + } + if (adsParams.ads_handler_empty_html) { + adsParamsLocal.ads_handler_empty_html = adsParams.ads_handler_empty_html; + } + + delete adsParams.ads_handler; + delete adsParams.ads_handler_empty_html; + + params.act = 'ads_web'; + params.url = location.href; + VK.extend(params, adsParams); + + options.noDefaultParams = true; + options.width = adsParamsLocal.ads_ad_unit_width; + options.allowTransparency = true; + defaults.startHeight = adsParamsLocal.ads_ad_unit_height; + defaults.minWidth = adsParamsLocal.ads_ad_unit_width; + funcs.adsOnInitLoader = adsOnInitLoader; + funcs.adsOnInit = adsOnInit; + + return VK.Widgets._constructor('ads_rotate.php', objId, options, params, funcs, defaults, onDone); + + function adsOnInitLoader(adsScriptVersion) { + VK.Widgets.loading(obj, true); + adsAttachScript(adsScriptVersion); + } + function adsOnInit(errorCode, adsParamsExport) { + VK.Widgets.loading(obj, false); + adsProcessParams(adsParamsExport); + if (options.onAdsReady) options.onAdsReady.apply(options.onAdsReady, Array.prototype.slice.call(arguments)); + adsProcessHandler(errorCode); + } + function adsAttachScript(adsScriptVersion) { + if (!('vk__adsLight' in window)) { + window.vk__adsLight = false; + adsScriptVersion = parseInt(adsScriptVersion); + var attachScriptFunc = (VK.Api && VK.Api.attachScript || VK.addScript); + var base_domain = (options.base_domain || VK._protocol + '//vk.com'); + attachScriptFunc(base_domain + '/js/al/aes_light.js?' + adsScriptVersion); + } else if (window.vk__adsLight && vk__adsLight.userHandlers && vk__adsLight.userHandlers.onInit) { + vk__adsLight.userHandlers.onInit(false); // false - do not publish initial onInit + } + } + function adsProcessParams(adsParamsExport) { + if (!adsParamsExport) { + return; + } + for (var paramName in adsParamsExport) { + var paramValue = adsParamsExport[paramName]; + if (paramName === 'ads_ad_unit_width' || paramName === 'ads_ad_unit_height') { + if (!(paramName in adsParams)) { + adsParamsLocal[paramName] = (parseInt(paramValue) || paramValue === 'auto' && adsParams[paramName + '_auto'] || adsParamsDefault[paramName]); + } + } else { + if (!(paramName in adsParamsLocal)) { + adsParamsLocal[paramName] = paramValue; + } + } + } + } + function adsProcessHandler(errorCode) { + var handlerResult = adsEvalHandler(adsParamsLocal.ads_handler, errorCode); + if (errorCode <= 0 && handlerResult !== true) { + try { console.log('VK: ad_unit_id = ' + adsParams.ads_ad_unit_id, ', errorCode = ', errorCode); } catch (e) {} + adsInsertHtmlHandler(adsParamsLocal.ads_handler_empty_html, adsParamsLocal.ads_ad_unit_width, adsParamsLocal.ads_ad_unit_height); + } + } + function adsEvalHandler(handler) { + var result = false; + try { + if (!handler) { + return false; + } + var func = false; + if (isFunction(handler)) { + func = handler; + } else if (isString(handler)) { + var handlerFuncs = handler.split('.'); + func = window; + for (var i = 0, len = handlerFuncs.length; i < len; i++) { + func = func[handlerFuncs[i]]; + if (!func) { + break; + } + } + if (!func) { + if (handler.substr(0, 8) === 'function') { + handler = 'return ' + handler + ';'; + } + var handlerResult = (new Function(handler))(); + if (isFunction(handlerResult)) { + func = handlerResult; + } else { + result = handlerResult; + } + } + } + if (func) { + var args = Array.prototype.slice.call(arguments, 1); + result = func.apply(func, args); + } + } catch (e) { + try { + console.error(e); + } catch (e2) {} + } + + return result; + + function isFunction(obj) { + return Object.prototype.toString.call(obj) === '[object Function]'; + } + function isString(obj) { + return Object.prototype.toString.call(obj) === '[object String]'; + } + } + function adsInsertHtmlHandler(handlerHtml, width, height) { + if (!handlerHtml) { + return; + } + if (!obj) { + return; + } + + width = (width ? width + 'px' : ''); + height = (height ? height + 'px' : ''); + + var iframeHandlerHtml = '
    ' + handlerHtml + '
    '; + + var iframeHandler = document.createElement('iframe'); + iframeHandler.onload = fixIframeHeight; + iframeHandler.id = (iframe ? iframe.id : ('vkwidget-' + Math.round(Math.random() * 1000000))) + '_ads_html_handler'; + iframeHandler.src = 'about:blank'; + iframeHandler.width = '100%'; + iframeHandler.height = '100%'; + iframeHandler.scrolling = 'no'; + iframeHandler.frameBorder = '0'; + iframeHandler.allowTransparency = true; + iframeHandler.style.overflow = 'hidden'; + iframeHandler.style.width = width; + iframeHandler.style.height = height; + + obj.style.width = width; + obj.style.height = height; + + obj.appendChild(iframeHandler); + + iframeHandler.contentWindow.vk_ads_html_handler = iframeHandlerHtml; + iframeHandler.src = 'javascript:window["vk_ads_html_handler"]'; + + function fixIframeHeight() { + if (height) { + return; + } + try { + var rect = iframeHandler.contentWindow.document.body.firstChild.getBoundingClientRect(); + var heightFix = Math.ceil(rect.bottom - rect.top); + if (heightFix) { + iframeHandler.style.height = heightFix; + obj.style.height = heightFix; + } + } catch (e) {} + } + } + function indexOf(arr, value, from) { + for (var i = from || 0, l = (arr || []).length; i < l; i++) { + if (arr[i] == value) return i; + } + return -1; + } + function inArray(value, arr) { + return indexOf(arr, value) != -1; + } + function onDone(o, i, r) { + obj = o; + iframe = i; + rpc = r; + } + }; + + VK.Widgets._constructor = function(widgetUrl, objId, options, params, funcs, defaults, onDone, widgetId, iter) { + var obj = document.getElementById(objId); + widgetId = widgetId || (++VK.Widgets.count); + + if (!obj) { + iter = iter || 0; + if (iter > 10) { + throw Error('VK.Widgets: object #' + objId + ' not found.'); + } + setTimeout(function() { + VK.Widgets._constructor(widgetUrl, objId, options, params, funcs, defaults, onDone, widgetId, iter + 1); + }, 500); + return widgetId; + } + + var ifr, base_domain, width, url, urlQueryString, encodedParam, rpc, iframe, i; + options = options || {}; + defaults = defaults || {}; + funcs = funcs || {}; + + base_domain = options.base_domain || VK._protocol + '//vk.com'; + width = (options.width == 'auto') ? obj.clientWidth || '100%' : parseInt(options.width, 10); + + if (options.height) { + params.height = options.height; + obj.style.height = options.height + 'px'; + } else { + obj.style.height = (defaults.startHeight || 200) + 'px'; + } + + width = width ? (Math.max(defaults.minWidth || 200, Math.min(10000, width)) + 'px') : '100%'; + + if (!params.url) { + params.url = options.pageUrl || location.href.replace(/#.*$/, ''); + } + url = base_domain + '/' + widgetUrl; + urlQueryString = ''; + if (!options.noDefaultParams) { + urlQueryString += '&app=' + (VK._apiId || '0') + '&width=' + width + } + urlQueryString += '&_ver=' + VK.version + if (VK._iframeAppWidget) { + params.iframe_app = 1; + } + for (i in params) { + if (i == 'title' && params[i].length > 80) params[i] = params[i].substr(0, 80)+'...'; + if (i == 'description' && params[i].length > 160) params[i] = params[i].substr(0, 160)+'...'; + if (typeof(params[i]) == 'number') { + encodedParam = params[i]; + } else { + try { + encodedParam = encodeURIComponent(params[i]); + } catch (e) { + encodedParam = ''; + } + } + urlQueryString += '&' + i + '=' + encodedParam; + } + urlQueryString += '&' + (+new Date()).toString(16); + url += '?' + urlQueryString.substr(1); + + obj.style.width = width; + VK.Widgets.loading(obj, true); + + funcs.publish = function() { + var args = Array.prototype.slice.call(arguments); + args.push(widgetId); + VK.Observer.publish.apply(VK.Observer, args); + }; + funcs.onInit = function() { + VK.Widgets.loading(obj, false); + if (funcs.onReady) funcs.onReady(); + if (options.onReady) options.onReady(); + } + funcs.resize = function(e, cb) { + obj.style.height = e + 'px'; + var el = document.getElementById('vkwidget' + widgetId); + if (el) { + el.style.height = e + 'px'; + } + } + funcs.resizeWidget = function(newWidth, newHeight) { + newWidth = parseInt(newWidth); + newHeight = parseInt(newHeight); + var widgetElem = document.getElementById('vkwidget' + widgetId); + if (isFinite(newWidth)) { + obj.style.width = newWidth + 'px'; + if (widgetElem) { + widgetElem.style.width = newWidth + 'px'; + } + } + if (isFinite(newHeight)) { + obj.style.height = newHeight + 'px'; + if (widgetElem) { + widgetElem.style.height = newHeight + 'px'; + } + } + if (options.onResizeWidget) options.onResizeWidget(); + } + funcs.updateVersion = function(ver) { + if (ver > 1) { + VK.Api.attachScript('//vk.com/js/api/openapi_update.js?'+parseInt(ver)); + } + } + rpc = VK.Widgets.RPC[widgetId] = new fastXDM.Server(funcs, function(origin) { + if (!origin) return true; + origin = origin.toLowerCase(); + return (origin.match(/(\.|\/)vk\.com($|\/|\?)/)); + }, {safe: true}); + iframe = VK.Widgets.RPC[widgetId].append(obj, { + src: url, + width: (width.indexOf('%') != -1) ? width : (parseInt(width) || width), + height: defaults.startHeight || '100%', + scrolling: 'no', + id: 'vkwidget' + widgetId, + allowTransparency: options.allowTransparency || false, + style: { + overflow: 'hidden' + } + }); + onDone && setTimeout(function() {onDone(obj, iframe || obj.firstChild, rpc);}, 10); + return widgetId; + }; +} + +if (!VK.Util) { +VK.Util = { + getPageData: function() { + if (!VK._pData) { + var metas = document.getElementsByTagName('meta'), pData = {}, keys = ['description', 'title', 'url', 'image', 'app_id'], metaName; + for (var i in metas) { + if (!metas[i].getAttribute) continue; + if (metas[i].getAttribute && ((metaName = metas[i].getAttribute('name')) || (metaName = metas[i].getAttribute('property')))) { + for (var j in keys) { + if (metaName == keys[j] || metaName == 'og:'+keys[j] || metaName == 'vk:'+keys[j]) { + pData[keys[j]] = metas[i].content; + } + } + } + } + if (pData.app_id && !VK._apiId) { + VK._apiId = pData.app_id; + } + pData.title = pData.title || document.title || ''; + pData.description = pData.description || ''; + pData.image = pData.image || ''; + if (!pData.url && VK._iframeAppWidget && VK._apiId) { + pData.url = '/app' + VK._apiId; + if (VK._browserHash) { + pData.url += VK._browserHash + } + } + var loc = location.href.replace(/#.*$/, ''); + if (!pData.url || !pData.url.indexOf(loc)) { + pData.url = loc; + } + VK._pData = pData; + } + return VK._pData; + }, + getStyle: function(elem, name) { + var ret, defaultView = document.defaultView || window; + if (defaultView.getComputedStyle) { + name = name.replace(/([A-Z])/g, '-$1').toLowerCase(); + var computedStyle = defaultView.getComputedStyle(elem, null); + if (computedStyle) { + ret = computedStyle.getPropertyValue(name); + } + } else if (elem.currentStyle) { + var camelCase = name.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + ret = elem.currentStyle[name] || elem.currentStyle[camelCase]; + } + + return ret; + }, + getXY: function(obj, fixed) { + if (!obj || obj === undefined) return; + + var left = 0, top = 0; + if (obj.getBoundingClientRect !== undefined) { + var rect = obj.getBoundingClientRect(); + left = rect.left; + top = rect.top; + fixed = true; + } else if (obj.offsetParent) { + do { + left += obj.offsetLeft; + top += obj.offsetTop; + if (fixed) { + left -= obj.scrollLeft; + top -= obj.scrollTop; + } + } while (obj = obj.offsetParent); + } + if (fixed) { + top += window.pageYOffset || window.scrollNode && scrollNode.scrollTop || document.documentElement.scrollTop; + left += window.pageXOffset || window.scrollNode && scrollNode.scrollLeft || document.documentElement.scrollLeft; + } + + return [left, top]; + }, + Box: function(src, sizes, fnc, options) { + fnc = fnc || {}; + var overflowB = document.body.style.overflow; + var loader = document.createElement('DIV'); + var rpc = new fastXDM.Server(VK.extend(fnc, { + onInit: function() { + iframe.style.background = 'transparent'; + iframe.style.visibility = 'visible'; + document.body.style.overflow = 'hidden'; + document.body.removeChild(loader); + }, + hide: function() { + iframe.style.display = 'none'; + }, + tempHide: function() { + iframe.style.left = '-10000px'; + iframe.style.top = '-10000px'; + iframe.style.width = '10px'; + iframe.style.height = '10px'; + document.body.style.overflow = overflowB; + }, + destroy: function() { + try { + iframe.src = 'about: blank;'; + } catch (e) {} + iframe.parentNode.removeChild(iframe); + document.body.style.overflow = overflowB; + }, + resize: function(w, h) { + } + }, true), false, {safe: true}), + iframe = rpc.append(document.body, { + src: src.replace(/&/g, '&'), + scrolling: 'no', + allowTransparency: true, + style: {position: 'fixed', left: 0, top: 0, zIndex: 1002, background: VK._protocol + '//vk.com/images/upload.gif center center no-repeat transparent', padding: '0', border: '0', width: '100%', height: '100%', overflow: 'hidden', visibility: 'hidden'} + }); + loader.innerHTML = '
    '; + document.body.insertBefore(loader, document.body.firstChild); + return { + show: function(scrollTop, height) { + iframe.style.display = 'block'; + document.body.style.overflow = 'hidden'; + }, + hide: function() { + iframe.style.display = 'none'; + document.body.style.overflow = overflowB; + }, + iframe: iframe, + rpc: rpc + } + }, + addEvent: function(type, func) { + if (window.document.addEventListener) { + window.document.addEventListener(type, func, false); + } else if (window.document.attachEvent) { + window.document.attachEvent('on'+type, func); + } + }, + removeEvent: function(type, func) { + if (window.document.removeEventListener) { + window.document.removeEventListener(type, func, false); + } else if (window.document.detachEvent) { + window.document.detachEvent('on'+type, func); + } + }, + ss: function(el, styles) {VK.extend(el.style, styles, true);} +}; +} + +// Init asynchronous library loading +window.vkAsyncInit && setTimeout(vkAsyncInit, 0); + +if (window.vkAsyncInitCallbacks && vkAsyncInitCallbacks.length) { + setTimeout(function() { + var callback; + while (callback = vkAsyncInitCallbacks.pop()) { + try { + callback(); + } catch(e) { + try { + console.error(e); + } catch (e2) {} + } + } + }, 0); +} +try{if (window.stManager) stManager.done('api/openapi.js');}catch(e){} From b823ea371ae343aeaa3b47445aec31fdc03813d3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 4 Jun 2015 07:16:16 -0400 Subject: [PATCH 0234/3805] feature(package) join-io v1.4.0 --- lib/client/cloudcmd.js | 2 +- lib/join.js | 27 --------------------------- package.json | 2 +- 3 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 lib/join.js diff --git a/lib/client/cloudcmd.js b/lib/client/cloudcmd.js index 3c9babd603..e98b762a16 100644 --- a/lib/client/cloudcmd.js +++ b/lib/client/cloudcmd.js @@ -12,7 +12,6 @@ var CloudCmd; client = 'client/', files = [ 'util', - 'join', 'cloudfunc', client + 'dom', client + 'events', @@ -39,6 +38,7 @@ var CloudCmd; files = moduleFiles .concat(files) + .concat('/join/join') .map(function(name) { return name + '.js'; }); diff --git a/lib/join.js b/lib/join.js deleted file mode 100644 index 9e79fa1fa2..0000000000 --- a/lib/join.js +++ /dev/null @@ -1,27 +0,0 @@ -(function(global) { - 'use strict'; - - var PREFIX = '/join'; - - if (typeof module === 'object' && module.exports) - module.exports = join; - else - global.join = join; - - function join(prefix, names) { - var url; - - if (!names) { - names = prefix; - prefix = PREFIX; - } - - if (!names) - throw(Error('names must be array!')); - - url = prefix + ':' + names.join(':'); - - return url; - } - -})(this); diff --git a/package.json b/package.json index 3ec2a8c89f..0334f89bad 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "format-io": "~0.9.6", "http-auth": "~2.2.3", "jag": "~1.0.0", - "join-io": "~1.3.0", + "join-io": "~1.4.0", "jonny": "~1.0.0", "markdown-it": "~4.2.0", "mellow": "~1.3.0", From 99edc05cdfc6a3b5b93ed64baf8329b097e87580 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 4 Jun 2015 07:41:45 -0400 Subject: [PATCH 0235/3805] chore(package) v3.0.4 --- ChangeLog | 9 +++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 48fd8abee8..04e17d6138 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2015.06.04, v3.0.4 + +feature: +- (package) join-io v1.4.0 +- (bower) add vk-openapi +- (github) add from bower +- (package) execon v1.2.0 + + 2015.06.02, v3.0.3 fix: diff --git a/HELP.md b/HELP.md index 123b8d9486..ef8e193bff 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.0.3 +Cloud Commander v3.0.4 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -355,6 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.04*, **[v3.0.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.4.tar.gz)** - *2015.06.02*, **[v3.0.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.3.tar.gz)** - *2015.05.31*, **[v3.0.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.2.tar.gz)** - *2015.05.29*, **[v3.0.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.1.tar.gz)** diff --git a/README.md b/README.md index 12751c1d3c..641da91ed7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.0.3 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.0.4 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index a76ff6af8f..b42d72ab95 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.0.3", + "version": "3.0.4", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 0334f89bad..e65c8a5de4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.0.3", + "version": "3.0.4", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 9361dac42884ee30481e7019da9e217011fbe945 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 4 Jun 2015 08:48:15 -0400 Subject: [PATCH 0236/3805] chore(bower) github: update dependencies --- modules/github/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/github/package.json b/modules/github/package.json index e740fdd32e..6861c21664 100644 --- a/modules/github/package.json +++ b/modules/github/package.json @@ -6,8 +6,8 @@ "dependencies": { "atob": "^1.1.2", "btoa": "^1.1.2", - "underscore": "~1.6.0", - "xmlhttprequest": "~1.6.0" + "underscore": "~1.8.3", + "xmlhttprequest": "~1.7.0" }, "devDependencies": { "argg": "0.0.1", From aec152d7933d83fa39d9a76f4edd05f931d57376 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 08:19:43 -0400 Subject: [PATCH 0237/3805] feature(dom) Images.show.error: jqXHR -> text --- lib/client/dom.js | 27 +++------------------------ lib/client/load.js | 3 +-- lib/client/rest.js | 12 +++++++++++- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 4fa1d61480..de5113a216 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -109,34 +109,13 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; return image; } - function error(jqXHR, isQuiet) { - var isStr = Util.type.string(jqXHR), - image = Images.error(), - response = '', - statusText = '', - status = 0, - text = ''; - - if (jqXHR) - if (isStr) { - text = jqXHR; - } else { - response = jqXHR.responseText; - statusText = jqXHR.statusText; - status = jqXHR.status; - text = status === 404 ? response : statusText; - } + function error(text) { + var image = Images.error(); DOM.show(image); image.title = text; - if (text) - setTimeout(function() { - if (!isQuiet) - Dialog.alert(text); - - CloudCmd.log(text); - }, 100); + CloudCmd.log(text); return image; } diff --git a/lib/client/load.js b/lib/client/load.js index 3a56a73712..8e0ebb29d0 100644 --- a/lib/client/load.js +++ b/lib/client/load.js @@ -52,7 +52,6 @@ var Util, DOM; funcError = function() { var callback, template = 'file {{ src }} could not be loaded', - isQuit = true, msg = rendy(template, { src: p.src }), @@ -64,7 +63,7 @@ var Util, DOM; parent.removeChild(element); - Images.show.error(msg, isQuit); + Images.show.error(msg); Util.exec(callback, error); }; diff --git a/lib/client/rest.js b/lib/client/rest.js index dd2cc795ab..7a54b61584 100644 --- a/lib/client/rest.js +++ b/lib/client/rest.js @@ -187,7 +187,17 @@ var Util, DOM, CloudFunc, CloudCmd; url : p.url, data : p.data, dataType : p.dataType, - error : Images.show.error, + error : function(jqXHR) { + var response = jqXHR.responseText, + statusText = jqXHR.statusText, + status = jqXHR.status, + text = status === 404 ? response : statusText; + + Images.show.error(text); + setTimeout(function() { + DOM.Dialog.alert(text); + }, 100); + }, success : function(data) { Images.hide(); From 87e77c2654ce39ff5b69a6945a938dbd5b530527 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 08:27:40 -0400 Subject: [PATCH 0238/3805] feature(dom) loading, error: DOM.add/removeClass -> classList.add/remove --- lib/client/dom.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index de5113a216..d74b3fbac9 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -56,25 +56,23 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; /* Функция создаёт картинку загрузки */ this.loading = function() { - var element = getElement(); + var element = getElement(), + classList = element.classList; - DOM.addClass(element, LOADING) - .addClass(element, LoadingImage) - .removeClass(element, ERROR) - .removeClass(element, HIDDEN); + classList.add(LOADING, LoadingImage); + classList.remove(ERROR, HIDDEN); return element; }; /* Функция создаёт картинку ошибки загрузки */ this.error = function() { - var element = getElement(); + var element = getElement(), + classList = element.classList; + + classList.add(ERROR); + classList.remove(HIDDEN, LOADING, LoadingImage); - DOM.addClass(element, ERROR) - .removeClass(element, LOADING) - .removeClass(element, LoadingImage) - .removeClass(element, HIDDEN); - return element; }; }; From b53691f91a15bcff4e6955b7f59d1e0cce94fac3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 09:08:56 -0400 Subject: [PATCH 0239/3805] feature(dom) rm addClass, removeClass --- bower.json | 3 +- lib/client.js | 5 +- lib/client/buffer.js | 4 +- lib/client/dom.js | 54 +--- lib/client/polyfill.js | 28 -- lib/client/view.js | 4 +- modules/html5-polyfills/.bower.json | 31 +++ modules/html5-polyfills/EventSource.js | 186 +++++++++++++ modules/html5-polyfills/MIT-LICENCE.txt | 21 ++ modules/html5-polyfills/README.md | 32 +++ modules/html5-polyfills/Storage.js | 96 +++++++ modules/html5-polyfills/bower.json | 22 ++ modules/html5-polyfills/classList.js | 70 +++++ modules/html5-polyfills/component.json | 16 ++ modules/html5-polyfills/dataset.js | 57 ++++ .../html5-polyfills/device-motion-polyfill.js | 253 ++++++++++++++++++ modules/html5-polyfills/index.js | 8 + modules/html5-polyfills/input-target.js | 42 +++ modules/html5-polyfills/offline-events.js | 47 ++++ modules/html5-polyfills/range.js | 94 +++++++ modules/html5-polyfills/sessionStorage.js | 23 ++ .../html5-polyfills/tests/eventsource.html | 22 ++ .../html5-polyfills/tests/offline-events.html | 35 +++ modules/html5-polyfills/tests/range.html | 44 +++ 24 files changed, 1119 insertions(+), 78 deletions(-) create mode 100644 modules/html5-polyfills/.bower.json create mode 100644 modules/html5-polyfills/EventSource.js create mode 100644 modules/html5-polyfills/MIT-LICENCE.txt create mode 100644 modules/html5-polyfills/README.md create mode 100644 modules/html5-polyfills/Storage.js create mode 100644 modules/html5-polyfills/bower.json create mode 100644 modules/html5-polyfills/classList.js create mode 100644 modules/html5-polyfills/component.json create mode 100644 modules/html5-polyfills/dataset.js create mode 100644 modules/html5-polyfills/device-motion-polyfill.js create mode 100644 modules/html5-polyfills/index.js create mode 100644 modules/html5-polyfills/input-target.js create mode 100644 modules/html5-polyfills/offline-events.js create mode 100644 modules/html5-polyfills/range.js create mode 100644 modules/html5-polyfills/sessionStorage.js create mode 100644 modules/html5-polyfills/tests/eventsource.html create mode 100644 modules/html5-polyfills/tests/offline-events.html create mode 100644 modules/html5-polyfills/tests/range.html diff --git a/bower.json b/bower.json index b42d72ab95..24aab1e188 100644 --- a/bower.json +++ b/bower.json @@ -28,6 +28,7 @@ "format-io": "~0.9.6", "rendy": "~1.1.0", "github": "~0.10.6", - "vk-openapi": "~0.0.1" + "vk-openapi": "~0.0.1", + "html5-polyfills": "*" } } diff --git a/lib/client.js b/lib/client.js index a82aa1043e..2caf95969f 100644 --- a/lib/client.js +++ b/lib/client.js @@ -161,7 +161,10 @@ var Util, DOM, CloudFunc, join; }, funcBefore = function(callback) { - var src = CloudCmd.LIBDIRCLIENT + 'polyfill.js'; + var src = prefix + '/join:' + [ + CloudCmd.LIBDIRCLIENT + 'polyfill.js', + '/modules/html5-polyfills/classList.js' + ].join(':'); DOM.loadJquery(function() { DOM.load.js(src, callback); diff --git a/lib/client/buffer.js b/lib/client/buffer.js index 9428db1659..3a830755f9 100644 --- a/lib/client/buffer.js +++ b/lib/client/buffer.js @@ -40,7 +40,7 @@ var files = DOM.getActiveFiles(); files.forEach(function(element) { - DOM.addClass(element, CLASS); + element.classList.add(CLASS); }); } @@ -48,7 +48,7 @@ var files = DOM.getByClassAll(CLASS); [].forEach.call(files, function(element) { - DOM.removeClass(element, CLASS); + element.classList.remove(CLASS); }); } diff --git a/lib/client/dom.js b/lib/client/dom.js index d74b3fbac9..8ff8f9d6c8 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -151,43 +151,6 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; DOMTreeProto = function() { var DOM = this; - /** - * add class to element - * - * @param element - * @param pClass - */ - this.addClass = function(element, pClass) { - var ret = element && pClass; - - if (ret) - element.classList.add(pClass); - - return this; - }; - - /** - * remove class pClass from element element - * @param element - * @param pClass - */ - this.removeClass = function(element, pClass) { - var ret = element && pClass; - - if (ret) - element.classList.remove(pClass); - - return this; - }; - - this.toggleClass = function(element, pClass) { - var ret = element && pClass; - - if (ret) - element.classList.toggle(pClass); - - return this; - }; /** * check class of element @@ -284,11 +247,13 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * @param element */ this.hide = function(element) { - return DOM.addClass(element, 'hidden'); + element.classList.add('hidden'); + return DOM; }; this.show = function(element) { - return DOM.removeClass(element, 'hidden'); + element.classList.remove('hidden'); + return DOM; }; }, @@ -313,7 +278,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; var ret = DOM.isCurrentFile(currentFile); if (ret) - DOM.removeClass(currentFile, CURRENT_FILE); + currentFile.classList.remove(CURRENT_FILE); return ret; } @@ -931,7 +896,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; unsetCurrentFile(currentFileWas); } - this.addClass(currentFile, CURRENT_FILE); + currentFile.classList.add(CURRENT_FILE); path = DOM.getCurrentDirPath(); @@ -1003,10 +968,11 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * @param currentFile */ this.toggleSelectedFile = function(currentFile) { - var current = currentFile || this.getCurrentFile(), - ret = this.toggleClass(current, SELECTED_FILE); + var current = currentFile || this.getCurrentFile(); + + current.classList.toggle(SELECTED_FILE); - return ret; + return Cmd; }; this.toggleAllSelectedFiles = function() { diff --git a/lib/client/polyfill.js b/lib/client/polyfill.js index b21a8c7900..5cc670d2fa 100644 --- a/lib/client/polyfill.js +++ b/lib/client/polyfill.js @@ -155,34 +155,6 @@ var Util, DOM, jQuery; element.scrollIntoView(alignWithTop); } }; - - if (!document.body.classList) { - DOM.isContainClass = function(el, className) { - var ret = $(el).hasClass(className); - - return ret; - }; - - DOM.addClass = function(pElement, pClass) { - var lRet, - lClassName = pElement && pElement.className, - lSpaceChar = lClassName ? ' ' : ''; - - lRet = !DOM.isContainClass(pElement, pClass); - - if (lRet) - pElement.className += lSpaceChar + pClass; - - return lRet; - }; - - DOM.removeClass = function(pElement, pClass) { - var lClassName = pElement.className; - - if (lClassName.length > pClass.length) - pElement.className = lClassName.replace(pClass, ''); - }; - } if (!window.JSON) { Util.json.parse = $.parseJSON; diff --git a/lib/client/view.js b/lib/client/view.js index 1e28d8f336..8f6299a2ec 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -317,11 +317,11 @@ var CloudCmd, Util, DOM, CloudFunc, $; } function hideOverlay() { - DOM.removeClass(Overlay, 'view-overlay'); + Overlay.classList.remove('view-overlay'); } function showOverlay() { - DOM.addClass(Overlay, 'view-overlay'); + Overlay.classList.add('view-overlay'); } function listener(event) { diff --git a/modules/html5-polyfills/.bower.json b/modules/html5-polyfills/.bower.json new file mode 100644 index 0000000000..3292443f57 --- /dev/null +++ b/modules/html5-polyfills/.bower.json @@ -0,0 +1,31 @@ +{ sdfljsdlfjsdf lsdjflsdjflsdj ------- sdfjsdlfjdsljf + "name": "html5-polyfills", sldjflsdjf lsdfjlsdjf + "description": "Collection of polyfills by Remy Sharp", + "homepage": "https://github.com/remy/polyfills", + "keywords": [ + "polyfill", + "client", + "browser" + ], + "author": { + "name": "Remy Sharp", + "email": "remy@leftlogic.com" + }, + "readme": "This is my own collection of code snippets that support different native features of browsers using JavaScript (and if required, Flash in some cases).", + "readmeFilename": "README.md", + "_id": "html5-polyfills@0.0.20130621", + "repository": { + "type": "git", + "url": "git://github.com/remy/polyfills.git" + }, + "_release": "768ce355de", + "_resolution": { + "type": "branch", + "branch": "master", + "commit": "768ce355de8f31d8d0a99aa3aba3708daa54e873" + }, + "_source": "git://github.com/remy/polyfills.git", + "_target": "*", + "_originalSource": "html5-polyfills", + "_direct": true +} \ No newline at end of file diff --git a/modules/html5-polyfills/EventSource.js b/modules/html5-polyfills/EventSource.js new file mode 100644 index 0000000000..92ca621d1a --- /dev/null +++ b/modules/html5-polyfills/EventSource.js @@ -0,0 +1,186 @@ +;(function (global) { + +if ("EventSource" in global) return; + +var reTrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g; + +var EventSource = function (url) { + var eventsource = this, + interval = 500, // polling interval + lastEventId = null, + cache = ''; + + if (!url || typeof url != 'string') { + throw new SyntaxError('Not enough arguments'); + } + + this.URL = url; + this.readyState = this.CONNECTING; + this._pollTimer = null; + this._xhr = null; + + function pollAgain(interval) { + eventsource._pollTimer = setTimeout(function () { + poll.call(eventsource); + }, interval); + } + + function poll() { + try { // force hiding of the error message... insane? + if (eventsource.readyState == eventsource.CLOSED) return; + + // NOTE: IE7 and upwards support + var xhr = new XMLHttpRequest(); + xhr.open('GET', eventsource.URL, true); + xhr.setRequestHeader('Accept', 'text/event-stream'); + xhr.setRequestHeader('Cache-Control', 'no-cache'); + // we must make use of this on the server side if we're working with Android - because they don't trigger + // readychange until the server connection is closed + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + + if (lastEventId != null) xhr.setRequestHeader('Last-Event-ID', lastEventId); + cache = ''; + + xhr.timeout = 50000; + xhr.onreadystatechange = function () { + if (this.readyState == 3 || (this.readyState == 4 && this.status == 200)) { + // on success + if (eventsource.readyState == eventsource.CONNECTING) { + eventsource.readyState = eventsource.OPEN; + eventsource.dispatchEvent('open', { type: 'open' }); + } + + var responseText = ''; + try { + responseText = this.responseText || ''; + } catch (e) {} + + // process this.responseText + var parts = responseText.substr(cache.length).split("\n"), + eventType = 'message', + data = [], + i = 0, + line = ''; + + cache = responseText; + + // TODO handle 'event' (for buffer name), retry + for (; i < parts.length; i++) { + line = parts[i].replace(reTrim, ''); + if (line.indexOf('event') == 0) { + eventType = line.replace(/event:?\s*/, ''); + } else if (line.indexOf('retry') == 0) { + retry = parseInt(line.replace(/retry:?\s*/, '')); + if(!isNaN(retry)) { interval = retry; } + } else if (line.indexOf('data') == 0) { + data.push(line.replace(/data:?\s*/, '')); + } else if (line.indexOf('id:') == 0) { + lastEventId = line.replace(/id:?\s*/, ''); + } else if (line.indexOf('id') == 0) { // this resets the id + lastEventId = null; + } else if (line == '') { + if (data.length) { + var event = new MessageEvent(data.join('\n'), eventsource.url, lastEventId); + eventsource.dispatchEvent(eventType, event); + data = []; + eventType = 'message'; + } + } + } + + if (this.readyState == 4) pollAgain(interval); + // don't need to poll again, because we're long-loading + } else if (eventsource.readyState !== eventsource.CLOSED) { + if (this.readyState == 4) { // and some other status + // dispatch error + eventsource.readyState = eventsource.CONNECTING; + eventsource.dispatchEvent('error', { type: 'error' }); + pollAgain(interval); + } else if (this.readyState == 0) { // likely aborted + pollAgain(interval); + } else { + } + } + }; + + xhr.send(); + + setTimeout(function () { + if (true || xhr.readyState == 3) xhr.abort(); + }, xhr.timeout); + + eventsource._xhr = xhr; + + } catch (e) { // in an attempt to silence the errors + eventsource.dispatchEvent('error', { type: 'error', data: e.message }); // ??? + } + }; + + poll(); // init now +}; + +EventSource.prototype = { + close: function () { + // closes the connection - disabling the polling + this.readyState = this.CLOSED; + clearInterval(this._pollTimer); + this._xhr.abort(); + }, + CONNECTING: 0, + OPEN: 1, + CLOSED: 2, + dispatchEvent: function (type, event) { + var handlers = this['_' + type + 'Handlers']; + if (handlers) { + for (var i = 0; i < handlers.length; i++) { + handlers[i].call(this, event); + } + } + + if (this['on' + type]) { + this['on' + type].call(this, event); + } + }, + addEventListener: function (type, handler) { + if (!this['_' + type + 'Handlers']) { + this['_' + type + 'Handlers'] = []; + } + + this['_' + type + 'Handlers'].push(handler); + }, + removeEventListener: function (type, handler) { + var handlers = this['_' + type + 'Handlers']; + if (!handlers) { + return; + } + for (var i = handlers.length - 1; i >= 0; --i) { + if (handlers[i] === handler) { + handlers.splice(i, 1); + break; + } + } + }, + onerror: null, + onmessage: null, + onopen: null, + readyState: 0, + URL: '' +}; + +var MessageEvent = function (data, origin, lastEventId) { + this.data = data; + this.origin = origin; + this.lastEventId = lastEventId || ''; +}; + +MessageEvent.prototype = { + data: null, + type: 'message', + lastEventId: '', + origin: '' +}; + +if ('module' in global) module.exports = EventSource; +global.EventSource = EventSource; + +})(this); diff --git a/modules/html5-polyfills/MIT-LICENCE.txt b/modules/html5-polyfills/MIT-LICENCE.txt new file mode 100644 index 0000000000..aecaf1da58 --- /dev/null +++ b/modules/html5-polyfills/MIT-LICENCE.txt @@ -0,0 +1,21 @@ +Copyright (c) 2010 Remy Sharp, http://remysharp.com + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/modules/html5-polyfills/README.md b/modules/html5-polyfills/README.md new file mode 100644 index 0000000000..2493b09dd8 --- /dev/null +++ b/modules/html5-polyfills/README.md @@ -0,0 +1,32 @@ +# Polyfills + +> A way of getting the browser to behave and support the latest specifications. + +This is my own collection of code snippets that support different native features of browsers using JavaScript (and if required, Flash in some cases). + +## Component Installation + +You can install polyfills using component: + +``` +component install remy/polyfills +``` + +If you'd like to include all polyfills (except device motion), you can just: + +``` +require( 'polyfills' ); +``` + +If you'd only like a specific polyfill, you can require indivual ones like this: + +``` +require( 'polyfills/classList' ); + +// now we can use classList in lots of browsers! +element.classList.add( 'foo' ); +``` + +# License + +License: http://rem.mit-license.org diff --git a/modules/html5-polyfills/Storage.js b/modules/html5-polyfills/Storage.js new file mode 100644 index 0000000000..f2d79e543c --- /dev/null +++ b/modules/html5-polyfills/Storage.js @@ -0,0 +1,96 @@ +if (typeof window.localStorage == 'undefined' || typeof window.sessionStorage == 'undefined') (function () { + +var Storage = function (type) { + function createCookie(name, value, days) { + var date, expires; + + if (days) { + date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + expires = "; expires="+date.toGMTString(); + } else { + expires = ""; + } + document.cookie = name+"="+value+expires+"; path=/"; + } + + function readCookie(name) { + var nameEQ = name + "=", + ca = document.cookie.split(';'), + i, c; + + for (i=0; i < ca.length; i++) { + c = ca[i]; + while (c.charAt(0)==' ') { + c = c.substring(1,c.length); + } + + if (c.indexOf(nameEQ) == 0) { + return c.substring(nameEQ.length,c.length); + } + } + return null; + } + + function setData(data) { + data = JSON.stringify(data); + if (type == 'session') { + window.name = data; + } else { + createCookie('localStorage', data, 365); + } + } + + function clearData() { + if (type == 'session') { + window.name = ''; + } else { + createCookie('localStorage', '', 365); + } + } + + function getData() { + var data = type == 'session' ? window.name : readCookie('localStorage'); + return data ? JSON.parse(data) : {}; + } + + + // initialise if there's already data + var data = getData(); + + return { + length: 0, + clear: function () { + data = {}; + this.length = 0; + clearData(); + }, + getItem: function (key) { + return data[key] === undefined ? null : data[key]; + }, + key: function (i) { + // not perfect, but works + var ctr = 0; + for (var k in data) { + if (ctr == i) return k; + else ctr++; + } + return null; + }, + removeItem: function (key) { + delete data[key]; + this.length--; + setData(data); + }, + setItem: function (key, value) { + data[key] = value+''; // forces the value to a string + this.length++; + setData(data); + } + }; +}; + +if (typeof window.localStorage == 'undefined') window.localStorage = new Storage('local'); +if (typeof window.sessionStorage == 'undefined') window.sessionStorage = new Storage('session'); + +})(); diff --git a/modules/html5-polyfills/bower.json b/modules/html5-polyfills/bower.json new file mode 100644 index 0000000000..bd7c2b35a9 --- /dev/null +++ b/modules/html5-polyfills/bower.json @@ -0,0 +1,22 @@ +{ + "name": "html5-polyfills", + "description": "Collection of polyfills by Remy Sharp", + "homepage": "https://github.com/remy/polyfills", + "keywords": [ + "polyfill", + "client", + "browser" + ], + "author": { + "name": "Remy Sharp", + "email": "remy@leftlogic.com" + }, + "version": "0.0.20130621", + "readme": "This is my own collection of code snippets that support different native features of browsers using JavaScript (and if required, Flash in some cases).", + "readmeFilename": "README.md", + "_id": "html5-polyfills@0.0.20130621", + "repository": { + "type": "git", + "url": "git://github.com/remy/polyfills.git" + } +} \ No newline at end of file diff --git a/modules/html5-polyfills/classList.js b/modules/html5-polyfills/classList.js new file mode 100644 index 0000000000..47eddeec3b --- /dev/null +++ b/modules/html5-polyfills/classList.js @@ -0,0 +1,70 @@ +(function () { + +if (typeof window.Element === "undefined" || "classList" in document.documentElement) return; + +var prototype = Array.prototype, + push = prototype.push, + splice = prototype.splice, + join = prototype.join; + +function DOMTokenList(el) { + this.el = el; + // The className needs to be trimmed and split on whitespace + // to retrieve a list of classes. + var classes = el.className.replace(/^\s+|\s+$/g,'').split(/\s+/); + for (var i = 0; i < classes.length; i++) { + push.call(this, classes[i]); + } +}; + +DOMTokenList.prototype = { + add: function(token) { + if(this.contains(token)) return; + push.call(this, token); + this.el.className = this.toString(); + }, + contains: function(token) { + return this.el.className.indexOf(token) != -1; + }, + item: function(index) { + return this[index] || null; + }, + remove: function(token) { + if (!this.contains(token)) return; + for (var i = 0; i < this.length; i++) { + if (this[i] == token) break; + } + splice.call(this, i, 1); + this.el.className = this.toString(); + }, + toString: function() { + return join.call(this, ' '); + }, + toggle: function(token) { + if (!this.contains(token)) { + this.add(token); + } else { + this.remove(token); + } + + return this.contains(token); + } +}; + +window.DOMTokenList = DOMTokenList; + +function defineElementGetter (obj, prop, getter) { + if (Object.defineProperty) { + Object.defineProperty(obj, prop,{ + get : getter + }); + } else { + obj.__defineGetter__(prop, getter); + } +} + +defineElementGetter(Element.prototype, 'classList', function () { + return new DOMTokenList(this); +}); + +})(); diff --git a/modules/html5-polyfills/component.json b/modules/html5-polyfills/component.json new file mode 100644 index 0000000000..73c2261a7f --- /dev/null +++ b/modules/html5-polyfills/component.json @@ -0,0 +1,16 @@ +{ + "name": "polyfills", + "scripts": [ + "classList.js", + "dataset.js", + "device-motion-polyfill.js", + "EventSource.js", + "index.js", + "input-target.js", + "offline-events.js", + "range.js", + "sessionStorage.js", + "Storage.js" + ], + "main": "index.js" +} \ No newline at end of file diff --git a/modules/html5-polyfills/dataset.js b/modules/html5-polyfills/dataset.js new file mode 100644 index 0000000000..8b3d6e5d71 --- /dev/null +++ b/modules/html5-polyfills/dataset.js @@ -0,0 +1,57 @@ +(function () { + var forEach = [].forEach, + regex = /^data-(.+)/, + dashChar = /\-([a-z])/ig, + el = document.createElement('div'), + mutationSupported = false, + match + ; + + function detectMutation() { + mutationSupported = true; + this.removeEventListener('DOMAttrModified', detectMutation, false); + } + + function toCamelCase(s) { + return s.replace(dashChar, function (m,l) { return l.toUpperCase(); }); + } + + function updateDataset() { + var dataset = {}; + forEach.call(this.attributes, function(attr) { + if (match = attr.name.match(regex)) + dataset[toCamelCase(match[1])] = attr.value; + }); + return dataset; + } + + // only add support if the browser doesn't support data-* natively + if (el.dataset != undefined) return; + + el.addEventListener('DOMAttrModified', detectMutation, false); + el.setAttribute('foo', 'bar'); + + function defineElementGetter (obj, prop, getter) { + if (Object.defineProperty) { + Object.defineProperty(obj, prop,{ + get : getter + }); + } else { + obj.__defineGetter__(prop, getter); + } + } + + defineElementGetter(Element.prototype, 'dataset', mutationSupported + ? function () { + if (!this._datasetCache) { + this._datasetCache = updateDataset.call(this); + } + return this._datasetCache; + } + : updateDataset + ); + + document.addEventListener('DOMAttrModified', function (event) { + delete event.target._datasetCache; + }, false); +})(); diff --git a/modules/html5-polyfills/device-motion-polyfill.js b/modules/html5-polyfills/device-motion-polyfill.js new file mode 100644 index 0000000000..b0ef4a551b --- /dev/null +++ b/modules/html5-polyfills/device-motion-polyfill.js @@ -0,0 +1,253 @@ +/** + * DeviceMotion and DeviceOrientation polyfill + * by Remy Sharp / leftlogic.com + * MIT http://rem.mit-license.org + * + * Usage: used for testing motion events, include + * script in head of test document and allow popup + * to open to control device orientation. + */ +(!document.DeviceOrientationEvent || !document.DeviceMotionEvent) && (function () { + +// thankfully we don't have to do anything, because the event only fires on the window object +var polyfill = { + motion: !document.DeviceMotionEvent, + orientation: !document.DeviceOrientationEvent +}; + +if (polyfill.orientation) window.DeviceOrientationEvent = function () {}; + +if (polyfill.motion) window.DeviceMotionEvent = function () {}; + +// images - yes I do like to be self contained don't I?! :) +var imageSrc = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAACpCAYAAABEbEGLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODkwMDQ2NTNDNEYxMUUxQTYyOTk2M0QwMjU4OThGOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODkwMDQ2NjNDNEYxMUUxQTYyOTk2M0QwMjU4OThGOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4OTAwNDYzM0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4OTAwNDY0M0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jKamsAAAAtNJREFUeNrs2t1t01AYgGG3dACPkA3qEcIlV5QJSCdAnaAwAWKCsgFs0HQChwmaS+6SThCOKwuigtP4J+ln9LzSRyWaRMmTE8fHcJLt3yRNkeY8U9VDmkWa+ZAPOktTptmYf84qzU29GDtXQG49111XM7xuUy3QfF/oa2DHAbeijwReABp8vjVh+zI8zFw4fBxv7q3qF1jdp1s7Qx2ut9UfZ0Gh+26BJ313dANXRDuvXg38xuf1NjrKoeTxMBKlq/rCzlCt01zWP0N0GujjtjzQ4y4iYS+DPJd8ZI/bCTtKHw7wmLNIJwBngbCn9QZgOcDZSF4/XqgzrUjY26ds0//xZPs0E2zYgg1bsGHDFuwRt2sHOcfTqSJruPi1C/s1t07dZg2XGxxGHLNhCzZswYYNW7BhCzZs2IINW7BhCzZs2IINW7BhwxZs2IINW7BhwxZs2IING7ZgwxZs2IING7ZgwxZs2LAFG7Zgw4Yt2LAFG7Zgw4Yt2LAFGzZswYYt2LAFGzZswYYt2LBhCzZswYYt2LBhCzZswYYNW7BhCzZs2IINW7BhCzZs2IINW7BhwxZs2IIdvbMdv7vG06lJF+yP3BxGYAs2bGcj8VukmadZb/1dkWaaJh/Li6hO8TaB57YGbSofwWvYjAH7psWiqd6QVWTsyMfsr2kuW9x+3vL2viDrlmmuOtzve/0mwW7RlydfhG36BLv9Cu3zqVjCbgf2kve3qRl5OezjtY6KPXnh+x/sMPIj4POa9oSOhr3YfnLRdlv3PV7YTfSdcBnwCX7uAF0E3apfbD/JWdAnOWsJvRrLp7TM4l6Meu4S6kXgi1C/V/XJk5VRRj1tqq953GV/X89+X/+MuhN+1/TLqIeTMU759BP5quEUZZqp7+WCN2l+7nNjK3zAFb3vt3sJr9X0/l9kM+g7Z1WfMT27az1puQ2uVvu5Q/JjD9mff/Hfq18CDADFyFpnRW9JPwAAAABJRU5ErkJggg=='; + +var imageBackSrc = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAACpCAIAAADLDtbcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFCRTMwQTNDNjMxMUUxQTYyOTk2M0QwMjU4OThGOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFCRTMwQjNDNjMxMUUxQTYyOTk2M0QwMjU4OThGOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4OTAwNDZCM0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4OTAwNDZDM0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zWf2VgAABt9JREFUeNrsnU1P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'; + +var id = (+new Date).toString(32), + body = document.documentElement, // yep - cheatin' Yud'up! :) + height = 320; + +// if the url hash doesn't contain tiltremote (our key) then fireup the popup, else we are the popup +if (window.location.hash.indexOf('tiltremote') === -1) { + initServer(); +} else { + initRemote(); +} + +function initServer() { + // old way didn't work. Shame, but I like the new way too :) + // var remote = window.open('data:text/html,', 'Tilt', 'width=300,height=' + height); + + var remote = window.open(window.location.toString() + '#tiltremote', 'Tilt', 'width=300,height=' + height); + if (!remote) { + alert('The remote control for the orientation event uses a popup') + } + + // TODO add remote-tilt.com support +} + +function initRemote() { + var TO_RADIANS = Math.PI / 180; + orientation = { + alpha: 180, + beta: 0, + gamma: 0 + }, + accelerationIncludingGravity = { x: 0, y: 0, z: -9.81 }, + guid = (+new Date).toString(32); + + function update(fromInput) { + var preview = document.getElementById('preview'); + preview.style.webkitTransform = 'rotateY('+ gamma.value + 'deg) rotate3d(1,0,0, '+ (beta.value*-1) + 'deg)'; + preview.parentNode.style.webkitTransform = 'rotate(' + (180-orientation.alpha) + 'deg)'; + + if (!fromInput) { + for (var key in orientation) { + var el = document.getElementById(key); + oninput.call(window, { target: el }); + } + } + + fireEvent(); + } + + function fireDeviceOrienationEvent() { + var event = document.createEvent('HTMLEvents'); + event.initEvent('deviceorientation', true, true); + event.eventName = 'deviceorientation'; + event.alpha = orientation.alpha; + event.beta = orientation.beta; + event.gamma = orientation.gamma; + + window.opener.dispatchEvent(event); + } + + function fireDeviceMotionEvent() { + var event = document.createEvent('HTMLEvents'); + event.initEvent('devicemotion', true, true); + event.eventName = 'devicemotion'; + + event.accelerationIncludingGravity = {}; + event.accelerationIncludingGravity.x = accelerationIncludingGravity.x; + event.accelerationIncludingGravity.y = accelerationIncludingGravity.y; + event.accelerationIncludingGravity.z = accelerationIncludingGravity.z; + + window.opener.dispatchEvent(event); + } + + function fireEvent() { + if (polyfill.orientation) fireDeviceOrienationEvent(); + if (polyfill.motion) fireDeviceMotionEvent(); + } + + // hides the old body - but doesn't prevent the JavaScript from running. + // just a clean up thing - lame, but tidier + setTimeout(function () { + var bodies = document.getElementsByTagName('body'), + body = bodies[1]; + if (bodies.length == 2) { + if (body.id == guid) body = bodies[0]; + } + document.documentElement.removeChild(body); + }); + + body.innerHTML = ['Motion Emulator', + '', + '', + '', + '
    ', + '', + '', + '', + '', + '
    ', + '
    ', + '
    ', // end of controls + '
    ', + '
    ', + '
    ', + '
    ', + '
    ', + '
    ', + 'south', + '' + ].join(''); + + function oninput(event) { + var target = event.target; + if (target.nodeName == 'INPUT') { + + var value = target.value * 1; + + if (target.id == 'beta') { + // parseFloat + toFixed avoids the massive 0.00000000 and infinitely small numbers + accelerationIncludingGravity.z = parseFloat( (Math.sin( (TO_RADIANS * (value - 90))) * 9.81).toFixed(10) ); + accelerationIncludingGravity.y = parseFloat((Math.sin( (TO_RADIANS * (value - 180))) * 9.81).toFixed(10)); + value = parseFloat((Math.sin(value * TO_RADIANS) * 90).toFixed(10)); + } else if (target.id == 'gamma') { + accelerationIncludingGravity.x = parseFloat( (Math.sin( (TO_RADIANS * (value - 180))) * -9.81).toFixed(10) ); + } + + document.getElementById('o' + target.id.substring(0, 1)).value = parseFloat(value.toFixed(2)); + + orientation[target.id] = value; + + if (this !== window) update(true); // i.e. if not called manually + } + } + + body.addEventListener('input', oninput, false); + + var down = false, + last = { x: null, y: null }, + pov = document.getElementById('pov'), + alpha = document.getElementById('alpha'), + beta = document.getElementById('beta'), + gamma = document.getElementById('gamma'); + + pov.addEventListener('mousedown', function (event) { + down = true; + last.x = event.pageX; + last.y = event.pageY; + event.preventDefault(); + }, false); + + body.addEventListener('mousemove', function (event) { + if (down) { + var dx = (last.x - event.pageX)// * 0.1, + dy = (last.y - event.pageY); // * 0.1; + last.x = event.pageX; + last.y = event.pageY; + gamma.value -= dx; + beta.value -= dy; + update(); + } + }, false); + + body.addEventListener('mouseup', function (event) { + down = false; + }, false); + + body.addEventListener('click', function (event) { + var target = event.target; + if (target.nodeName == 'BUTTON') { + if (target.id == 'flat') { + alpha.value = 180; + beta.value = 0; + gamma.value = 0; + + } + update(); + } else if (target.id == 'wobble') { + if (target.checked) startShake(); + else stopShake(); + } + }, false); + + function startShake() { + shake = setInterval(function () { + alpha.value = parseFloat(alpha.value) + (Math.random() * (Math.random() < 0.5 ? 1 : -1) * 0.05); + beta.value = parseFloat(beta.value) + (Math.random() * (Math.random() < 0.5 ? 1 : -1) * 0.05); + gamma.value = parseFloat(gamma.value) + (Math.random() * (Math.random() < 0.5 ? 1 : -1) * 0.05); + update(); + }, 100); + } + + function stopShake() { + clearInterval(shake); + } + + update(); +} + +})(); + + + + + + + + + + + + + + + + diff --git a/modules/html5-polyfills/index.js b/modules/html5-polyfills/index.js new file mode 100644 index 0000000000..782dee325d --- /dev/null +++ b/modules/html5-polyfills/index.js @@ -0,0 +1,8 @@ +require( "./classList.js" ); +require( "./dataset.js" ); +require( "./EventSource.js" ); +require( "./input-target.js" ); +require( "./offline-events.js" ); +require( "./range.js" ); +require( "./sessionStorage.js" ); +require( "./Storage.js" ); \ No newline at end of file diff --git a/modules/html5-polyfills/input-target.js b/modules/html5-polyfills/input-target.js new file mode 100644 index 0000000000..8a907eeed7 --- /dev/null +++ b/modules/html5-polyfills/input-target.js @@ -0,0 +1,42 @@ +(function () { + +// setup for detection +var form = document.createElement('form'), + input = document.createElement('input'), + body = document.body, + id = 'f' + +new Date, + inputTargetSupported = false; + +// insert into DOM, work out if it's supported +form.setAttribute('id', id); +input.setAttribute('form', id); +body.appendChild(form); +body.appendChild(input); + +inputTargetSupported = input.form !== null; +body.removeChild(form); +body.removeChild(input); + +// if not, hook click handlers to all existing submit elements +function click(event) { + event = event || window.event; + + // http://www.quirksmode.org/js/events_properties.html#target + var target = event.target || event.srcElement; + if (target.nodeType === 3) target = target.parentNode; + + if (target.nodeName === 'INPUT' && target.type === 'submit' && target.form === null) { + form = document.getElementById(target.getAttribute('form')); + var clone = target.cloneNode(true); + clone.style.display = 'none'; + form.appendChild(clone); + clone.click(); // doing this because form.submit won't fire handles the way I want + form.removeChild(clone); + } +} + +if (!inputTargetSupported) { + body.addEventListener ? body.addEventListener('click', click, false) : body.attachEvent('onclick', click); +} + +})(); diff --git a/modules/html5-polyfills/offline-events.js b/modules/html5-polyfills/offline-events.js new file mode 100644 index 0000000000..fa1db11372 --- /dev/null +++ b/modules/html5-polyfills/offline-events.js @@ -0,0 +1,47 @@ +// Working demo: http://jsbin.com/ozusa6/2/ +(function () { + +function triggerEvent(type) { + var event = document.createEvent('HTMLEvents'); + event.initEvent(type, true, true); + event.eventName = type; + (document.body || window).dispatchEvent(event); +} + +function testConnection() { + // make sync-ajax request + var xhr = new XMLHttpRequest(); + // phone home + xhr.open('HEAD', '/', false); // async=false + try { + xhr.send(); + onLine = true; + } catch (e) { + // throws NETWORK_ERR when disconnected + onLine = false; + } + + return onLine; +} + +var onLine = true, + lastOnLineStatus = true; + +// note: this doesn't allow us to define a getter in Safari +navigator.__defineGetter__("onLine", testConnection); +testConnection(); + +if (onLine === false) { + lastOnLineStatus = false; + // trigger offline event + triggerEvent('offline'); +} + +setInterval(function () { + testConnection(); + if (onLine !== lastOnLineStatus) { + triggerEvent(onLine ? 'online' : 'offline'); + lastOnLineStatus = onLine; + } +}, 5000); // 5 seconds, made up - can't find docs to suggest interval time +})(); diff --git a/modules/html5-polyfills/range.js b/modules/html5-polyfills/range.js new file mode 100644 index 0000000000..5dcfbfae03 --- /dev/null +++ b/modules/html5-polyfills/range.js @@ -0,0 +1,94 @@ +/** + * This was from a proposal that James Edwards / Brothercake had during + * 2011 Highland Fling - to use select elements as a starting point for + * the range element - so it's a pretty darn good fit, I put this together + * during his Q&A. In the end I needed to lift the detection code from + * Modernizr - which credit really goes to @miketaylr. + * My code starts from "if (bool) {" + * + * This code is looking for +// into a range element. +if (bool) { + function firstChild(el, nodeName) { + nodeName = nodeName.toUpperCase(); + if (el.firstChild.nodeName === nodeName) { + return el.firstChild; + } else { + return el.firstChild.nextSibling; + } + } + + function lastChild(el, nodeName) { + nodeName = nodeName.toUpperCase(); + if (el.lastChild.nodeName === nodeName) { + return el.lastChild; + } else { + return el.lastChild.previousSibling; + } + } + + var selects = document.getElementsByTagName('select'), + i = 0; + + for (; i < selects.length; i++) { + if (selects[i].getAttribute('data-type') == 'range') (function (select) { + var range = document.createElement('input'), + parent = select.parentNode; + + range.setAttribute('type', 'range'); + // works with the select element removed from the DOM + select = parent.replaceChild(range, select); + range.autofocus = select.autofocus; + range.disabled = select.disabled; + range.autocomplete = select.autocomplete; // eh? how would this even work? + range.className = select.className; + range.id = select.id; + range.style = select.style; + range.tabindex = select.tabindex; + range.title = select.title; + range.min = firstChild(select, 'option').value; + range.max = lastChild(select, 'option').value; + range.value = select.value; + range.name = select.name; + // Add step support + if ( select.getAttribute('data-type-range-step') ) { + range.step = select.getAttribute('data-type-range-step'); + } + // yeah, this is filth, but it's because getElementsByTagName is + // a live DOM collection, so when we removed the select element + // the selects object reduced in length. Freaky, eh? + i--; + })(selects[i]); + } +} +}(); diff --git a/modules/html5-polyfills/sessionStorage.js b/modules/html5-polyfills/sessionStorage.js new file mode 100644 index 0000000000..03ff5a036b --- /dev/null +++ b/modules/html5-polyfills/sessionStorage.js @@ -0,0 +1,23 @@ +if (!sessionStorage && JSON) { + sessionStorage = (function () { + var data = window.name ? JSON.parse(window.name) : {}; + + return { + clear: function () { + data = {}; + window.name = ''; + }, + getItem: function (key) { + return data[key] === undefined ? null : data[key]; + }, + removeItem: function (key) { + delete data[key]; + window.name = JSON.stringify(data); + }, + setItem: function (key, value) { + data[key] = value; + window.name = JSON.stringify(data); + } + }; + })(); +} diff --git a/modules/html5-polyfills/tests/eventsource.html b/modules/html5-polyfills/tests/eventsource.html new file mode 100644 index 0000000000..ce272fceb7 --- /dev/null +++ b/modules/html5-polyfills/tests/eventsource.html @@ -0,0 +1,22 @@ + + + + +event source test + + + + + + \ No newline at end of file diff --git a/modules/html5-polyfills/tests/offline-events.html b/modules/html5-polyfills/tests/offline-events.html new file mode 100644 index 0000000000..aacf418c7c --- /dev/null +++ b/modules/html5-polyfills/tests/offline-events.html @@ -0,0 +1,35 @@ + + + +Online and offline event tests + + + +

    Directions: disconnect the internet connection from your machine and watch the status switch from online to offline (and back again if you want to see the online event fire).

    +

    Note that this polyfill phones home so it will also fire the offline event if the server this script is hosted on, goes down (feature or bug? who knows!).

    +

    ONLINE

    + + + + + diff --git a/modules/html5-polyfills/tests/range.html b/modules/html5-polyfills/tests/range.html new file mode 100644 index 0000000000..1ce1e0f272 --- /dev/null +++ b/modules/html5-polyfills/tests/range.html @@ -0,0 +1,44 @@ + + + +range polyfill... + + +
    + +
    +
    + +
    + +
    +

    Last two examples are as the previous, but add data-type-range-step="5":

    + +
    +

    This one has the last value set to 51, instead of 50:

    + + + + \ No newline at end of file From 256cf20ab6bd265c0cec614d37d018a7c7c97125 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 09:27:15 -0400 Subject: [PATCH 0240/3805] chore(bower) html5-polyfills --- modules/html5-polyfills/.bower.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/html5-polyfills/.bower.json b/modules/html5-polyfills/.bower.json index 3292443f57..7d775347f4 100644 --- a/modules/html5-polyfills/.bower.json +++ b/modules/html5-polyfills/.bower.json @@ -1,5 +1,5 @@ -{ sdfljsdlfjsdf lsdjflsdjflsdj ------- sdfjsdlfjdsljf - "name": "html5-polyfills", sldjflsdjf lsdfjlsdjf +{ + "name": "html5-polyfills", "description": "Collection of polyfills by Remy Sharp", "homepage": "https://github.com/remy/polyfills", "keywords": [ From 9ac3eeb332b76d6a842a43889c3423e54a31d612 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 09:28:17 -0400 Subject: [PATCH 0241/3805] feature(util) exec.with: arguments[0] -> slice.call(arguments) --- lib/util.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/util.js b/lib/util.js index 7dd058a695..815f7d1975 100644 --- a/lib/util.js +++ b/lib/util.js @@ -273,13 +273,9 @@ */ exec.with = function(callback) { - var result, - bind = Function.bind; - - arguments[0] = null; - result = bind.apply(callback, arguments); + var args = [].slice.call(arguments, 1); - return result; + return callback.bind(null, args); }; /** From 2bfb7bb04b552fbf0753b3e708c41d42fa721fd5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 09:38:51 -0400 Subject: [PATCH 0242/3805] chore(rest) rm " " --- lib/client/rest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/rest.js b/lib/client/rest.js index 7a54b61584..f8920ab13e 100644 --- a/lib/client/rest.js +++ b/lib/client/rest.js @@ -197,7 +197,7 @@ var Util, DOM, CloudFunc, CloudCmd; setTimeout(function() { DOM.Dialog.alert(text); }, 100); - }, + }, success : function(data) { Images.hide(); From bd5ae84ba908591bb542c200716860086761d784 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 09:39:14 -0400 Subject: [PATCH 0243/3805] fix(util) check: isEmpty --- lib/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/util.js b/lib/util.js index 815f7d1975..353f86bc3c 100644 --- a/lib/util.js +++ b/lib/util.js @@ -34,7 +34,7 @@ lenArgs = args.length, lessArgs = lenArgs < lenNames, emptyIndex = indexOf.call(args), - isEmpty = ~emptyIndex; + isEmpty = ~emptyIndex && emptyIndex <= lenNames - 1; if (lessArgs || isEmpty) { if (lessArgs) From 0020afcf92c5191b10c8376f92eda9b6e62f8d9e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 09:47:06 -0400 Subject: [PATCH 0244/3805] feature(util) exec.with: callback.bind -> bind.apply --- lib/util.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/util.js b/lib/util.js index 353f86bc3c..430e556b73 100644 --- a/lib/util.js +++ b/lib/util.js @@ -271,11 +271,13 @@ /* * return function that calls callback with arguments */ - exec.with = function(callback) { - var args = [].slice.call(arguments, 1); + var args = [].slice.call(arguments), + bind = Function.prototype.bind; + + args[0] = null; - return callback.bind(null, args); + return bind.apply(callback, args); }; /** From e2d4a95c44cc5d9bf0a7c027aec8aa7afc4611d1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 10:15:49 -0400 Subject: [PATCH 0245/3805] feature(bower) add domtokenlist-shim --- bower.json | 2 +- gulpfile.js | 5 +- lib/client/cloudcmd.js | 1 + modules/domtokenlist-shim/.bower.json | 40 + modules/domtokenlist-shim/bower.json | 29 + .../domtokenlist-shim/browserstack-logo.svg | 12954 ++++++++++++++++ .../domtokenlist-shim/dist/domtokenlist.js | 215 + .../dist/domtokenlist.min.js | 2 + modules/html5-polyfills/.bower.json | 31 - modules/html5-polyfills/EventSource.js | 186 - modules/html5-polyfills/MIT-LICENCE.txt | 21 - modules/html5-polyfills/README.md | 32 - modules/html5-polyfills/Storage.js | 96 - modules/html5-polyfills/bower.json | 22 - modules/html5-polyfills/classList.js | 70 - modules/html5-polyfills/component.json | 16 - modules/html5-polyfills/dataset.js | 57 - .../html5-polyfills/device-motion-polyfill.js | 253 - modules/html5-polyfills/index.js | 8 - modules/html5-polyfills/input-target.js | 42 - modules/html5-polyfills/offline-events.js | 47 - modules/html5-polyfills/range.js | 94 - modules/html5-polyfills/sessionStorage.js | 23 - .../html5-polyfills/tests/eventsource.html | 22 - .../html5-polyfills/tests/offline-events.html | 35 - modules/html5-polyfills/tests/range.html | 44 - 26 files changed, 13243 insertions(+), 1104 deletions(-) create mode 100644 modules/domtokenlist-shim/.bower.json create mode 100644 modules/domtokenlist-shim/bower.json create mode 100644 modules/domtokenlist-shim/browserstack-logo.svg create mode 100644 modules/domtokenlist-shim/dist/domtokenlist.js create mode 100644 modules/domtokenlist-shim/dist/domtokenlist.min.js delete mode 100644 modules/html5-polyfills/.bower.json delete mode 100644 modules/html5-polyfills/EventSource.js delete mode 100644 modules/html5-polyfills/MIT-LICENCE.txt delete mode 100644 modules/html5-polyfills/README.md delete mode 100644 modules/html5-polyfills/Storage.js delete mode 100644 modules/html5-polyfills/bower.json delete mode 100644 modules/html5-polyfills/classList.js delete mode 100644 modules/html5-polyfills/component.json delete mode 100644 modules/html5-polyfills/dataset.js delete mode 100644 modules/html5-polyfills/device-motion-polyfill.js delete mode 100644 modules/html5-polyfills/index.js delete mode 100644 modules/html5-polyfills/input-target.js delete mode 100644 modules/html5-polyfills/offline-events.js delete mode 100644 modules/html5-polyfills/range.js delete mode 100644 modules/html5-polyfills/sessionStorage.js delete mode 100644 modules/html5-polyfills/tests/eventsource.html delete mode 100644 modules/html5-polyfills/tests/offline-events.html delete mode 100644 modules/html5-polyfills/tests/range.html diff --git a/bower.json b/bower.json index 24aab1e188..9906ebcf5b 100644 --- a/bower.json +++ b/bower.json @@ -29,6 +29,6 @@ "rendy": "~1.1.0", "github": "~0.10.6", "vk-openapi": "~0.0.1", - "html5-polyfills": "*" + "domtokenlist-shim": "~1.1.0" } } diff --git a/gulpfile.js b/gulpfile.js index 793c1f5ad8..30c8466296 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -21,10 +21,7 @@ LIB + '*.js', LIB_CLIENT + '/*.js', LIB_CLIENT + 'storage/*.js', - LIB_SERVER + '/**/*.js', - '!' + LIB + 'diff/diff-match-patch.js', - '!' + LIB + 'promise.js', - '!' + LIB_CLIENT + 'jquery.js' + LIB_SERVER + '/**/*.js' ]; gulp.task('release', function() { diff --git a/lib/client/cloudcmd.js b/lib/client/cloudcmd.js index e98b762a16..58240272cd 100644 --- a/lib/client/cloudcmd.js +++ b/lib/client/cloudcmd.js @@ -30,6 +30,7 @@ var CloudCmd; moduleFiles = [ 'promise-polyfill/Promise', + 'domtokenlist-shim/dist/domtokenlist', 'format-io/lib/format', 'rendy/lib/rendy', ].map(function(name) { diff --git a/modules/domtokenlist-shim/.bower.json b/modules/domtokenlist-shim/.bower.json new file mode 100644 index 0000000000..c42ec076ba --- /dev/null +++ b/modules/domtokenlist-shim/.bower.json @@ -0,0 +1,40 @@ +{ + "name": "domtokenlist-shim", + "description": "A super strict shim/polyfill for DOMTokenList", + "main": "dist/domtokenlist.js", + "license": "MIT", + "ignore": [ + "**/.*", + "*.json", + "*.md", + "gulpfile.js", + "src", + "tests", + "node_modules", + "bower_components", + "test" + ], + "keywords": [ + "classlist", + "domtokenlist", + "polyfill", + "rellist", + "shim" + ], + "authors": [ + "Jonathan Wilsson ", + "Bogdan Chadkin " + ], + "homepage": "https://github.com/jwilsson/domtokenlist", + "version": "1.1.0", + "_release": "1.1.0", + "_resolution": { + "type": "version", + "tag": "1.1.0", + "commit": "61eb3d90801480205a2b994ff535e60f14c65ce6" + }, + "_source": "git://github.com/jwilsson/domtokenlist.git", + "_target": "~1.1.0", + "_originalSource": "domtokenlist-shim", + "_direct": true +} \ No newline at end of file diff --git a/modules/domtokenlist-shim/bower.json b/modules/domtokenlist-shim/bower.json new file mode 100644 index 0000000000..938c8b1053 --- /dev/null +++ b/modules/domtokenlist-shim/bower.json @@ -0,0 +1,29 @@ +{ + "name": "domtokenlist-shim", + "description": "A super strict shim/polyfill for DOMTokenList", + "main": "dist/domtokenlist.js", + "license": "MIT", + "ignore": [ + "**/.*", + "*.json", + "*.md", + "gulpfile.js", + "src", + "tests", + "node_modules", + "bower_components", + "test" + ], + "keywords": [ + "classlist", + "domtokenlist", + "polyfill", + "rellist", + "shim" + ], + "authors": [ + "Jonathan Wilsson ", + "Bogdan Chadkin " + ], + "homepage": "https://github.com/jwilsson/domtokenlist" +} diff --git a/modules/domtokenlist-shim/browserstack-logo.svg b/modules/domtokenlist-shim/browserstack-logo.svg new file mode 100644 index 0000000000..0f24cc338b --- /dev/null +++ b/modules/domtokenlist-shim/browserstack-logo.svg @@ -0,0 +1,12954 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eJzsveuuHMl1LvgE+Q41PwxIB2Yp4x6pMQzs2hePZnSDWpZtGAcNir3V4jGbbLDZ8tE8/Xzfiois +zFhR+9KkNDJMJtQiq7Iy47JirW/d/+7/+PUXL66+evf7+xfuOB+mv/u76/f3Lz+8e//Tg3x6+Nmb +N99/9+E9P/rRb358MOk446arn+Uv642/u3//3et3b3/Kr4x8ecdf/+jq22/f3P/48KMf45Pfvv7w +5h6f/fzd1++O3371hx+39+CHNy8/4CsTfzL7nxh/MD81y+HXv+ANL9/+6eV3373+f+Vrlx0+O737 +/u1Xr99+fXr3v/Ghy4cXwflDdMvhhckRN/xfr39z/11/19FYE2yI1jsT+RN3zGZxyxySzUvA7/Mx +p2z9vCR+Ig874muzmJDmmAKefPPu1fff3L/98Ov3717df/fd9bs3795/99PD9Z9fvj384uXX+Obl +4d/u37x595+H05uXr/5jwiKFL+9ev7nHenzz8gMGwtW5+pmxX56+f/3mq19+/83v77FSNjl+7L6U +R/7zd3gWHsu/8+P05c++wSdf3H/4gBnhhVzh61/82/+zHQdmWa8f/ftv7r9+LRuGtf2fP65Pfv/u +229evv+P77hL/mhdios3S16cObxwJhydcSablM1ssZyzPaZoHdbDZuPs4YW1GLs1M36RljjX8f72 +/ptv32D3ZJndEo8BD5v5f9t/1HuxDnLfC+OPfsGfOefoY/bYD5+PMSbjZ5dnBxpIMR/DjD+LMS5g +AGY+OmdzWKJZYo6mPPO8I/d/en3/nz89/PLd2/uy7FfvP3xRCMf7eS7/Ld/85vs39+//+e3rD1iL +yI+Wsu6/ePfV/Rtsxvr7uzcvZbnlMuf/lht++/L91/cfQGvv3nz/Qcg/tzdgX3/+8s/3JA5TXvCr +b+/f/vbd72SML5w9+rgkY0HR+P/EFcGhmn2cjXPOLDgDR0f6zKBAUCnOA3YHVBrxlyyDSPg/Lstm +dGY7Or6Qr2vjSKCZX4OKfvX+9dev3/50mQ8v0mwLef3T+9dfnakLT83lP/K4Y57ljzGLnRe7PPWT +Rf6kaEI23j7lk7JSWPQPH+7f1pXDSbn+xYby5+MvvsBMbt9+df3uG+78d2QJoPe3OAxv3n1dvlv/ +Lt/g599/W1ZF/v0liOTX71+/5TOnX8o3+ctfv/keX/3T+3fff/uzt394N/2o8L7f3b8CgwMdfXX4 +1e//F/4Bdian8fDb9y9f4QH493rP8eXrb3/84OMwuff3h/Ilfin/bP//+K9v7v8APnL+efn09u2f +7t+8+3bz2PWTl2+/OvzLy/ffPv7oX795+fbl+4N8vj7556//hG9eYqXOzz5/9oSHgvK+xeLIT+SW +7gUP3LD56gkvevnhj2C592+/+m59dvnnfuDls8ef98Ur0uD7w+n999/98fDbd+/erI/df7U+vX4s +n/L+v413/Fp+8PZXb8sC6TfVG/o3gff9zb0Fd19+A778W3769cs3b15//f7lt398/Wr0gsH365vK +d88hrD9/8/t3b15/982Znjaf/Prl+w+vX725/+LP3324/+bJm3u4/eo1mNyFY/zgPV/858sPr/74 +89e/f//y/ev7B08fN+APr99+Bdr/4vvXH+7PC/Tum2+J6A5f/PHlt/cyjQ9/vJM7v1gfGL4E698y +9xcvJnM4vd2w/n96//Kr15AaAKL//Pbty2/A1r+uHx2M/fE0/BRy0B5OX03/Pv3DlJaUU0rAg8kn +lwyg4V28jTfxOp7iVSQ0STHGAFzjoo0mzuEu3IabcB1O4SosIYcUYgjBBwc8aqYw+zt/62/89fSP +03z4uy9P7/Gi+Yinm7lI9XgIFPH4CqLvy9FXp+/wC7vENLvzx2be/Gb0JX51ulkXri3NA4LSzhdX +8+4l0fbhi//4MxZx8w+8sa4dxD2nNc1YReCkf8TWrJPNAANewAZRhCtARk/i4dtkEdZbBA31Kzf8 +9tFl2EzzV+9fvv36/u8rysdUuw/wuNBIZQ4/8Irja9r89R/x/NPpdH26Od2e7q7na3Ntr921vw7X +8Tpd5+vl+ur6+vrm+vb67ma+MTf2xt34m3ATb9JNvllurm5ON9c3Nze3N3e38625tbduuvW34Tbe +ptssz8fdT7/849e0+StIve0/Fso9cPnnX5P6aLe+Mrnsc8gRGl/OS77Kp3ydb/JtvlugcADA+gWK +BhQdItSr5bRcLzfL7XJ3NV+ZK3vlrvxVuIpX6SpfLVdXV6er6+nq5ur26u40n8zJntzJn8IpntIp +n5bT1elUFjQ964qPXdPgw82edItsP+3VP/ChPXzwkqWBIrS4K3dy1+7G3bo7bBoUAu+898FHn3z2 +i7/yJ38N6rn1d9hGqvMejDSCoUItBHM9gcnegNnexXkC57XgwB6cGHoluPIC7nwCl74Bt75LMzg3 +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 +oWu952Qx0njVAylaKUOfN73GmT724u1SL4hAsrJxDCspiyVRyeqS2hVRrSlEkfVgd9j6cw9LOCyL +8qCFI2701AtQmElmkFyGAbTkuc03hQ/YlLGPs9/kZaP7Yk+4YTETbPvpOBzDdFmvsrzXidI/+/Vs +c/acbMWqynwFntBQ+pJUj97BpFIEFIfpiSK1o81ESjKdd62Nd/khDjao8+ePsgQhlqQKDO7e0L88 +Vy6hxKL1V/hIwjUh7q/yWzN+UbVUqahwLO5d+O1sLK8TeeHK4z229WAde1pBNeZTL0xkFCVDnJAq +XTMfnSEDsWKYZnP7xi0AYcjt0fp520aeLmXdXco63GGT6+3gKrSEnl6CuGihO3OddJKXmRwtaegi +J3yCX/J0UuySzrOEM4dkL7yELvOvZnUuuBZDUQR63YS/GNcDloPbyiiwdPGOBCfUqOiIRYNg1Lkl +y2WWBAttEjSmFAS7dUv56eMBx19YhuDDMT3PZPq7qAuSx1dS7B4Q01eYEBBo9kTuwa5FcyJHhEDE +2fEu0S/RCJPwGg7XQmmh52aYy/OERGNYpNo+GbymF7fvbvKHQvq7SxLQpAXPk0Ou9g== + + + qzicPyXYR5Tbr9Ju/8jBEvaw/T2hVv/j15Rk3v7sz9/+4e+/frL89hd/9cMP//z2Z3/5i7/95Y8/ +fvf73377i3/59u+++913v/zxu19/e/7ATvW639/88je//fbTD7/7j29/+Kdv//rXv/nxv/z+h3/9 +3RcXt3/yCtLbX/zdd7/8YmiG+uH33/7n33z/7d9+9/tffffbH7/9P777Dxu3vf3FL37744ve/Ncv +/59//s4u6PMPv3r8DQlKN001RN7Xzvjff3P+/u9/8+sf/+dXf7b3/PzdP/347fn1/+vvf/it36P+ +tSv7299/92+/+e7fz4X987/81Lj//Yff/bHD/t0P//6Tw3Irz335zXf/8sVd+cM34n/77jf/43/+ ++PJx/vXP/pe//EX99q9/+2v/Q/7d+fe3//WH3/7teWl/PO/tz39uzX/13f84v+ndgZ/9199xZNmR +v/r9v/7L/4xx/uz//O1vf/n9d79+G3/+s/T2l+f//+HffyY6+b8+/us//+wLCnl6+9/P//h/T9O/ +v7W3v3n7v/7v9PZr/vLvfvbzs3Ch/sjC/g20hp+jiUHOeETb5y/bxCs488vnd3/7qs3/9rePq/pv +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 +vClik9OJbJk00y8tA0/Oa8r/YNXVv+foqf6rWVP8J/dg42f36Rfehfr8MQGctjXMOO3srvtwnF/8 +uyHGxd89pV/83StJ2Z8DD5jHlofYpz03Wj6PTXIuR8aZZxOTxO9+6Tgwpzn/jtlQ+r5roO6TCcXF +d0GTqxCTgrE1zC+OjPGvLD9p/941WPvXOVXZO/PKij+YDLXv3+s8+28T0spPFx/TTsYnpfVbr7lF +i4/bvlm8C5qrh/4crPk4+KDpa/g+f0mOiZrXx3UizwPW8dURQWnS3N29PiKscPTX/m2ce+5fRzkX +f3+7/cR/s05+/P8sPKo/vTFSe2BOefI//LcqPkoZKecSs53APS0HE1OUkxkzuzxrVTBiU4KylFnF +iZuV3MBdzpHgHfL3wdv1f/MMVn+09LBlf2qaV2bqr/+h5qc//y/fYPWxrF2rCjzuPDWpufQ/qy9r +9228qPkieLPk3aUHtV8g8/yqO8xjf4kM06uzwJvro4yTi49bvnFeu/qeY6Doz0bN5T9Yuqo/HCQf ++9/9dQf+ff0Z9Yz/QdO+KUXR718Li383Jrr6n/Pq6j+O8c7//iXtxH+Oa4v/QD3z0f9rUpfv34Ga +9t5l/OTor/rQ2lX2rklf9qdp2ZX/Pc678O+z6uoPH3FKPrrfeuq/114KLk8o6j8A5Pidp6/ivfVH +rd/NKYr+NMz45V9c+gvvBO8zT9m6GMcW7wkuxiblTaBvv649afs2fKvx04WbLfsc3TV/temr3gve +ov88JW373NNNIvTxyNJj6k/bLwVF4Yf0g8G7nQeC99sOTqmO/7fnRvnftl8p6teeCov8tynfrb8Q +XFh/xT61/pL688rz9v3LT1u/Dd6t+dzaW/yepav0L/47/KO+u5xfVp6zT4QfdO73DjZ/6rvZ/IWt +r/7jGW3dR/eo5/99iHfpnZXntDNrr7jn3QONHxn1Ve9OyK6+M68ve9/eV/5X7/XyTzZG2n8e0V58 +76Xg7HuxKUUn9GCFG36Wraf8XedAzV9BDz4Zl57/7xeik++oqn74twnFlU/RWUHN6pPW/cuPwPee +tewP3av7Grz2q5UnFz+0dJ3848oo+ULULGiOTHFLtsCD3Dc6v1q6T/vJd5305cK9zp8gX+4391R/ +AtnyF4KDwg9bDqwOcc56bnV8Y+1p/NB9o3XfwlP22Y0xcSXBWUb9lT8sPyMf9txs+w== + + + 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 ++axLr3ffd+SV7ns+3dg758Sm0uKTmx/tPrn9e9859drIysMvrrxt3z/d+2cvDcs//ORXi23sP3Rm +V2n5ie0DS8B/vOvj54fmfvTM2gcO/lvBPfriUuPc7hXfPLur597ze9b0ngXZc+mNx9aD3/Dk6dfX +DR56ZXj5e7/qveujZ7umH35xBcb7MGZ1x5Ft3XdePjCy+vJbT/zg3N41g2deX730/L41xVPbR1ce +27R60dGNvbMPv9g149jWzjsu7CsXrhx48l8vHvzfz3+0qXj/sa3995/dVcqd31Vacfi53Iy9P5ov +dvyw/Rsfbsjfe3zr979zZNOTI3t/mp/11i+Xep+//9TTJ3eO5PEe2Su7wC/Z1TEHbLv5Z/eMrjq/ +77v/cnHf4989sbXnnsMbl7kfv7DUOrxxxW0nt6247fKbqx64+s7q7k+3LHMPvbTMBlt+9ZWDT/0Y +e8xc3I35zsL9J7asmn3lrdWdV99Zs/byu0/86Oieka4PXx5eCPbMwrNbBuefeGHp9Ne/P/Orrzx6 ++397++f33/TJq91g5w49+P5vCnfs+P78/3Hw5w9PP/zSitlX965bfWlv/6ITm8AGeX6ZeW7H0JJL +ux4pXnr98UeO71j94P5f5Kw9P1lxy94fL7wZ9vO2371TKlx9q5S78ma5++zO0pIrr3/nexe2Pzpw +buvAnMPPLf76Oz9dNO3QL1ZYJ18uzDq7tavtyp7BJZf2DXef3z288sLro6sugM13alvPXUdeWf7N +cztz91x8vf8B4MlHLoCtf3r7aO7TjeDf/nJ5y6FfPXTTB7986Cagy1nguyw6u2skd2bn8HLMPx5+ +aWUb7Oc3wVecf+gFsItfLM4+/FJ50enNjw3gmbf9/7z4rzavv+dPNvRZf3j42SXe5yBDr771+HdP +7XrqiYMbyvM+fqW86NRr64pnwT4Be2TxoeeW3PLhcw+0HHpp+e1n937nh2f2PvWDo9vLuTO71vQe +fnnNik+eX33f2W2judNbB+Z98sJS49ONK+SxzV1t54H3zmwbXHhyU9e3jr3aNevD36y4/ezWvvkY +5zn+8sPuYdARh18Zuv/jF0cWfLhheO57/54X+//x4b9+cXTWH71YnvGVd3684GsXdxXuu7x39bLj +W1bdfeilrtth/x46vS1/19GXH5YHf/HQzR890yHPvFKcexH8nXM7n3zy2LY1ne/9tufvD/57h/v+ +L5ZOP7ep587z23vnHAe75cMNWOvbOf30lqGHP/5N6f4d31v6l0de6pwBfl3X5bdW56/sX91zcuvK +O45t6pl9dtfgw6d2j+ZP7/n+jz599dHeN57Oe+/+eoX18XNL7LO7CvMvvVHMXXqz2HNm98DSD0Gm +fvD8Cv/cvrXlo9tLSz7c0GEffmGlf+rVQvuFfX0P/+794ZHP31nz2PGdpf6Ptva2Y99H4MMngW+X +vvPvD9/y+j/Pbzn4i8W3n9kKdtP2daPvPts5Y9ePH7jpnec677r63j9sOrVj3eD7v+78+/efXnTz +0RcWfR18prvP7x0ufPbeEz+6sG+0/P5zS42PN3bddXJHuf/83lLnkVeX+Uc2LwPfvvvujzctsz95 +ueP2K2+vexR8o3Wndg0tPbu71HXl7dFHL+0v957f3j33zI7uOSd3l1Ye2TOcO7pzZOXRzcX7P30+ +77/z0wXT9v7DvX/3xtMP3nkY/Pnjrw1gDcqyN5/uunXL95f85fGdo4NXDq5/6uKuNd0Xdgw+cPqV +nllXdq/u+PyNNasv7y6vuLhnaPmRrX3tR7c80vXpy491gz4Fulpx6/l9S2+79GbPnKtvFpdf3jey +6sqeJ586vWlwwenNfe1nN5ceOL9pTcepjavuffdn9/3Na48bf3zwn+5uPrWlcM/FfSOFK2889vj5 +XUPLPnh+ifHGz+7878deXPiN869133Flz+qHL+8d7T61vfzQcTwfAHxyAuZz4uUO7/DzQJMv9nzr +yMt9dx3funrh+T2PlsBHLp3fNbLyxOb+2Qd/vuwbR18u3HFh90jXhd1re3f94+K/2Pnd3Nff+9nI +nOMvrAZ7ddWcj34z9xuHn1/sHnl1bcfHG0ceOPva4yNndzz5yAfPr54NNsDQ5TfXjF5+a6R06a3h +PrDLSsd3rl721q9WmEc2jC5551cjD2x+bP6fffDz3O3n0cbb0nf/pb1DedSPF/eO9n78XOG2Yy8X +2i7sHs6d2zGyEn31IxtWeoeefagFfJSZZ8C+Ab+o7+jmR7o+fG713W8/PTr73V8NLzjxSmnJiZc7 +Z7z2ven//cNfz73pkw3LzJPbBxad2rF+5JMNq2Yde2n14rNbR7vPbhlZ+e5PO/znhmf++cZHZv3l +gV+umv4B4PDp9uHlh17s/tbef7z/L09v7rnr4p6BBy7vLy67+sbq3KcvLvvWnh/O+csDP+t0z+55 +ZOTcG2tL5/YNPnx6W/ddsKa3nn61C/s4Lvsc9OTF15946vArpYUHf134e/Dxuk9s6vzWme3Lv3X0 +lQe9bd+/7asfbVgij2/tnXfitf4HwfZac3Rb/5wjW7rbTu/qn39u5+oHwS9dfGYX6Kmdy2779JVl +/vm95cLVg9/9Oejh9Uc39d59Zf/o4Odvj6w+u61n7hs/XHDz+z+e3XzgJ/f8+bFNuTv+4931P/z8 +vcf/+eS28sMfP997N+zj/Zd2DT50bsfgkqMvd9z10YYF7sfP5247trV37sU3Hn38yltP/vAM2D2H +Yd2Obem57+K+Uu4o2KTHX1xiXdjVu/Ds3vLK0/uGO8/tHy1egD09tWP10hNbC3MvHyiPgK34yNUD +/Suuvtm3+Mjmvnve+82q246+OvTQmZ0jvVfefvKfL765ZugoyPRPNhZmHnm1fzbo9eXn9o30v/HL +h60zW1Yv+mzHY+XL29as/AzsQpjj4vM7utrO7lr5zY9eeOjrZ0E/Hdm0ev6nLxfvOba5v/3zA6Wu +//Nheejz9wdWXtzX98ChDcvlB79Y3nrq5cH5p18dXX7spd67j7/SOXP/j+f8xZZHZ37l/Z8suhns +54c+exPmvXMY/I6R3PFto8tPbVu96NKe/nmntz5onNy04GvHX13uH3u1OPvktrWdhzcNg79SnPvh +cw9+feuTM/7w3Z8unnbsBTwXNwyy8JHRy/uKy8F/nX95/7rSpb1rBs5s7b7r/V/f+zdv/ezbX/3o +V13OyZfWd57c/N01J19b13MKderG/vvObRnJX9j11JPgK3Ud3rDcPvJS94xjrw4/8NmB7/zb1QOP +/++LQEen96xecn7v6ocvoC8E/vWl7aUVp17tbf/4WfDrNq6653cH1q0/u7u4+PKb5Z4rbw91n3pt +cNHJzeXFF3eDX721564PfrXwb89t62r/j/3r11147ZHih8+ucA/9dvHNeI7t/WcLt3/wm9Jdxzat +73n3+dLsA890u0de6r3z0+d77vh8f7nw/xxcM/LZm8MDJ0CeHHtloP30lseHLu58Yu27v+xxNz/+ +wP/cUL73K2BLiou7Hhu+vH/9o+deX9P74cbuGW88vcQ8g3ES8PU+3LDMeu/Zh772/jMPfv3Qc8tv +vbjn8e+c2/+jTWdfX1c+tqnvHpQjF18bWnry5YeMj3599/98+8dtXwF/6Dbwm+ec3Q== + + + vQZoBfzqXesGj2zqvef41r4553avGbh6cP13rh58/B/Pge8MtDn9k5cKbWd3ri2c3T3c+ebPH/76 +mT3D3f/5/ronfnegBPJyYMn/ObB27Wdvr+5Bv/OjF1a6Hzzf8623/n05yIu+e89vH8p9vq933n8d +KK78r/eKXed3r5j19k/n/vlbT3eYJ3eMrDqxY7TvvV+utF5Z/+2vPjMo/+jNf1vQem5HKfcf7657 +/HfvrXn03O7VD2NPgcv7R3o/e2t0CHyzb/+8+2/+YMdj0//01Mu5tt+9Ozry2ftr1x/Z1Hn3279c ++Dfn9o6MfHboH1773aEnnj69o3vRtjXmH21eN/MrH2H90paB+87sHFoO6+sdfrE49/Iba4qfvV3u +ARt39oVdi/7+3Z9/669+0vlXf3Bow/y/O/ZS9zev7BhecWXn0MNX9pSWXto5+MCl3d13Xdid+9a5 +11bedv71gUXv/7b71o9+M7zg+Obvr7/8xrrVn79T6r5woGfu0e1L5ev/MverR54tzLq8Y/3qt3+R +v/2FtTP+9Px21CvF+05vHLr/M9B9l/cV5lzY033X0Y2dtx57uTgHZNf6s2BXn9naM+vgL9r+5M2f +fOuPsB/jmR2lh7AGFePrH23sv/Od33T7Hz7TO+M/9pU6/t93V3df2td9/9Et877xwYZv/ynIOfPz +A2vXXdq/ZuDYK92zDj49p/mjZ+ZNO7epOPfqzkcGLu97dPjo9tULzu1e13d533d/ePnNp/7h1K7y +ykMbHrjp/V/Oaz62Mf/Ni7seLX329uM/OLd7pPPcnpHOz99Z/51L+4ZyJ1/u+ua7P7t/2ubHZdPr +P7jj/z4KNsxn+1av/E9Y/xM7++ZcPTha+t0H6564vP/R0fPga5/fOfDAJxseav1tyfyDPf8w839d +3jW04viLxXvBj/m7D3694K8/fbHDBztj2Wevry9/vm9d6cjmVXd/8EKne+q1Nd0X96xZdX7X4KJT +2/ra33vmoZve//WiaVf398z+bH8ReLW0BGPrx8BeO7V5+KFz20aWXtwFsntX7+zTrw2A3b96/tV9 +j4xc3f/ImvOg9z9+edUdJ7YNLz+3e7T76huPrrkI8BM7h/Ofbu69B+teTr46An7+wD2fPv+w8e7P +5/6v93/x4M2X9g91fv7uo09cPrD+ifP71wyexXzra08MH9/12NCFg0/+4+WDj3//NNhMH7+cu/Xw +xpXe2R2PDp7f853vnQTf8eCzef/Mnscevfruo08d37J0xo4n2v7442eWfOPEtuXeyR1dd+J6H9jQ +f8dr/9Jrf/zSU2svv/mDX18Av/f05gdu+fg39/75mz+d+cfgC95+6fVH1l5956l/e+vXnd/cMHrP +n3zyfGkh+Krr/uu9J/71P94eKR15aan70W8ebDn0fId1BnQ57FXhvWfzt76LPQh+23HHlb2PPPqf +Bx5Zfxl8uFPbV87a++M7/2zLU7f/8ZkdvSs+P/TkLy4dWFPGeMiJlwrtYDt973eH1v/TZ2+Wey/v +Li2F9Wh/+6cd3zi6qbjgCthFB346/6+fGzL/r10/mPk/Dj2z0Piv94v5/2+K/KyY7Al8UT8ZIvX2 +kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFS +bz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8Z +IvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2 +kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2kyFSbz8ZIvX2s+LY +FPm5r3mK/PzhtGl3DHTO6ih3NC2+q2najLvlcvj3vI6hcr7UdF/TtOW3zCiVZxVy5UJxoKO0tvlW +ABmtwm6+ZV6+o6/5Jn6yGR5qnlMqdBcGADg/19GXv7n5G/DodPj/JqPZbDbo/xavbWpxXdtttYRt +ep6A/4hm13OtVikNS1qGNITV3I8PSa/V8oQjPNs2PCf9UB8+5AHM9n3Pc23HseEhm97yfdP1Ddfl +h1Kfq+qh1Od6mh5oGmi6v8lvvunm5sUPNC2M/Abr5uG6zSwND/XM7SjDkgwEi7n8vuLA3FJhoFwY +6G5pYfDMPCxV9A9N9w3iX0yD/zR/0Z3fLvThHtwS/Aprf8vi2e33FTvz+GtsU675h+nNN63p7xuA +P7XAtEqFlcPl/BDuDexrqSPxRK6n0NdZyg/g30XzLXcPlMO/4f+U1w7Svt5kGsa0m5tvWThQyAF4 +Pow70B1/dKSjb5if7ckXunvK1396oKOfHoa56Me/Uc84jRY6yz1Vo6SennCMiitX5XPlmcXhgU6Y +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 +LbkgPL6F0aM0xuMbAyfXGI9vIly/7ijm9TlrNYfC9RtR9zA22/bwrLh+ozV5djy4CFy/YW/4Sx1J +PF/9VgN1vhNJHHcNx+H6jY43D2YRnB/Xb3C3Q2vxvHh8Z0vSGI7HdwHXp4vqNzkeX5MipnHdG3Su +xtmg+MKK1Mlw/QYc2wrVr6oYmhzXr1sqNQpXdGJcv9FqzhAeOzOu32hUv4m7NtW4fhP6+hri+jWo +e70AXL/RqH5nxuM7VxVuIC01rt/5i+H7UP36vjIRrp92Jfej+g3rcnZWXL/R6V3BK3ZuXL/RiU6B +T+ncuH7GufSh+o3uC9cc1+/8fsvBHTt7zdMQu3ICXL+e4LJQ/c6dPRjg+o3kiD4EkMlw/UYrhpX1 +Ojmu3+iC2PpFnhjXb3CRIaqf0scad7IaxPUbrgRVOsyYTlYNcf0a6TAT4/r1n6QO4Iyorh1yP21c +v9GPw8gqzgsriK3e/RXjeXgzSkd7vGtnfIR9pf6uOioGbyV+O9y1OzrxPihbHOCmDo/1ojc3b/zq +r4OvfFP1p+YGXsj2z97GRCuPD7Pufj4asER3Tlj75k7+nsazcn968e2jK9HK3re8Ig== + + + Yj3V9JWHN++1o7mj6ZWDt798cvz3/c2b39+XT3cX5pZ/zM+u/V6Ltr8+unP595+1bPrd/pcE//p0 +eyYtrm1fffj497P097fXb6dm8rTtD4qHm3vtB+3j6XRny39ae/Zt99aX5w+zV3+/OHyU/n45d/jX +lVd35v3Gv5dePHvwbfX79b2fh7fmjn5/zH/PHN8+yh5Nv3p0a/ZKMreVzfz19t69+T9/X37rf747 +XK3vvtR23tx98fzldHvxw+1p9/X3y8XryeztaHPtwVq0+dfB/Wgru/rs+PhTOXd8Ury6d3L5Q/b5 +JP389km30vLF4o2V5VftZKe81Cl7+3fl+OTdT4LNlZer2motQwbqS6+92flY3jl4+osGdRcCkniS +fz7FMwt3bu/ctzZLNgPLPb3Kc0muTA9dq1Q0zu3PHj65/PLNi5tXjo5XNq86//XP5e9fpr+wkvR+ +pzh0+s/SL/+I+WoPj6QmcfrO5osXM9GVwy9i7z/5Oaiy/wquD5b2ZL2vaK7nb+1bGsSatQ83s5n1 +P1MzG282D/cEQHP9/dazvezR+pdLt1dOr9+/vXLy5dpmefnbk7uvbicfsG1HN7e+v9x7d2c7m/6M +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 +B0TQ + + + diff --git a/modules/domtokenlist-shim/dist/domtokenlist.js b/modules/domtokenlist-shim/dist/domtokenlist.js new file mode 100644 index 0000000000..c207ed71c3 --- /dev/null +++ b/modules/domtokenlist-shim/dist/domtokenlist.js @@ -0,0 +1,215 @@ +/*! DOMTokenlist shim | Copyright 2015 Jonathan Wilsson and Bogdan Chadkin. */ +;(function (window) { + 'use strict'; + + if (!window.DOMTokenList) { + return; + } + + var el = document.createElement('a').classList; + var dtp = DOMTokenList.prototype; + var add = dtp.add; + var remove = dtp.remove; + var toggle = dtp.toggle; + + el.add('c1', 'c2'); + + // Older versions of the HTMLElement.classList spec didn't allow multiple + // arguments, easy to test for + var iterateArg = function (fn) { + return function () { + var tokens = arguments; + var i; + + for (i = 0; i < tokens.length; i += 1) { + fn.call(this, tokens[i]); + } + }; + }; + + if (!el.contains('c2')) { + dtp.add = iterateArg(add); + dtp.remove = iterateArg(remove); + } + + // Older versions of the spec didn't have a forcedState argument for + // `toggle` either, test by checking the return value after forcing + if (!el.toggle('c1', true)) { + dtp.toggle = function (cls, force) { + if (force === undefined) { + return toggle.call(this, cls); + } + + (force ? add : remove).call(this, cls); + return !!force; + }; + } +}(window)); + +;(function (window) { + 'use strict'; + + if (window.DOMTokenList) { + return; + } + + var arr = []; + + var inArray = function (array, value) { + var i; + + if (arr.indexOf) { + return arr.indexOf.call(array, value); + } + + for (i = 0; i < array.length; i++) { + if (array[i] === value) { + return i; + } + } + + return -1; + }; + + var validateToken = function (token) { + var whitespace = /[\u0009\u000A\u000C\u000D\u0020]/; + + if (token === '' || whitespace.test(token)) { + throw new Error('Token must not be empty or contain whitespace.'); + } + }; + + var DOMTokenList = function (element, prop) { + var inst = this; + var i; + var values = []; + + if (element && prop) { + inst.element = element; + inst.prop = prop; + + if (element[prop]) { + values = element[prop].replace(/^\s+|\s+$/g, '').split(/\s+/); + + for (i = 0; i < values.length; i++) { + inst[i] = values[i]; + } + } + } + + inst.length = values.length; + }; + + DOMTokenList.prototype = { + add: function () { + var inst = this; + var i; + var tokens = arguments; + + for (i = 0; i < tokens.length; i++) { + validateToken(tokens[i]); + + if (!inst.contains(tokens[i])) { + arr.push.call(inst, tokens[i]); + } + } + + if (inst.element) { + inst.element[inst.prop] = inst; + } + }, + + contains: function (token) { + validateToken(token); + + return inArray(this, token) !== -1; + }, + + item: function (index) { + return this[index] || null; + }, + + remove: function () { + var tokens = arguments; + var inst = this; + var key; + var i; + + for (i = 0; i < tokens.length; i++) { + validateToken(tokens[i]); + + key = inArray(inst, tokens[i]); + + if (key !== -1) { + arr.splice.call(inst, key, 1); + } + } + + if (inst.element) { + inst.element[inst.prop] = inst; + } + }, + + toggle: function (token, force) { + var inst = this; + + if (inst.contains(token)) { + if (force) { + return true; + } + + inst.remove(token); + + return false; + } else { + if (force === false) { + return false; + } + + inst.add(token); + + return true; + } + }, + + toString: function () { + return arr.join.call(this, ' '); + } + }; + + window.DOMTokenList = DOMTokenList; +}(window)); + +;(function () { + 'use strict'; + + if ('classList' in document.createElement('a') && !window.QUnit) { + return; + } + + Object.defineProperty(Element.prototype, 'classList', { + get: function () { + return new DOMTokenList(this, 'className'); + } + }); +}()); + +;(function () { + 'use strict'; + + if ('relList' in document.createElement('a') && !window.QUnit) { + return; + } + + var i; + var elements = [HTMLAnchorElement, HTMLAreaElement, HTMLLinkElement]; + var getter = function () { + return new DOMTokenList(this, 'rel'); + }; + + for (i = 0; i < elements.length; i++) { + Object.defineProperty(elements[i].prototype, 'relList', { + get: getter + }); + } +}()); diff --git a/modules/domtokenlist-shim/dist/domtokenlist.min.js b/modules/domtokenlist-shim/dist/domtokenlist.min.js new file mode 100644 index 0000000000..895482040a --- /dev/null +++ b/modules/domtokenlist-shim/dist/domtokenlist.min.js @@ -0,0 +1,2 @@ +/*! DOMTokenlist shim | Copyright 2015 Jonathan Wilsson and Bogdan Chadkin. */ +!function(t){"use strict";if(t.DOMTokenList){var e=document.createElement("a").classList,n=DOMTokenList.prototype,i=n.add,r=n.remove,o=n.toggle;e.add("c1","c2");var s=function(t){return function(){var e,n=arguments;for(e=0;e= 0; --i) { - if (handlers[i] === handler) { - handlers.splice(i, 1); - break; - } - } - }, - onerror: null, - onmessage: null, - onopen: null, - readyState: 0, - URL: '' -}; - -var MessageEvent = function (data, origin, lastEventId) { - this.data = data; - this.origin = origin; - this.lastEventId = lastEventId || ''; -}; - -MessageEvent.prototype = { - data: null, - type: 'message', - lastEventId: '', - origin: '' -}; - -if ('module' in global) module.exports = EventSource; -global.EventSource = EventSource; - -})(this); diff --git a/modules/html5-polyfills/MIT-LICENCE.txt b/modules/html5-polyfills/MIT-LICENCE.txt deleted file mode 100644 index aecaf1da58..0000000000 --- a/modules/html5-polyfills/MIT-LICENCE.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2010 Remy Sharp, http://remysharp.com - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/modules/html5-polyfills/README.md b/modules/html5-polyfills/README.md deleted file mode 100644 index 2493b09dd8..0000000000 --- a/modules/html5-polyfills/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Polyfills - -> A way of getting the browser to behave and support the latest specifications. - -This is my own collection of code snippets that support different native features of browsers using JavaScript (and if required, Flash in some cases). - -## Component Installation - -You can install polyfills using component: - -``` -component install remy/polyfills -``` - -If you'd like to include all polyfills (except device motion), you can just: - -``` -require( 'polyfills' ); -``` - -If you'd only like a specific polyfill, you can require indivual ones like this: - -``` -require( 'polyfills/classList' ); - -// now we can use classList in lots of browsers! -element.classList.add( 'foo' ); -``` - -# License - -License: http://rem.mit-license.org diff --git a/modules/html5-polyfills/Storage.js b/modules/html5-polyfills/Storage.js deleted file mode 100644 index f2d79e543c..0000000000 --- a/modules/html5-polyfills/Storage.js +++ /dev/null @@ -1,96 +0,0 @@ -if (typeof window.localStorage == 'undefined' || typeof window.sessionStorage == 'undefined') (function () { - -var Storage = function (type) { - function createCookie(name, value, days) { - var date, expires; - - if (days) { - date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - expires = "; expires="+date.toGMTString(); - } else { - expires = ""; - } - document.cookie = name+"="+value+expires+"; path=/"; - } - - function readCookie(name) { - var nameEQ = name + "=", - ca = document.cookie.split(';'), - i, c; - - for (i=0; i < ca.length; i++) { - c = ca[i]; - while (c.charAt(0)==' ') { - c = c.substring(1,c.length); - } - - if (c.indexOf(nameEQ) == 0) { - return c.substring(nameEQ.length,c.length); - } - } - return null; - } - - function setData(data) { - data = JSON.stringify(data); - if (type == 'session') { - window.name = data; - } else { - createCookie('localStorage', data, 365); - } - } - - function clearData() { - if (type == 'session') { - window.name = ''; - } else { - createCookie('localStorage', '', 365); - } - } - - function getData() { - var data = type == 'session' ? window.name : readCookie('localStorage'); - return data ? JSON.parse(data) : {}; - } - - - // initialise if there's already data - var data = getData(); - - return { - length: 0, - clear: function () { - data = {}; - this.length = 0; - clearData(); - }, - getItem: function (key) { - return data[key] === undefined ? null : data[key]; - }, - key: function (i) { - // not perfect, but works - var ctr = 0; - for (var k in data) { - if (ctr == i) return k; - else ctr++; - } - return null; - }, - removeItem: function (key) { - delete data[key]; - this.length--; - setData(data); - }, - setItem: function (key, value) { - data[key] = value+''; // forces the value to a string - this.length++; - setData(data); - } - }; -}; - -if (typeof window.localStorage == 'undefined') window.localStorage = new Storage('local'); -if (typeof window.sessionStorage == 'undefined') window.sessionStorage = new Storage('session'); - -})(); diff --git a/modules/html5-polyfills/bower.json b/modules/html5-polyfills/bower.json deleted file mode 100644 index bd7c2b35a9..0000000000 --- a/modules/html5-polyfills/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "html5-polyfills", - "description": "Collection of polyfills by Remy Sharp", - "homepage": "https://github.com/remy/polyfills", - "keywords": [ - "polyfill", - "client", - "browser" - ], - "author": { - "name": "Remy Sharp", - "email": "remy@leftlogic.com" - }, - "version": "0.0.20130621", - "readme": "This is my own collection of code snippets that support different native features of browsers using JavaScript (and if required, Flash in some cases).", - "readmeFilename": "README.md", - "_id": "html5-polyfills@0.0.20130621", - "repository": { - "type": "git", - "url": "git://github.com/remy/polyfills.git" - } -} \ No newline at end of file diff --git a/modules/html5-polyfills/classList.js b/modules/html5-polyfills/classList.js deleted file mode 100644 index 47eddeec3b..0000000000 --- a/modules/html5-polyfills/classList.js +++ /dev/null @@ -1,70 +0,0 @@ -(function () { - -if (typeof window.Element === "undefined" || "classList" in document.documentElement) return; - -var prototype = Array.prototype, - push = prototype.push, - splice = prototype.splice, - join = prototype.join; - -function DOMTokenList(el) { - this.el = el; - // The className needs to be trimmed and split on whitespace - // to retrieve a list of classes. - var classes = el.className.replace(/^\s+|\s+$/g,'').split(/\s+/); - for (var i = 0; i < classes.length; i++) { - push.call(this, classes[i]); - } -}; - -DOMTokenList.prototype = { - add: function(token) { - if(this.contains(token)) return; - push.call(this, token); - this.el.className = this.toString(); - }, - contains: function(token) { - return this.el.className.indexOf(token) != -1; - }, - item: function(index) { - return this[index] || null; - }, - remove: function(token) { - if (!this.contains(token)) return; - for (var i = 0; i < this.length; i++) { - if (this[i] == token) break; - } - splice.call(this, i, 1); - this.el.className = this.toString(); - }, - toString: function() { - return join.call(this, ' '); - }, - toggle: function(token) { - if (!this.contains(token)) { - this.add(token); - } else { - this.remove(token); - } - - return this.contains(token); - } -}; - -window.DOMTokenList = DOMTokenList; - -function defineElementGetter (obj, prop, getter) { - if (Object.defineProperty) { - Object.defineProperty(obj, prop,{ - get : getter - }); - } else { - obj.__defineGetter__(prop, getter); - } -} - -defineElementGetter(Element.prototype, 'classList', function () { - return new DOMTokenList(this); -}); - -})(); diff --git a/modules/html5-polyfills/component.json b/modules/html5-polyfills/component.json deleted file mode 100644 index 73c2261a7f..0000000000 --- a/modules/html5-polyfills/component.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "polyfills", - "scripts": [ - "classList.js", - "dataset.js", - "device-motion-polyfill.js", - "EventSource.js", - "index.js", - "input-target.js", - "offline-events.js", - "range.js", - "sessionStorage.js", - "Storage.js" - ], - "main": "index.js" -} \ No newline at end of file diff --git a/modules/html5-polyfills/dataset.js b/modules/html5-polyfills/dataset.js deleted file mode 100644 index 8b3d6e5d71..0000000000 --- a/modules/html5-polyfills/dataset.js +++ /dev/null @@ -1,57 +0,0 @@ -(function () { - var forEach = [].forEach, - regex = /^data-(.+)/, - dashChar = /\-([a-z])/ig, - el = document.createElement('div'), - mutationSupported = false, - match - ; - - function detectMutation() { - mutationSupported = true; - this.removeEventListener('DOMAttrModified', detectMutation, false); - } - - function toCamelCase(s) { - return s.replace(dashChar, function (m,l) { return l.toUpperCase(); }); - } - - function updateDataset() { - var dataset = {}; - forEach.call(this.attributes, function(attr) { - if (match = attr.name.match(regex)) - dataset[toCamelCase(match[1])] = attr.value; - }); - return dataset; - } - - // only add support if the browser doesn't support data-* natively - if (el.dataset != undefined) return; - - el.addEventListener('DOMAttrModified', detectMutation, false); - el.setAttribute('foo', 'bar'); - - function defineElementGetter (obj, prop, getter) { - if (Object.defineProperty) { - Object.defineProperty(obj, prop,{ - get : getter - }); - } else { - obj.__defineGetter__(prop, getter); - } - } - - defineElementGetter(Element.prototype, 'dataset', mutationSupported - ? function () { - if (!this._datasetCache) { - this._datasetCache = updateDataset.call(this); - } - return this._datasetCache; - } - : updateDataset - ); - - document.addEventListener('DOMAttrModified', function (event) { - delete event.target._datasetCache; - }, false); -})(); diff --git a/modules/html5-polyfills/device-motion-polyfill.js b/modules/html5-polyfills/device-motion-polyfill.js deleted file mode 100644 index b0ef4a551b..0000000000 --- a/modules/html5-polyfills/device-motion-polyfill.js +++ /dev/null @@ -1,253 +0,0 @@ -/** - * DeviceMotion and DeviceOrientation polyfill - * by Remy Sharp / leftlogic.com - * MIT http://rem.mit-license.org - * - * Usage: used for testing motion events, include - * script in head of test document and allow popup - * to open to control device orientation. - */ -(!document.DeviceOrientationEvent || !document.DeviceMotionEvent) && (function () { - -// thankfully we don't have to do anything, because the event only fires on the window object -var polyfill = { - motion: !document.DeviceMotionEvent, - orientation: !document.DeviceOrientationEvent -}; - -if (polyfill.orientation) window.DeviceOrientationEvent = function () {}; - -if (polyfill.motion) window.DeviceMotionEvent = function () {}; - -// images - yes I do like to be self contained don't I?! :) -var imageSrc = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAACpCAYAAABEbEGLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODkwMDQ2NTNDNEYxMUUxQTYyOTk2M0QwMjU4OThGOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODkwMDQ2NjNDNEYxMUUxQTYyOTk2M0QwMjU4OThGOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4OTAwNDYzM0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4OTAwNDY0M0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jKamsAAAAtNJREFUeNrs2t1t01AYgGG3dACPkA3qEcIlV5QJSCdAnaAwAWKCsgFs0HQChwmaS+6SThCOKwuigtP4J+ln9LzSRyWaRMmTE8fHcJLt3yRNkeY8U9VDmkWa+ZAPOktTptmYf84qzU29GDtXQG49111XM7xuUy3QfF/oa2DHAbeijwReABp8vjVh+zI8zFw4fBxv7q3qF1jdp1s7Qx2ut9UfZ0Gh+26BJ313dANXRDuvXg38xuf1NjrKoeTxMBKlq/rCzlCt01zWP0N0GujjtjzQ4y4iYS+DPJd8ZI/bCTtKHw7wmLNIJwBngbCn9QZgOcDZSF4/XqgzrUjY26ds0//xZPs0E2zYgg1bsGHDFuwRt2sHOcfTqSJruPi1C/s1t07dZg2XGxxGHLNhCzZswYYNW7BhCzZs2IINW7BhCzZs2IINW7BhwxZs2IINW7BhwxZs2IING7ZgwxZs2IING7ZgwxZs2LAFG7Zgw4Yt2LAFG7Zgw4Yt2LAFGzZswYYt2LAFGzZswYYt2LBhCzZswYYt2LBhCzZswYYNW7BhCzZs2IINW7BhCzZs2IINW7BhwxZs2IIdvbMdv7vG06lJF+yP3BxGYAs2bGcj8VukmadZb/1dkWaaJh/Li6hO8TaB57YGbSofwWvYjAH7psWiqd6QVWTsyMfsr2kuW9x+3vL2viDrlmmuOtzve/0mwW7RlydfhG36BLv9Cu3zqVjCbgf2kve3qRl5OezjtY6KPXnh+x/sMPIj4POa9oSOhr3YfnLRdlv3PV7YTfSdcBnwCX7uAF0E3apfbD/JWdAnOWsJvRrLp7TM4l6Meu4S6kXgi1C/V/XJk5VRRj1tqq953GV/X89+X/+MuhN+1/TLqIeTMU759BP5quEUZZqp7+WCN2l+7nNjK3zAFb3vt3sJr9X0/l9kM+g7Z1WfMT27az1puQ2uVvu5Q/JjD9mff/Hfq18CDADFyFpnRW9JPwAAAABJRU5ErkJggg=='; - -var imageBackSrc = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAACpCAIAAADLDtbcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFCRTMwQTNDNjMxMUUxQTYyOTk2M0QwMjU4OThGOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFCRTMwQjNDNjMxMUUxQTYyOTk2M0QwMjU4OThGOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4OTAwNDZCM0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4OTAwNDZDM0M0RjExRTFBNjI5OTYzRDAyNTg5OEY4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zWf2VgAABt9JREFUeNrsnU1P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'; - -var id = (+new Date).toString(32), - body = document.documentElement, // yep - cheatin' Yud'up! :) - height = 320; - -// if the url hash doesn't contain tiltremote (our key) then fireup the popup, else we are the popup -if (window.location.hash.indexOf('tiltremote') === -1) { - initServer(); -} else { - initRemote(); -} - -function initServer() { - // old way didn't work. Shame, but I like the new way too :) - // var remote = window.open('data:text/html,', 'Tilt', 'width=300,height=' + height); - - var remote = window.open(window.location.toString() + '#tiltremote', 'Tilt', 'width=300,height=' + height); - if (!remote) { - alert('The remote control for the orientation event uses a popup') - } - - // TODO add remote-tilt.com support -} - -function initRemote() { - var TO_RADIANS = Math.PI / 180; - orientation = { - alpha: 180, - beta: 0, - gamma: 0 - }, - accelerationIncludingGravity = { x: 0, y: 0, z: -9.81 }, - guid = (+new Date).toString(32); - - function update(fromInput) { - var preview = document.getElementById('preview'); - preview.style.webkitTransform = 'rotateY('+ gamma.value + 'deg) rotate3d(1,0,0, '+ (beta.value*-1) + 'deg)'; - preview.parentNode.style.webkitTransform = 'rotate(' + (180-orientation.alpha) + 'deg)'; - - if (!fromInput) { - for (var key in orientation) { - var el = document.getElementById(key); - oninput.call(window, { target: el }); - } - } - - fireEvent(); - } - - function fireDeviceOrienationEvent() { - var event = document.createEvent('HTMLEvents'); - event.initEvent('deviceorientation', true, true); - event.eventName = 'deviceorientation'; - event.alpha = orientation.alpha; - event.beta = orientation.beta; - event.gamma = orientation.gamma; - - window.opener.dispatchEvent(event); - } - - function fireDeviceMotionEvent() { - var event = document.createEvent('HTMLEvents'); - event.initEvent('devicemotion', true, true); - event.eventName = 'devicemotion'; - - event.accelerationIncludingGravity = {}; - event.accelerationIncludingGravity.x = accelerationIncludingGravity.x; - event.accelerationIncludingGravity.y = accelerationIncludingGravity.y; - event.accelerationIncludingGravity.z = accelerationIncludingGravity.z; - - window.opener.dispatchEvent(event); - } - - function fireEvent() { - if (polyfill.orientation) fireDeviceOrienationEvent(); - if (polyfill.motion) fireDeviceMotionEvent(); - } - - // hides the old body - but doesn't prevent the JavaScript from running. - // just a clean up thing - lame, but tidier - setTimeout(function () { - var bodies = document.getElementsByTagName('body'), - body = bodies[1]; - if (bodies.length == 2) { - if (body.id == guid) body = bodies[0]; - } - document.documentElement.removeChild(body); - }); - - body.innerHTML = ['Motion Emulator', - '', - '', - '', - '
    ', - '', - '', - '', - '', - '
    ', - '
    ', - '
    ', // end of controls - '
    ', - '
    ', - '
    ', - '
    ', - '
    ', - '
    ', - 'south', - '' - ].join(''); - - function oninput(event) { - var target = event.target; - if (target.nodeName == 'INPUT') { - - var value = target.value * 1; - - if (target.id == 'beta') { - // parseFloat + toFixed avoids the massive 0.00000000 and infinitely small numbers - accelerationIncludingGravity.z = parseFloat( (Math.sin( (TO_RADIANS * (value - 90))) * 9.81).toFixed(10) ); - accelerationIncludingGravity.y = parseFloat((Math.sin( (TO_RADIANS * (value - 180))) * 9.81).toFixed(10)); - value = parseFloat((Math.sin(value * TO_RADIANS) * 90).toFixed(10)); - } else if (target.id == 'gamma') { - accelerationIncludingGravity.x = parseFloat( (Math.sin( (TO_RADIANS * (value - 180))) * -9.81).toFixed(10) ); - } - - document.getElementById('o' + target.id.substring(0, 1)).value = parseFloat(value.toFixed(2)); - - orientation[target.id] = value; - - if (this !== window) update(true); // i.e. if not called manually - } - } - - body.addEventListener('input', oninput, false); - - var down = false, - last = { x: null, y: null }, - pov = document.getElementById('pov'), - alpha = document.getElementById('alpha'), - beta = document.getElementById('beta'), - gamma = document.getElementById('gamma'); - - pov.addEventListener('mousedown', function (event) { - down = true; - last.x = event.pageX; - last.y = event.pageY; - event.preventDefault(); - }, false); - - body.addEventListener('mousemove', function (event) { - if (down) { - var dx = (last.x - event.pageX)// * 0.1, - dy = (last.y - event.pageY); // * 0.1; - last.x = event.pageX; - last.y = event.pageY; - gamma.value -= dx; - beta.value -= dy; - update(); - } - }, false); - - body.addEventListener('mouseup', function (event) { - down = false; - }, false); - - body.addEventListener('click', function (event) { - var target = event.target; - if (target.nodeName == 'BUTTON') { - if (target.id == 'flat') { - alpha.value = 180; - beta.value = 0; - gamma.value = 0; - - } - update(); - } else if (target.id == 'wobble') { - if (target.checked) startShake(); - else stopShake(); - } - }, false); - - function startShake() { - shake = setInterval(function () { - alpha.value = parseFloat(alpha.value) + (Math.random() * (Math.random() < 0.5 ? 1 : -1) * 0.05); - beta.value = parseFloat(beta.value) + (Math.random() * (Math.random() < 0.5 ? 1 : -1) * 0.05); - gamma.value = parseFloat(gamma.value) + (Math.random() * (Math.random() < 0.5 ? 1 : -1) * 0.05); - update(); - }, 100); - } - - function stopShake() { - clearInterval(shake); - } - - update(); -} - -})(); - - - - - - - - - - - - - - - - diff --git a/modules/html5-polyfills/index.js b/modules/html5-polyfills/index.js deleted file mode 100644 index 782dee325d..0000000000 --- a/modules/html5-polyfills/index.js +++ /dev/null @@ -1,8 +0,0 @@ -require( "./classList.js" ); -require( "./dataset.js" ); -require( "./EventSource.js" ); -require( "./input-target.js" ); -require( "./offline-events.js" ); -require( "./range.js" ); -require( "./sessionStorage.js" ); -require( "./Storage.js" ); \ No newline at end of file diff --git a/modules/html5-polyfills/input-target.js b/modules/html5-polyfills/input-target.js deleted file mode 100644 index 8a907eeed7..0000000000 --- a/modules/html5-polyfills/input-target.js +++ /dev/null @@ -1,42 +0,0 @@ -(function () { - -// setup for detection -var form = document.createElement('form'), - input = document.createElement('input'), - body = document.body, - id = 'f' + +new Date, - inputTargetSupported = false; - -// insert into DOM, work out if it's supported -form.setAttribute('id', id); -input.setAttribute('form', id); -body.appendChild(form); -body.appendChild(input); - -inputTargetSupported = input.form !== null; -body.removeChild(form); -body.removeChild(input); - -// if not, hook click handlers to all existing submit elements -function click(event) { - event = event || window.event; - - // http://www.quirksmode.org/js/events_properties.html#target - var target = event.target || event.srcElement; - if (target.nodeType === 3) target = target.parentNode; - - if (target.nodeName === 'INPUT' && target.type === 'submit' && target.form === null) { - form = document.getElementById(target.getAttribute('form')); - var clone = target.cloneNode(true); - clone.style.display = 'none'; - form.appendChild(clone); - clone.click(); // doing this because form.submit won't fire handles the way I want - form.removeChild(clone); - } -} - -if (!inputTargetSupported) { - body.addEventListener ? body.addEventListener('click', click, false) : body.attachEvent('onclick', click); -} - -})(); diff --git a/modules/html5-polyfills/offline-events.js b/modules/html5-polyfills/offline-events.js deleted file mode 100644 index fa1db11372..0000000000 --- a/modules/html5-polyfills/offline-events.js +++ /dev/null @@ -1,47 +0,0 @@ -// Working demo: http://jsbin.com/ozusa6/2/ -(function () { - -function triggerEvent(type) { - var event = document.createEvent('HTMLEvents'); - event.initEvent(type, true, true); - event.eventName = type; - (document.body || window).dispatchEvent(event); -} - -function testConnection() { - // make sync-ajax request - var xhr = new XMLHttpRequest(); - // phone home - xhr.open('HEAD', '/', false); // async=false - try { - xhr.send(); - onLine = true; - } catch (e) { - // throws NETWORK_ERR when disconnected - onLine = false; - } - - return onLine; -} - -var onLine = true, - lastOnLineStatus = true; - -// note: this doesn't allow us to define a getter in Safari -navigator.__defineGetter__("onLine", testConnection); -testConnection(); - -if (onLine === false) { - lastOnLineStatus = false; - // trigger offline event - triggerEvent('offline'); -} - -setInterval(function () { - testConnection(); - if (onLine !== lastOnLineStatus) { - triggerEvent(onLine ? 'online' : 'offline'); - lastOnLineStatus = onLine; - } -}, 5000); // 5 seconds, made up - can't find docs to suggest interval time -})(); diff --git a/modules/html5-polyfills/range.js b/modules/html5-polyfills/range.js deleted file mode 100644 index 5dcfbfae03..0000000000 --- a/modules/html5-polyfills/range.js +++ /dev/null @@ -1,94 +0,0 @@ -/** - * This was from a proposal that James Edwards / Brothercake had during - * 2011 Highland Fling - to use select elements as a starting point for - * the range element - so it's a pretty darn good fit, I put this together - * during his Q&A. In the end I needed to lift the detection code from - * Modernizr - which credit really goes to @miketaylr. - * My code starts from "if (bool) {" - * - * This code is looking for -// into a range element. -if (bool) { - function firstChild(el, nodeName) { - nodeName = nodeName.toUpperCase(); - if (el.firstChild.nodeName === nodeName) { - return el.firstChild; - } else { - return el.firstChild.nextSibling; - } - } - - function lastChild(el, nodeName) { - nodeName = nodeName.toUpperCase(); - if (el.lastChild.nodeName === nodeName) { - return el.lastChild; - } else { - return el.lastChild.previousSibling; - } - } - - var selects = document.getElementsByTagName('select'), - i = 0; - - for (; i < selects.length; i++) { - if (selects[i].getAttribute('data-type') == 'range') (function (select) { - var range = document.createElement('input'), - parent = select.parentNode; - - range.setAttribute('type', 'range'); - // works with the select element removed from the DOM - select = parent.replaceChild(range, select); - range.autofocus = select.autofocus; - range.disabled = select.disabled; - range.autocomplete = select.autocomplete; // eh? how would this even work? - range.className = select.className; - range.id = select.id; - range.style = select.style; - range.tabindex = select.tabindex; - range.title = select.title; - range.min = firstChild(select, 'option').value; - range.max = lastChild(select, 'option').value; - range.value = select.value; - range.name = select.name; - // Add step support - if ( select.getAttribute('data-type-range-step') ) { - range.step = select.getAttribute('data-type-range-step'); - } - // yeah, this is filth, but it's because getElementsByTagName is - // a live DOM collection, so when we removed the select element - // the selects object reduced in length. Freaky, eh? - i--; - })(selects[i]); - } -} -}(); diff --git a/modules/html5-polyfills/sessionStorage.js b/modules/html5-polyfills/sessionStorage.js deleted file mode 100644 index 03ff5a036b..0000000000 --- a/modules/html5-polyfills/sessionStorage.js +++ /dev/null @@ -1,23 +0,0 @@ -if (!sessionStorage && JSON) { - sessionStorage = (function () { - var data = window.name ? JSON.parse(window.name) : {}; - - return { - clear: function () { - data = {}; - window.name = ''; - }, - getItem: function (key) { - return data[key] === undefined ? null : data[key]; - }, - removeItem: function (key) { - delete data[key]; - window.name = JSON.stringify(data); - }, - setItem: function (key, value) { - data[key] = value; - window.name = JSON.stringify(data); - } - }; - })(); -} diff --git a/modules/html5-polyfills/tests/eventsource.html b/modules/html5-polyfills/tests/eventsource.html deleted file mode 100644 index ce272fceb7..0000000000 --- a/modules/html5-polyfills/tests/eventsource.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -event source test - - - - - - \ No newline at end of file diff --git a/modules/html5-polyfills/tests/offline-events.html b/modules/html5-polyfills/tests/offline-events.html deleted file mode 100644 index aacf418c7c..0000000000 --- a/modules/html5-polyfills/tests/offline-events.html +++ /dev/null @@ -1,35 +0,0 @@ - - - -Online and offline event tests - - - -

    Directions: disconnect the internet connection from your machine and watch the status switch from online to offline (and back again if you want to see the online event fire).

    -

    Note that this polyfill phones home so it will also fire the offline event if the server this script is hosted on, goes down (feature or bug? who knows!).

    -

    ONLINE

    - - - - - diff --git a/modules/html5-polyfills/tests/range.html b/modules/html5-polyfills/tests/range.html deleted file mode 100644 index 1ce1e0f272..0000000000 --- a/modules/html5-polyfills/tests/range.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -range polyfill... - - -
    - -
    -
    - -
    - -
    -

    Last two examples are as the previous, but add data-type-range-step="5":

    - -
    -

    This one has the last value set to 51, instead of 50:

    - - - - \ No newline at end of file From 33f884e206e1742f23ff8f9f06e5a2b72e2d8e69 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Jun 2015 10:16:44 -0400 Subject: [PATCH 0246/3805] feature(listeners) DOM.toggleClass -> classList.toggleClass --- lib/client/listeners.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 1af1f14420..9f3e8b944d 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -232,7 +232,7 @@ var Util, DOM, CloudFunc, CloudCmd; toggle = function() { forEach.call(panels, function(panel) { - DOM.toggleClass(panel, 'selected-panel'); + panel.classList.toggleClass('selected-panel'); }); }, onDrop = function(event) { From 8a5c56db844eb3693f15fec78ee73548bda05d1e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 8 Jun 2015 04:05:13 -0400 Subject: [PATCH 0247/3805] feature(package) gulp v3.9.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e65c8a5de4..2c80888045 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "bower": "~1.4.1", - "gulp": "~3.8.0", + "gulp": "^3.9.0", "gulp-jscs": "~1.6.0", "gulp-jshint": "^1.11.0", "gulp-mocha": "~2.1.0", From f7b42a3ee9fe6588cfb3163130a9b18ecacec8f8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 8 Jun 2015 10:07:34 -0400 Subject: [PATCH 0248/3805] feature(package) rm checkup --- lib/server/config.js | 6 +++--- lib/server/rest.js | 16 ++++++++++++---- package.json | 1 - 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index d2013d83d6..c57f45e4d4 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -11,12 +11,12 @@ HOME = (HOME_UNIX || HOME_WIN) + '/', fs = require('fs'), + assert = require('assert'), password = require(DIR_SERVER + 'password'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), - check = require('checkup'), tryCatch = require('try-catch'), pipe = require('pipe-io'), ponse = require('ponse'), @@ -64,7 +64,7 @@ function save(callback) { var data = jonny.stringify(config, 0, 4); - check(arguments, ['callback']); + assert('callback'); if (data) fs.writeFile(ConfigHome, data, callback); @@ -73,7 +73,7 @@ } function socket(sock) { - check(arguments, ['socket']); + assert('socket'); sock.of('/config') .on('connection', function(socket) { diff --git a/lib/server/rest.js b/lib/server/rest.js index 31b6786c37..34fc1a2ccd 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -14,6 +14,7 @@ DIR_JSON = DIR_LIB + '../json/', path = require('path'), + assert = require('assert'), root = require(DIR + 'root'), config = require(DIR + 'config'), binom = require(DIR + 'binom'), @@ -31,12 +32,19 @@ rendy = require('rendy'), copymitter = require('copymitter'), json = require('jonny'), - check = require('checkup'), Modules = require(DIR_JSON + 'modules'), isWin32 = process.platform === 'win32'; + + function check() { + var i, + n = arguments.length; + for (i = 0; i < n; i++) + assert(arguments[i]); + } + /** * rest interface * @@ -51,7 +59,7 @@ response : response }; - check(arguments, ['request', 'response', 'next']); + check(request, response, next); apiURL = CloudFunc.apiURL; name = ponse.getPathName(request); @@ -170,7 +178,7 @@ function onPUT(name, body, callback) { var cmd, files, data, from, to, msg; - check(arguments, ['name', 'body', 'callback']); + check(name, body, callback); if (name[0] === '/') cmd = name.replace('/', ''); @@ -326,7 +334,7 @@ }); }; - check(arguments, ['files', 'processFunc', 'callback']); + check(files, processFunc, callback); copy(); } diff --git a/package.json b/package.json index 2c80888045..8e8630ea58 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ }, "subdomain": "cloudcmd", "dependencies": { - "checkup": "~1.0.3", "console-io": "~2.2.0", "copymitter": "~1.8.0", "dword": "~1.5.0", From 0ebc50479c63bec4f9e5fc043c71a5fe68973327 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 8 Jun 2015 11:11:43 -0400 Subject: [PATCH 0249/3805] feature(package) v1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8e8630ea58..1c0ac98146 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "express": "~4.12.0", "faust": "~1.0.0", "files-io": "~1.2.0", - "flop": "~1.0.25", + "flop": "~1.1.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", "jag": "~1.0.0", From 3fd5ad86829c3ee0b0f4ad375a3af474ba3688a9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 03:02:35 -0400 Subject: [PATCH 0250/3805] feature(package) add checkup back --- lib/server/config.js | 8 ++++---- lib/server/rest.js | 16 ++++------------ package.json | 1 + 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index c57f45e4d4..d80b2f0fa9 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -11,12 +11,12 @@ HOME = (HOME_UNIX || HOME_WIN) + '/', fs = require('fs'), - assert = require('assert'), password = require(DIR_SERVER + 'password'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), + check = require('checkup'), tryCatch = require('try-catch'), pipe = require('pipe-io'), ponse = require('ponse'), @@ -64,7 +64,7 @@ function save(callback) { var data = jonny.stringify(config, 0, 4); - assert('callback'); + check([callback], ['callback']); if (data) fs.writeFile(ConfigHome, data, callback); @@ -73,7 +73,7 @@ } function socket(sock) { - assert('socket'); + check([sock], ['socket']); sock.of('/config') .on('connection', function(socket) { @@ -180,4 +180,4 @@ json.password = password(algo, json.password); } -})(); +})(); \ No newline at end of file diff --git a/lib/server/rest.js b/lib/server/rest.js index 34fc1a2ccd..31b6786c37 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -14,7 +14,6 @@ DIR_JSON = DIR_LIB + '../json/', path = require('path'), - assert = require('assert'), root = require(DIR + 'root'), config = require(DIR + 'config'), binom = require(DIR + 'binom'), @@ -32,19 +31,12 @@ rendy = require('rendy'), copymitter = require('copymitter'), json = require('jonny'), + check = require('checkup'), Modules = require(DIR_JSON + 'modules'), isWin32 = process.platform === 'win32'; - - function check() { - var i, - n = arguments.length; - for (i = 0; i < n; i++) - assert(arguments[i]); - } - /** * rest interface * @@ -59,7 +51,7 @@ response : response }; - check(request, response, next); + check(arguments, ['request', 'response', 'next']); apiURL = CloudFunc.apiURL; name = ponse.getPathName(request); @@ -178,7 +170,7 @@ function onPUT(name, body, callback) { var cmd, files, data, from, to, msg; - check(name, body, callback); + check(arguments, ['name', 'body', 'callback']); if (name[0] === '/') cmd = name.replace('/', ''); @@ -334,7 +326,7 @@ }); }; - check(files, processFunc, callback); + check(arguments, ['files', 'processFunc', 'callback']); copy(); } diff --git a/package.json b/package.json index 1c0ac98146..8d51402916 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ }, "subdomain": "cloudcmd", "dependencies": { + "checkup": "~1.0.3", "console-io": "~2.2.0", "copymitter": "~1.8.0", "dword": "~1.5.0", From e761f4c8c89354c6842a9941538d2421fff622fa Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 03:31:53 -0400 Subject: [PATCH 0251/3805] feature(package) checkup v1.1.0 --- lib/server/rest.js | 21 ++++++++++++++++++--- package.json | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 31b6786c37..32c3184d9b 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -51,7 +51,12 @@ response : response }; - check(arguments, ['request', 'response', 'next']); + check + .type('next', next, 'function') + .check({ + request: request, + response: response + }). apiURL = CloudFunc.apiURL; name = ponse.getPathName(request); @@ -170,7 +175,12 @@ function onPUT(name, body, callback) { var cmd, files, data, from, to, msg; - check(arguments, ['name', 'body', 'callback']); + check + .type('callback', callback, 'function') + .check({ + name: name, + body: body + }); if (name[0] === '/') cmd = name.replace('/', ''); @@ -326,7 +336,12 @@ }); }; - check(arguments, ['files', 'processFunc', 'callback']); + check + .type('callback', callback, 'function') + .type('processFunc', processFunc, 'function') + .check({ + files: files + }); copy(); } diff --git a/package.json b/package.json index 8d51402916..97c74a7589 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "subdomain": "cloudcmd", "dependencies": { - "checkup": "~1.0.3", + "checkup": "~1.1.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", "dword": "~1.5.0", From 2a2a9fbae458b2033f794a3da3ac88b52ae530c5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 03:34:48 -0400 Subject: [PATCH 0252/3805] chore(config) add "\n" --- lib/server/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server/config.js b/lib/server/config.js index d80b2f0fa9..e1d3a99b43 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -180,4 +180,4 @@ json.password = password(algo, json.password); } -})(); \ No newline at end of file +})(); From 8fe4ff628b047fb2924448f4bb106d84a176f53e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 05:28:51 -0400 Subject: [PATCH 0253/3805] feature(cloudcmd) speedup: execon.series -> express --- lib/cloudcmd.js | 41 +++++++++++++++++++++++++++-------------- lib/server.js | 2 +- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 914f3fcc0b..229b7330c4 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -37,10 +37,7 @@ module.exports = function(params) { var keys, p = params || {}, - prefix = p.prefix || '/cloudcmd', - - funcs = cloudcmd(), - middle = respond.bind(null, prefix, funcs); + prefix = p.prefix || '/cloudcmd'; if (params) { keys = Object.keys(params); @@ -50,6 +47,15 @@ }); } + return cloudcmd(prefix); + }; + + module.exports.middle = function(params) { + var p = params || {}, + prefix = p.prefix || '/cloudcmd', + funcs = cloudcmd(), + middle = respond.bind(null, prefix, funcs); + return middle; }; @@ -79,7 +85,7 @@ }); }; - function cloudcmd() { + function cloudcmd(prefix) { var isOption = function(name) { return config(name); }, @@ -97,6 +103,7 @@ }), funcs = [ + setUrl(prefix), authFunc, config(), restafary({ @@ -146,16 +153,22 @@ return funcs; } - function respond(prefix, funcs, req, res) { - var is = !req.url.indexOf(prefix); - - if (is) { - req.url = req.url.replace(prefix, '') || '/'; + function setUrl(prefix) { + return function(req, res, next) { + var is = !req.url.indexOf(prefix); - if (req.url === '/cloudcmd.js') - req.url = '/lib/client/cloudcmd.js'; - } - + if (is) { + req.url = req.url.replace(prefix, '') || '/'; + + if (req.url === '/cloudcmd.js') + req.url = '/lib/client/cloudcmd.js'; + } + + next(); + }; + } + + function respond(prefix, funcs, req, res) { funcs = funcs.map(function(func) { return Util.exec.with(func, req, res); }); diff --git a/lib/server.js b/lib/server.js index add0e156b2..0dc31ef6e7 100644 --- a/lib/server.js +++ b/lib/server.js @@ -29,7 +29,7 @@ config('ip') || '0.0.0.0', - expressApp = express.getApp([middle], { + expressApp = express.getApp(middle, { auth : config('auth'), username: config('username'), password: config('password') From 224bdc4eae22d0a3a903ddd6352981d4c8927e8a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 05:34:42 -0400 Subject: [PATCH 0254/3805] feature(package) checkup v1.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 97c74a7589..8fb841eb58 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "subdomain": "cloudcmd", "dependencies": { - "checkup": "~1.1.0", + "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", "dword": "~1.5.0", From b274fd17ad953efc9a8d7e4c063157bab2a8bac5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 06:57:30 -0400 Subject: [PATCH 0255/3805] chore(package) v3.1.0 --- ChangeLog | 22 ++++++++++++++++++++++ bower.json | 2 +- package.json | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 04e17d6138..e02ca7a61e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2015.06.09, v3.1.0 + +fix: +- (util) check: isEmpty + +feature: +- (package) checkup v1.3.0 +- (cloudcmd) speedup: execon.series -> express +- (package) checkup v1.1.0 +- (package) add checkup back +- (package) v1.1.0 +- (package) rm checkup +- (package) gulp v3.9.0 +- (listeners) DOM.toggleClass -> classList.toggleClass +- (bower) add domtokenlist-shim +- (util) exec.with: callback.bind -> bind.apply +- (util) exec.with: arguments[0] -> slice.call(arguments) +- (dom) rm addClass, removeClass +- (dom) loading, error: DOM.add/removeClass -> classList.add/remove +- (dom) Images.show.error: jqXHR -> text + + 2015.06.04, v3.0.4 feature: diff --git a/bower.json b/bower.json index 9906ebcf5b..7bda5b0d4a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.0.4", + "version": "3.1.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 8fb841eb58..8c83ff249f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.0.4", + "version": "3.1.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 73e6c69c0c90a93376cf01a3dd9ee9f2d64947d0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 07:08:06 -0400 Subject: [PATCH 0256/3805] chore(package) 3.1.0 --- HELP.md | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/HELP.md b/HELP.md index ef8e193bff..2c24d14f2b 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.0.4 +Cloud Commander v3.1.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -355,6 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.09*, **[v3.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.2.0.tar.gz)** - *2015.06.04*, **[v3.0.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.4.tar.gz)** - *2015.06.02*, **[v3.0.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.3.tar.gz)** - *2015.05.31*, **[v3.0.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.2.tar.gz)** diff --git a/README.md b/README.md index 641da91ed7..7b2d330727 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.0.4 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.1.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) From a8ae90934bd834980b7c7f9e5355557eb0a01f1c Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 14:16:27 +0300 Subject: [PATCH 0257/3805] docs(help) 3.2.0 -> 3.1.0 --- HELP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HELP.md b/HELP.md index 2c24d14f2b..126d9476d2 100644 --- a/HELP.md +++ b/HELP.md @@ -355,7 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- -- *2015.06.09*, **[v3.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.2.0.tar.gz)** +- *2015.06.09*, **[v3.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.0.tar.gz)** - *2015.06.04*, **[v3.0.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.4.tar.gz)** - *2015.06.02*, **[v3.0.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.3.tar.gz)** - *2015.05.31*, **[v3.0.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.2.tar.gz)** From 92fdfb98034caf8d50c53d6368f3afb065767a3c Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 07:30:57 -0400 Subject: [PATCH 0258/3805] fix(rest) markdown: "." -> ";" --- lib/server/rest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 32c3184d9b..9363aee1c9 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -56,7 +56,7 @@ .check({ request: request, response: response - }). + }); apiURL = CloudFunc.apiURL; name = ponse.getPathName(request); From 6a4111028830d0d338c986e73cd95772d7a19cdd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 07:32:05 -0400 Subject: [PATCH 0259/3805] chore(package) v3.1.1 --- ChangeLog | 6 ++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e02ca7a61e..e7f83621fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015.06.09, v3.1.1 + +fix: +- (rest) markdown: "." -> ";" + + 2015.06.09, v3.1.0 fix: diff --git a/HELP.md b/HELP.md index 126d9476d2..0f68ffefb0 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.0 +Cloud Commander v3.1.1 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -355,6 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.09*, **[v3.1.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.1.tar.gz)** - *2015.06.09*, **[v3.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.0.tar.gz)** - *2015.06.04*, **[v3.0.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.4.tar.gz)** - *2015.06.02*, **[v3.0.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.3.tar.gz)** diff --git a/README.md b/README.md index 7b2d330727..0597f2e72e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.1.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 7bda5b0d4a..74c3da1c42 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.0", + "version": "3.1.1", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 8c83ff249f..69310b3488 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.0", + "version": "3.1.1", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 5f22fc64cb179fadc02adcb9c2940fda024a82ab Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 9 Jun 2015 09:23:44 -0400 Subject: [PATCH 0260/3805] chore(Rest) new RegExp -> RegExp --- lib/server/rest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 9363aee1c9..19884c41af 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -60,7 +60,7 @@ apiURL = CloudFunc.apiURL; name = ponse.getPathName(request); - regExp = new RegExp('^' + apiURL), + regExp = RegExp('^' + apiURL), is = regExp.test(name); if (!is) { From 653d0492aefd420e370028f9df0ce01511073cf9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 10 Jun 2015 06:08:14 -0400 Subject: [PATCH 0261/3805] fix(dom) operation: copy/move buttons do not work --- lib/client/operation.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/client/operation.js b/lib/client/operation.js index 606827ba2a..189e144e02 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -104,11 +104,11 @@ if (Loaded) switch(operation) { case 'copy': - this.copy(data); + Operation.copy(data); break; case 'move': - this.move(data); + Operation.move(data); break; } }; From c9bbf0cf2ba205ce54c19a50ac34e64bdfaeb659 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 10 Jun 2015 06:09:08 -0400 Subject: [PATCH 0262/3805] chore(package) v3.1.2 --- ChangeLog | 6 ++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e7f83621fa..59d14c0ea9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015.06.10, v3.1.2 + +fix: +- (dom) operation: copy/move buttons do not work + + 2015.06.09, v3.1.1 fix: diff --git a/HELP.md b/HELP.md index 0f68ffefb0..c714bff0d7 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.1 +Cloud Commander v3.1.2 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -355,6 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.10*, **[v3.1.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.2.tar.gz)** - *2015.06.09*, **[v3.1.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.1.tar.gz)** - *2015.06.09*, **[v3.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.0.tar.gz)** - *2015.06.04*, **[v3.0.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.0.4.tar.gz)** diff --git a/README.md b/README.md index 0597f2e72e..6e44fa777f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.1.2 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 74c3da1c42..a1eb764953 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.1", + "version": "3.1.2", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 69310b3488..e3a07ee4bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.1", + "version": "3.1.2", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From d533a4259d5f260f8c6cd7bfc5c02fad15ca4fdb Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 10 Jun 2015 12:28:02 -0400 Subject: [PATCH 0263/3805] feature(html) html -> tmpl: 2 x times speed up --- lib/client/files.js | 4 ++-- lib/server/route.js | 13 +++++++------ html/auth.html => tmpl/auth.hbs | 0 html/auth/dropbox.html => tmpl/auth/dropbox.hbs | 0 html/auth/github.html => tmpl/auth/github.hbs | 0 html/config.html => tmpl/config.hbs | 0 html/fs/file.html => tmpl/fs/file.hbs | 0 html/fs/index.html => tmpl/fs/index.hbs | 0 html/fs/link.html => tmpl/fs/link.hbs | 0 html/fs/panel.html => tmpl/fs/panel.hbs | 0 html/fs/path.html => tmpl/fs/path.hbs | 0 html/fs/pathLink.html => tmpl/fs/pathLink.hbs | 0 html/upload.html => tmpl/upload.hbs | 0 html/view/media.html => tmpl/view/media.hbs | 0 14 files changed, 9 insertions(+), 8 deletions(-) rename html/auth.html => tmpl/auth.hbs (100%) rename html/auth/dropbox.html => tmpl/auth/dropbox.hbs (100%) rename html/auth/github.html => tmpl/auth/github.hbs (100%) rename html/config.html => tmpl/config.hbs (100%) rename html/fs/file.html => tmpl/fs/file.hbs (100%) rename html/fs/index.html => tmpl/fs/index.hbs (100%) rename html/fs/link.html => tmpl/fs/link.hbs (100%) rename html/fs/panel.html => tmpl/fs/panel.hbs (100%) rename html/fs/path.html => tmpl/fs/path.hbs (100%) rename html/fs/pathLink.html => tmpl/fs/pathLink.hbs (100%) rename html/upload.html => tmpl/upload.hbs (100%) rename html/view/media.html => tmpl/view/media.hbs (100%) diff --git a/lib/client/files.js b/lib/client/files.js index 3c377cb09c..484eac1910 100644 --- a/lib/client/files.js +++ b/lib/client/files.js @@ -18,7 +18,7 @@ FILES_HTML = 'file|path|link|pathLink|media', FILES_HTML_ROOT = 'view/media-tmpl|config-tmpl|upload', funcs = [], - DIR_HTML = '/html/', + DIR_HTML = '/tmpl/', DIR_HTML_FS = DIR_HTML + 'fs/', DIR_JSON = '/json/'; @@ -78,7 +78,7 @@ else path = DIR_HTML_FS + name; - path += '.html'; + path += '.hbs'; } else if (isJSON) { path = DIR_JSON + name + '.json'; } diff --git a/lib/server/route.js b/lib/server/route.js index 8d410a61f8..44a9a55b38 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -2,7 +2,7 @@ 'use strict'; var DIR = __dirname + '/../../', - DIR_HTML = DIR + 'html/', + DIR_HTML = DIR + 'tmpl/', DIR_LIB = DIR + 'lib/', DIR_SERVER = __dirname + '/', DIR_FS = DIR_HTML + 'fs/', @@ -23,7 +23,7 @@ CloudFunc = require(DIR_LIB + 'cloudfunc'), - PATH_INDEX = DIR_FS + 'index.html', + PATH_INDEX = DIR_FS + 'index.hbs', TMPL_PATH = [ 'file', @@ -97,7 +97,7 @@ callback(); } else { filesList = TMPL_PATH.map(function(name) { - var path = DIR_FS + name + '.html'; + var path = DIR_FS + name + '.hbs'; paths[path] = name; @@ -143,9 +143,10 @@ request : request, response : response, gzip : true, - name : name + name : name, + mime : 'text/html' }; - + console.log(p.mime, '...') if (!isAuth && !isFS) callback(); else if (isAuth) { @@ -164,7 +165,7 @@ if (!error) buildIndex(dir, function(error, data) { p.name = PATH_INDEX; - + console.log(p, '88888') if (error) ponse.sendError(error, p); else diff --git a/html/auth.html b/tmpl/auth.hbs similarity index 100% rename from html/auth.html rename to tmpl/auth.hbs diff --git a/html/auth/dropbox.html b/tmpl/auth/dropbox.hbs similarity index 100% rename from html/auth/dropbox.html rename to tmpl/auth/dropbox.hbs diff --git a/html/auth/github.html b/tmpl/auth/github.hbs similarity index 100% rename from html/auth/github.html rename to tmpl/auth/github.hbs diff --git a/html/config.html b/tmpl/config.hbs similarity index 100% rename from html/config.html rename to tmpl/config.hbs diff --git a/html/fs/file.html b/tmpl/fs/file.hbs similarity index 100% rename from html/fs/file.html rename to tmpl/fs/file.hbs diff --git a/html/fs/index.html b/tmpl/fs/index.hbs similarity index 100% rename from html/fs/index.html rename to tmpl/fs/index.hbs diff --git a/html/fs/link.html b/tmpl/fs/link.hbs similarity index 100% rename from html/fs/link.html rename to tmpl/fs/link.hbs diff --git a/html/fs/panel.html b/tmpl/fs/panel.hbs similarity index 100% rename from html/fs/panel.html rename to tmpl/fs/panel.hbs diff --git a/html/fs/path.html b/tmpl/fs/path.hbs similarity index 100% rename from html/fs/path.html rename to tmpl/fs/path.hbs diff --git a/html/fs/pathLink.html b/tmpl/fs/pathLink.hbs similarity index 100% rename from html/fs/pathLink.html rename to tmpl/fs/pathLink.hbs diff --git a/html/upload.html b/tmpl/upload.hbs similarity index 100% rename from html/upload.html rename to tmpl/upload.hbs diff --git a/html/view/media.html b/tmpl/view/media.hbs similarity index 100% rename from html/view/media.html rename to tmpl/view/media.hbs From 275d89cf89b12884e5b176d4fd0132f975f8980c Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 10 Jun 2015 12:28:31 -0400 Subject: [PATCH 0264/3805] feature(package) ponse v1.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e3a07ee4bf..a5a9b4c038 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "minimist": "~1.1.0", "mollify": "~1.0.0", "pipe-io": "~1.1.1", - "ponse": "~1.3.0", + "ponse": "~1.4.0", "rendy": "~1.1.0", "restafary": "~1.3.0", "socket.io": "~1.3.5", From 81a958c31a0a5e5a1ea70b28335de47330fc6e24 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 10 Jun 2015 12:29:47 -0400 Subject: [PATCH 0265/3805] chore(route) rm console.log --- lib/server/route.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/server/route.js b/lib/server/route.js index 44a9a55b38..94708efe65 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -146,11 +146,11 @@ name : name, mime : 'text/html' }; - console.log(p.mime, '...') + if (!isAuth && !isFS) callback(); else if (isAuth) { - console.log('* Routing' + '-> ' + name); + //'* Routing' + '-> ' + name p.name = DIR_HTML + name + '.html'; ponse.sendFile(p); @@ -165,7 +165,7 @@ if (!error) buildIndex(dir, function(error, data) { p.name = PATH_INDEX; - console.log(p, '88888') + if (error) ponse.sendError(error, p); else From ae75d3449f01674aad0dd71380361a9feab79a43 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 11 Jun 2015 02:35:20 -0400 Subject: [PATCH 0266/3805] feature(tmpl) mv index, auth to html --- tmpl/auth.hbs => html/auth.html | 0 tmpl/auth/dropbox.hbs => html/auth/dropbox.html | 0 tmpl/auth/github.hbs => html/auth/github.html | 0 tmpl/fs/index.hbs => html/index.html | 0 lib/client.js | 4 ++-- lib/server/route.js | 9 +++++---- 6 files changed, 7 insertions(+), 6 deletions(-) rename tmpl/auth.hbs => html/auth.html (100%) rename tmpl/auth/dropbox.hbs => html/auth/dropbox.html (100%) rename tmpl/auth/github.hbs => html/auth/github.html (100%) rename tmpl/fs/index.hbs => html/index.html (100%) diff --git a/tmpl/auth.hbs b/html/auth.html similarity index 100% rename from tmpl/auth.hbs rename to html/auth.html diff --git a/tmpl/auth/dropbox.hbs b/html/auth/dropbox.html similarity index 100% rename from tmpl/auth/dropbox.hbs rename to html/auth/dropbox.html diff --git a/tmpl/auth/github.hbs b/html/auth/github.html similarity index 100% rename from tmpl/auth/github.hbs rename to html/auth/github.html diff --git a/tmpl/fs/index.hbs b/html/index.html similarity index 100% rename from tmpl/fs/index.hbs rename to html/index.html diff --git a/lib/client.js b/lib/client.js index 2caf95969f..e556fd6fe6 100644 --- a/lib/client.js +++ b/lib/client.js @@ -1,6 +1,6 @@ var Util, DOM, CloudFunc, join; -(function(scope, Util, DOM, CloudFunc, join) { +(function(scope, Util, DOM, CloudFunc) { 'use strict'; scope.CloudCmd = new CloudCmdProto(Util, DOM, CloudFunc); @@ -515,4 +515,4 @@ var Util, DOM, CloudFunc, join; } } -})(this, Util, DOM, CloudFunc, join); +})(this, Util, DOM, CloudFunc); diff --git a/lib/server/route.js b/lib/server/route.js index 94708efe65..3572440e65 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -2,10 +2,11 @@ 'use strict'; var DIR = __dirname + '/../../', - DIR_HTML = DIR + 'tmpl/', + DIR_TMPL = DIR + 'tmpl/', + DIR_HTML = DIR + 'html/', DIR_LIB = DIR + 'lib/', DIR_SERVER = __dirname + '/', - DIR_FS = DIR_HTML + 'fs/', + DIR_FS = DIR_TMPL + 'fs/', fs = require('fs'), @@ -23,7 +24,7 @@ CloudFunc = require(DIR_LIB + 'cloudfunc'), - PATH_INDEX = DIR_FS + 'index.hbs', + PATH_INDEX = DIR_HTML + 'index.html', TMPL_PATH = [ 'file', @@ -144,7 +145,7 @@ response : response, gzip : true, name : name, - mime : 'text/html' + //mime : 'text/html' }; if (!isAuth && !isFS) From 1b94d1e511ff1b6455c5c398cd603950c5738b9e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 11 Jun 2015 02:52:06 -0400 Subject: [PATCH 0267/3805] test(cloudfunc) html -> hbs --- test/lib/cloudfunc.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/lib/cloudfunc.js b/test/lib/cloudfunc.js index 9e7c113c3f..d9b2d7e2ce 100644 --- a/test/lib/cloudfunc.js +++ b/test/lib/cloudfunc.js @@ -3,14 +3,14 @@ var DIR = __dirname + '/../../', LIBDIR = DIR + 'lib/', - HTMLDIR = DIR + 'html/', + TMPLDIR = DIR + 'tmpl/', Util = require(LIBDIR + 'util'), CloudFunc = require(LIBDIR + 'cloudfunc'), files = require('files-io'), rendy = require('rendy'), - FS_DIR = HTMLDIR + 'fs/', + FS_DIR = TMPLDIR + 'fs/', EXPECT_PATH = DIR + 'test/lib/cloudfunc.html', TMPL_PATH = [ @@ -54,7 +54,7 @@ var paths = {}, filesList = TMPL_PATH.map(function(name) { - var path = FS_DIR + name + '.html'; + var path = FS_DIR + name + '.hbs'; paths[path] = name; From 060d4308567c2ddb07d3f8a82af8d6a94cfc33e2 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 11 Jun 2015 04:50:06 -0400 Subject: [PATCH 0268/3805] chore(package) v3.1.3 --- ChangeLog | 8 ++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 59d14c0ea9..17a482ebd5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2015.06.11, v3.1.3 + +feature: +- (tmpl) mv index, auth to html +- (package) ponse v1.4.0 +- (html) html -> tmpl: 2 x times speed up + + 2015.06.10, v3.1.2 fix: diff --git a/HELP.md b/HELP.md index c714bff0d7..323dc0fd50 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.2 +Cloud Commander v3.1.3 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -355,6 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.11*, **[v3.1.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.3.tar.gz)** - *2015.06.10*, **[v3.1.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.2.tar.gz)** - *2015.06.09*, **[v3.1.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.1.tar.gz)** - *2015.06.09*, **[v3.1.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.0.tar.gz)** diff --git a/README.md b/README.md index 6e44fa777f..4edae7b420 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.2 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.1.3 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index a1eb764953..61a636ac9c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.2", + "version": "3.1.3", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index a5a9b4c038..0cebc4cad2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.2", + "version": "3.1.3", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 52f6705de64cf9e8bd585ecb57266b62e8286c48 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 11 Jun 2015 09:59:34 -0400 Subject: [PATCH 0269/3805] fix(listeners) toggleClass -> toggle --- lib/client/listeners.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 9f3e8b944d..4e1ee4099e 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -232,7 +232,7 @@ var Util, DOM, CloudFunc, CloudCmd; toggle = function() { forEach.call(panels, function(panel) { - panel.classList.toggleClass('selected-panel'); + panel.classList.toggle('selected-panel'); }); }, onDrop = function(event) { From ce5a9f67963db527f8341ac590de60b160735433 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 11 Jun 2015 10:04:03 -0400 Subject: [PATCH 0270/3805] feature(view) add contextmenu to overlayclick --- lib/client/view.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/client/view.js b/lib/client/view.js index 8f6299a2ec..07dd0550f0 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -59,7 +59,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; View.hide = hide; function init() { - var func = CallBack || Util.exec.with(show, null); + var func = CallBack || Util.exec.with(show, null); Loading = true; @@ -79,7 +79,10 @@ var CloudCmd, Util, DOM, CloudFunc, $; className : 'fancybox-overlay fancybox-overlay-fixed' }); - Events.addClick(Util.exec.with(onOverLayClick, Overlay), Overlay); + ['click', 'contextmenu'].forEach(function(name) { + Events.add(name, Overlay, onOverLayClick); + }); + Events.addKey(listener); } @@ -285,12 +288,12 @@ var CloudCmd, Util, DOM, CloudFunc, $; }); } - function onOverLayClick(overlay, event) { + function onOverLayClick(event) { var isCurrent, isFiles, isFilesPassive, files = Info.files, filesPassive = Info.filesPassive, element = event.target, - isOverlay = element === overlay, + isOverlay = element === Overlay, position = { x: event.clientX, y: event.clientY From cb42053a1b9ee7ba633f85669d54c71b26d02a87 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 11 Jun 2015 10:04:47 -0400 Subject: [PATCH 0271/3805] chore(package) v3.1.4 --- ChangeLog | 9 +++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 17a482ebd5..0adb6a46ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2015.06.11, v3.1.4 + +fix: +- (listeners) toggleClass -> toggle + +feature: +- (view) add contextmenu to overlayclick + + 2015.06.11, v3.1.3 feature: diff --git a/HELP.md b/HELP.md index 323dc0fd50..dcf43f1075 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.3 +Cloud Commander v3.1.4 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -355,6 +355,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.11*, **[v3.1.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.4.tar.gz)** - *2015.06.11*, **[v3.1.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.3.tar.gz)** - *2015.06.10*, **[v3.1.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.2.tar.gz)** - *2015.06.09*, **[v3.1.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.1.tar.gz)** diff --git a/README.md b/README.md index 4edae7b420..2d97ce33f2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.3 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.1.4 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 61a636ac9c..c866abfded 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.3", + "version": "3.1.4", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 0cebc4cad2..7ba8f57383 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.3", + "version": "3.1.4", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 3634e6abe7725ba817130ec157d82ab7eca7a1a4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 12 Jun 2015 03:50:09 -0400 Subject: [PATCH 0272/3805] feature(cloudcmd) add logOut --- HELP.md | 1 + css/icons.css | 5 +++ font/fontello.eot | Bin 9852 -> 10024 bytes font/fontello.json | 6 ++++ font/fontello.svg | 43 +++++++++++++------------ font/fontello.ttf | Bin 9684 -> 9856 bytes font/fontello.woff | Bin 6116 -> 6248 bytes font/fontello.woff2 | Bin 5200 -> 5336 bytes img/screen/menu.png | Bin 49277 -> 33371 bytes lib/client.js | 9 ++++++ lib/client/load.js | 6 ++++ lib/client/menu.js | 76 +++++++++++++++++++++++++++----------------- lib/cloudcmd.js | 8 +++++ 13 files changed, 103 insertions(+), 51 deletions(-) diff --git a/HELP.md b/HELP.md index dcf43f1075..2b3a27854d 100644 --- a/HELP.md +++ b/HELP.md @@ -238,6 +238,7 @@ Right mouse click button shows context menu with items: - Copy - Paste - (Un)Select All +- Log Out (available when the `authorization` is enabled) ### Hot keys |Key |Operation diff --git a/css/icons.css b/css/icons.css index af28a46487..953ca20ae8 100644 --- a/css/icons.css +++ b/css/icons.css @@ -122,3 +122,8 @@ font-family : 'Fontello'; content : '\e819 '; } + +.icon-log-out::before { + font-family : 'Fontello'; + content : '\e81a '; +} diff --git a/font/fontello.eot b/font/fontello.eot index 12f282a7c944a18c3b1bbc01ebb54020e703e7a7..65c4d29701e667c53d6ab4e631d336e040e7cf29 100644 GIT binary patch delta 4021 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 delta 3883 zcmai1eQ;FO6~E_w@7v|=+ugVCZ8p1`{YZ90ve|_FcnrH6wd96yUc^782RyT%6hx*sMa@KXfbJGx`@=(}6l`w3~d747dP zz@94q0=l54{1$XW%|wuiLWz)>lk7UyNn9jCGDJQ*H(sMUShl6vlkbFV1QaHo0q|-1 z0?3+{FP};_LtGSa!pLRK4#?B7AdbCo`T5<#$V-2FWecp9Wyi22gDmjU-4ZW2T;f(y zmc^|&2SeYR92=Yb2W?UTQ(D_1Ii zsa)xI_AYxLxc8T>x;K94wL|fHf1~PZPn%O!ol7=ByHC6K2=mAfwWP0i?~x;WeZC$0 z_wU%(-M)Csp+j31w|6h3hHX9g4j`p?bnj>E1-$#Yc=H9)N&1Mp=<4fUVCCnfn;JO2 zrMWyP#8V<7OvK{Jh5{In%K39vO0@JYFq3W&e3qF-|7&h2|56C2U}$lrZSfFnhF!-h z2euZX#Z|>Ihhx&=#qU&3O{=R^HFu=^ju0xj?p!=HH18KBa&BxAIV>eH97tGsSRmOw;TpFSTkF0~yWhfm&& z7#CZQ?}S~t>As-qQT?oe#%t|&jz$~Dar)^?m-Hy~9>02?x$mO=M7hk&%*?#VUSdv? z8ZwVar<>yb62~C$Jo+)Khar~Lsh`CdZQ`wv^iU>H*t70Ml5_wbg`eQvGD}1k$kH^C zB|$vJ%Mwdu1t09iXZ5X%Wc9vYk-y z#C&)e^alKBfZ~w!RjmLp>v5+pQq|F%vgH8m2QiZpvQoR;>Bcky3+kz0{RSq~os9fb0Atb<%EHMFk z(&>wmd^6g-W6#rdmB)q;3B?3mrw!#SVBmfG2KFNJB0>-*d>q(WfyrT7&=l0vlpx}N zjIg8`M;fEpGF^~?fqlgX&9TKLMqAI8xwDD_V1jK4AH&9)l755G#qM66j$5Dm)7r}|0 zw;YT$78a~D`i5Z7+UaA%hoMfE?vce2QN9OBKZ(bj(X!TvOfu2ZuVCML*D#Sg7X3FnZ~0!ObF)rP6hf z{|nurKS@S!kE^FxMI7%NVVdCjTM^-aX2J?AT2X6$S*PfFNY|BW zN2QUJ4fndaCQ__fMT%KSq*MkAl}@O;hBpkBiPEDBZZOLCxQ$Ye6g+%5sJiRj^J@<` zMS86z&bD;c&2BsaM_&E2~#4?ZFOQT=jUk3DTj*SD|$W zuC88?C&MdZPAf+BPY*O#5PCG`*5GLFG#c)rL(=?epu$E`|efsUia z+ghZkQAHQkBt+*gVCD8D3?fQ2RJCLF{xN{BfksFJ6h@K9t!2$kZ)}2pX3%~_Wr{jx zmz!~gap6EHb)o&aK{udwMd!>zYq~ zv;4g0zW5?CNY;~WW}Z=`@^yATZh-Jx@k#AK*SB@R=y<^)aTC6wJ1tUZvI?77;4E|P5vNm&j}pk zUSqrdxZQ4TcsAEu{?{X$Z%(z|s&lmD43X5{Gg*QI zG;ddSVQGUKenQKr^AJ9MJi}bJ3#_vuzLO7B96N=rl19!br z=5z~c%M109BAp}s-io0TLL4j6;23O#71$G t)FT~r2=q5dEqP$#V_gKum#-LSAV2X`U@73nQ#EEe8~i7biDWI~`ZxV)1^@s6 diff --git a/font/fontello.json b/font/fontello.json index ed5497ce21..7271a68468 100644 --- a/font/fontello.json +++ b/font/fontello.json @@ -217,6 +217,12 @@ "css": "upload", "code": 59417, "src": "fontawesome" + }, + { + "uid": "2d76f2c8d13be40694ecadfea7fb83c3", + "css": "logout", + "code": 59418, + "src": "entypo" } ] } diff --git a/font/fontello.svg b/font/fontello.svg index 3b768ad4a0..77aea1518f 100644 --- a/font/fontello.svg +++ b/font/fontello.svg @@ -1,37 +1,38 @@ -Copyright (C) 2014 by original authors @ fontello.com +Copyright (C) 2015 by original authors @ fontello.com - - + + - - - - + + + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + + \ No newline at end of file diff --git a/font/fontello.ttf b/font/fontello.ttf index ba06184f4bbe1c1f5b10b67f7f5db6d68046bbde..1562b4805ddb01a1fd3a1ad2201d80ba965b3147 100644 GIT binary patch delta 3991 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 E4cp@Ve*gdg diff --git a/font/fontello.woff b/font/fontello.woff index 262eddc9d269241cd414365077781694b26a0ea8..6c5abc6eb116db90133590d205db1ef0e1dc8f2a 100644 GIT binary patch delta 4486 zcmV;15qa+9FX%87cTYw}00961000Eoo2$Qd*}R&8al1AWG_4RiuBQQ?T&3&pW$LxKkQ==biWCnVH}FeEgp0HN&p1tbbl$cdU|eo&HS=^z#T8O(_+ z&$FWUeL<3#2ChdDSAUqPF{6lUWJ7l}$Re&>6H7ZZz8tL-A%jRdz$lk$Lr^kwO%N3@ z^~QR|-2_9dxwaMD72KAk$LW``nIC$1{fV)_x^0{g;H_ML-iT)g!C#8CBxFkqy|uQh z+t+gj&=snQYmCRNAgZGiiGWYN?VTvgMMY zKn^D=E?U9R1j2<9R!Yg;$p!L`BHvgy8ag~b&TjU8W?9kY8+wu?O!(A?eQ*4LZdv*P z!?Ip&Ew$f&zkjAgJ9Ri0k9&Wd_s+T&Y)|Gb=udc;tb%pJ$|u1pBoIEsGR*27c8NTV z_|r@o?a}ANwJ@Q6VmnmhX}emf38Do_7b>=x7Ie)5w_0)0U3g6txMbF`D>b(OoN2J< zrjMmhy?H8qZ2JCpfP2Tgss^{#RYM)^3##y&;12Ht?|--62Rnkn9Uy@X(vBbu93L6j zvj5bn{aXe`jz4+g1l)(B^-qTs(jxbbs=tgzpE+~pnW(KDJ43$rRgGbIAM?BDLjroy zrfE#d7aSX>1TliX zpDMWa_afk?D~R7f!9c!uz*_jTda*4GI?(5)#K& za?N*a74Z!c%%Am6o`qrsU!m?)3;v!DvP_>%AutO>7J{V-p*_$l{7`32DV{F zFhp>hPL(zhKSW>yUC`Zf7|I})%~~~s%5XA~6dDmC%>jE6b&@nzZsN_mfsLWQ8+MH) z?AfWYg$3`s3kzR(?N^q06D)(+Z&~INc?#v{{Kw8F4LD-B;dfOdX*V{p!U7~|C=yPOsb@iw0O>%*WG3y!Wa!-3CK+t3~yi>HnfU&79N=7?i ze6SkYDs6A{!-hH@1x}5_F3HjgBTIsKk>@Y*VVPyb5cs_n+LI-gkriD0G36_I2^V>l zzsO^#%g`yIWJq`%f0B$poTu2l)&FAOBY(FTg|QHuhMY-!)rzbF=q?UxyXBmjs`+}Q z+(Z#xOR6MKwB+62R=7M-lk7qH?nQ-5YOhq%76#5vEep3}F>f%|R)WP??1|3fS|V*_ zV>AW@wCx49#plEhrkB~kY+)W_BE!m~+lL3;_1&2`5~P42(6~sDz7KC`8vB#R(SJxP zg0YGKhXBfs?PLUz*QrdT5e!ZwL)A*9aXU3+o({kUELqA@KE!7JqwY6lvC$RfaW5oE z1l}Z)z8}`WP}oS=fKM3J$Na9}f;z6?a@cP{SzEyY#YYg|%j`e1ZA>4s zlytej>`*_CRBFZ$lB-*@FgR<5DNrLJ)nbki1ssYr?+K#q41rSw(avcGT7R$zf>@d> zaf#s>b87EIYaINv( z${y}Bw!}e527)vk<`qLqB%=A!sh#&7-_yV66{eAIULx1oBzjzwF_}1e8**=ZqBW*# zG6yu@M5`%1iWN%aqcl?nj6cv*ReJq5#6F)N7|45}&cVS>xb21DId2JKcva@+;Lij3 zl~KAvuIC5tzC*6BjDM1e*;()C>}-QC?{Iy{4>9C@>9U;&bCi=RXoWOVBQ1xTHPJ@! zv$F5oHFSN4rfI{Z4f>Y_L+4U5h+CTo36+8Tcy%U+88-Kdfk;5N{PZNE7Sk8S| z)1gOe$d)Cv)hFV+2Urv8-^90FS_7swfFAyMd|bniF?UK>#Ek?BPTIcyo20o}?GLqYq z_=8R}vMl3MroQa6%W@+w53-kWKOxk(blFe|%~5)!mWp6j*XiX{%hfU#Kp8z#y-vg# zZ~pu6^0PP2zVXJ{7unK}yjOsGX{A2<#>;QeUn9;guzz*5VHM-d3DG#CHIf3oG_=JG zO}!XzxOq$OHdbgXHi9cnJ-4nqh7yP-`{GU0*NZ|B>`+6!>HZ9vH?O8oTcHZ`0L z_s37?t+Dp}x7+&FOjvC_4U#g@wh^D1{$YC_3W*<1m`33A$4V z1t{#d?-?jUQ^MCF);f2%5^^imqI5YL0P07%T1rGyiqNPLY_|ptO22*Gd+0j*hk&4X zAtUKMq^Gg;QsB0pg!6iK_^r3du4q2IvKTWoypzG0(fGz9>yi(!o@%GQ8V=ALvI!!& znt$C=b899&(g80T1o<3uBIZ2t+9B`Hvxm6D_2;?z_$&u6gGPsYULbpMIP>K5hrHjZ zGhcy;qjhzkIzGD$%Q*C2JGxifPlpd5V#L*D)c>;iF|6% zDD<}PD8%Dz?$%)I*mA=D?i56?LgMoygRr(E5WjJIm*LzNKku^ZpG?FMmk`8|dil?66?UXeO6JBiS_g>m~L$);y+v4zgO;@ff!$ zOe*(OI4Mf~nJSh!Vl{<-@V|Sp#QBn6;=GU_*y}yPCSUi4;3xI^T5&UwfAPhYQP{e8 z^u?op1w!wp@&I_8V_;-pU;tw0b4}ag`E9;3a5KLEiZEPU5S|2~brp^N|N5WF(##wL z`DfkXjtat$Jra1y3tLMZY7Orl9Fc1WLoHJ_zpgdFX6NJHJysIn2^l5XYSm&nE*J)HxxEkm(PY3 zju>sYghMZ`BkE0aXAl}7(YI<0nB#w*cON#>{GFKnz$ zEYHu29Y>+b6P-!hYi-q2n1#l-;rqIJzKlB7PGn;AOa?AP z=0;D$zC;az2a0X?LC^j|M|Wj;ADhN0C=2jj>%HPFc3u5 zi5HPLfv_+61s(V#Ax&%*vc@HU$>qS;<5Wm-p>MBix_iVzoV61FYcB*ASfW6Q3N<9I zu)-P*HrV1CH`w78ceuv`9`S@{yxjElyTZ94M91vZIeR@x7p{-C_1 zFDl5oTv#?q($RD}v{W6~TZ(0lI(0=)VJr=|>Ro1vy$jmchWpvha*nA@Ovl`egJ*4( z@jTkCgGs$FJntxB_ Ya7tI_y~=aTV;15E@h4jR0F!zbYNO0h1ONa4 delta 4373 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Ù&yPAhnwlMZW55m}c+n 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 XqaQR;BSbcE`R|*$raJXn&N2TFKmE5~ diff --git a/lib/client.js b/lib/client.js index e556fd6fe6..698748acd3 100644 --- a/lib/client.js +++ b/lib/client.js @@ -212,6 +212,15 @@ var Util, DOM, CloudFunc, join; } }; + this.logOut = function() { + DOM.load.ajax({ + url: '/logout', + error: function() { + document.location.reload(); + } + }); + }; + function initModules(callback) { Util.exec.if(CloudCmd.Key, function() { Key = new CloudCmd.Key(); diff --git a/lib/client/load.js b/lib/client/load.js index 8e0ebb29d0..d63e09d2aa 100644 --- a/lib/client/load.js +++ b/lib/client/load.js @@ -167,10 +167,16 @@ var Util, DOM; isArray = Util.type.array(p.data), isArrayBuf = Util.type(p.data) === 'arraybuffer', type = p.type || p.method || 'GET', + headers = p.headers || {}, xhr = new XMLHttpRequest(); xhr.open(type, p.url, true); + Object.keys(headers).forEach(function(name) { + var value = headers[name]; + xhr.setRequestHeader(name, value); + }); + if (p.responseType) xhr.responseType = p.responseType; diff --git a/lib/client/menu.js b/lib/client/menu.js index 1a86ce2ed3..6bd70c8470 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -74,11 +74,11 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; MenuContext.show(x, y); MenuContextFile.show(x, y); } else { - loadFileMenuData(function(menuDataFile) { + loadFileMenuData(function(isAuth, menuDataFile) { var is, menu, NOT_FILE = true, fm = DOM.getFM(), - menuData = getMenuData(), + menuData = getMenuData(isAuth), options = getOptions(NOT_FILE), optionsFile = getOptions(); @@ -102,6 +102,17 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; } } + function isAuth(callback) { + DOM.Files.get('config', function(error, config) { + var is = config.auth; + + if (error) + DOM.alert(error); + + callback(is); + }); + } + function getOptions(notFile) { var name, func, options; @@ -123,7 +134,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; return options; } - function getMenuData() { + function getMenuData(isAuth) { var menu = { 'Paste' : Buffer.paste, 'New' : { @@ -134,38 +145,43 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; '(Un)Select All': DOM.toggleAllSelectedFiles }; + if (isAuth) + menu['Log Out'] = CloudCmd.logOut; + return menu; } function loadFileMenuData(callback) { - getUploadTo(function(menuUpload) { - var show = function(name) { - CloudCmd[name].show(); - }, - menuData = getMenuData(), - menu = { - 'View' : Util.exec.with(show, 'View'), - 'Edit' : Util.exec.with(show, 'Edit'), - 'Rename' : function() { - setTimeout(DOM.renameCurrent, 100); + isAuth(function(is) { + getUploadTo(function(menuUpload) { + var show = function(name) { + CloudCmd[name].show(); }, - 'Delete' : DOM.promptDelete, - 'Pack' : getActiveFunc(DOM.pack), - 'Unpack' : getActiveFunc(DOM.unpack), - 'Upload' : function() { - CloudCmd.Upload.show(); - }, - 'Upload To' : {}, - 'Download' : download, - 'Cut' : Buffer.cut, - 'Copy' : Buffer.copy, - }; - - menu['Upload To'] = menuUpload; - - Util.copyObj(menu, menuData); - - Util.exec(callback, menu); + menuData = getMenuData(is), + menu = { + 'View' : Util.exec.with(show, 'View'), + 'Edit' : Util.exec.with(show, 'Edit'), + 'Rename' : function() { + setTimeout(DOM.renameCurrent, 100); + }, + 'Delete' : DOM.promptDelete, + 'Pack' : getActiveFunc(DOM.pack), + 'Unpack' : getActiveFunc(DOM.unpack), + 'Upload' : function() { + CloudCmd.Upload.show(); + }, + 'Upload To' : {}, + 'Download' : download, + 'Cut' : Buffer.cut, + 'Copy' : Buffer.copy, + }; + + menu['Upload To'] = menuUpload; + + Util.copyObj(menu, menuData); + + callback(is, menu); + }); }); } diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 229b7330c4..60e9c0c6de 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -103,6 +103,7 @@ }), funcs = [ + logout, setUrl(prefix), authFunc, config(), @@ -153,6 +154,13 @@ return funcs; } + function logout(req, res, next) { + if (req.url === '/logout') + res.sendStatus(401); + else + next(); + } + function setUrl(prefix) { return function(req, res, next) { var is = !req.url.indexOf(prefix); From 896f9347a1069fb2952fc3ee617656296b5f314e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 12 Jun 2015 03:50:25 -0400 Subject: [PATCH 0273/3805] chore(package) v3.2.0 --- ChangeLog | 6 ++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0adb6a46ad..38f367b0c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015.06.12, v3.2.0 + +feature: +- (cloudcmd) add logOut + + 2015.06.11, v3.1.4 fix: diff --git a/HELP.md b/HELP.md index 2b3a27854d..240a1b841e 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.4 +Cloud Commander v3.2.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -356,6 +356,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.12*, **[v3.2.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.2.0.tar.gz)** - *2015.06.11*, **[v3.1.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.4.tar.gz)** - *2015.06.11*, **[v3.1.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.3.tar.gz)** - *2015.06.10*, **[v3.1.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.2.tar.gz)** diff --git a/README.md b/README.md index 2d97ce33f2..982deddf2b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.1.4 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.2.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index c866abfded..510198f20e 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.4", + "version": "3.2.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 7ba8f57383..47b82f5de8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.1.4", + "version": "3.2.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 86357ae74856ca5e5aeb4c1282acd2b8c08c315a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 15 Jun 2015 02:27:22 -0400 Subject: [PATCH 0274/3805] feature(package) morgan v1.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 47b82f5de8..9a566e7e35 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "gulp-mocha": "~2.1.0", "gulp-recess": "~1.1.1", "minor": "~1.2.2", - "morgan": "~1.5.0", + "morgan": "~1.6.0", "place": "~1.1.2", "shortdate": "~1.0.1", "should": "~6.0.1", From 8df7a8a019ac4a4271d19cb43e38330857ce2d66 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 15 Jun 2015 02:41:40 -0400 Subject: [PATCH 0275/3805] feature(config) add os.homedir --- lib/server/config.js | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index e1d3a99b43..77a0f78286 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -5,27 +5,23 @@ DIR_LIB = DIR_SERVER + '../', DIR = DIR_SERVER + '../../', - HOME_WIN = process.env.HOMEPATH, - HOME_UNIX = process.env.HOME, - - HOME = (HOME_UNIX || HOME_WIN) + '/', - fs = require('fs'), + os = require('os'), password = require(DIR_SERVER + 'password'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), check = require('checkup'), - tryCatch = require('try-catch'), pipe = require('pipe-io'), ponse = require('ponse'), jonny = require('jonny'), + tryRequire = require('tryrequire'), apiURL = CloudFunc.apiURL, ConfigPath = DIR + 'json/config.json', - ConfigHome = HOME + '.cloudcmd.json', + ConfigHome = homedir() + '.cloudcmd.json', config = tryRequire(ConfigHome) || @@ -35,16 +31,16 @@ module.exports.save = save; module.exports.socket = socket; - function tryRequire(path) { - var ret, - error = tryCatch(function() { - ret = require(path); - }); - - if (error && error.code !== 'MODULE_NOT_FOUND') - console.error(error.message); + function homedir() { + var fn = os.homedir || function() { + var HOME_WIN = process.env.HOMEPATH, + HOME_UNIX = process.env.HOME, + HOME = (HOME_UNIX || HOME_WIN); + + return HOME; + }; - return ret; + return fn() + '/'; } function manage(key, value) { From b9a0e4e409d54be4f2ea0a84d3d568dd09e62335 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 15 Jun 2015 03:35:00 -0400 Subject: [PATCH 0276/3805] feature(auth) add ability to enable/disable without restart --- lib/cloudcmd.js | 4 +--- lib/server/auth.js | 55 ++++++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 32 deletions(-) diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 60e9c0c6de..4abbfc9cd4 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -96,8 +96,6 @@ isDiff = isOption.bind(null, 'diff'), isZip = isOption.bind(null, 'zip'), - authFunc = config('auth') ? auth() : emptyFunc, - ponseStatic = ponse.static(DIR_ROOT, { cache: isCache }), @@ -105,7 +103,7 @@ funcs = [ logout, setUrl(prefix), - authFunc, + auth(), config(), restafary({ prefix : cloudfunc.apiURL + '/fs', diff --git a/lib/server/auth.js b/lib/server/auth.js index 1dcf357d9d..98713909db 100644 --- a/lib/server/auth.js +++ b/lib/server/auth.js @@ -3,7 +3,7 @@ var DIR = './', - tryRequire = require('tryrequire'), + httpAuth = require('http-auth'), config = require(DIR + 'config'), cryptPassword = require(DIR + 'password'), @@ -11,47 +11,44 @@ oldName; module.exports = function() { - var type, httpAuth, - - middle = function(req, res, next) { - next(); - }; - - httpAuth = tryRequire('http-auth', {log: true}); - - if (httpAuth) { - type = init(httpAuth, config); - middle = httpAuth.connect(type); - } + var middle, type; + + type = init(config); + middle = httpAuth.connect(type); return middle; }; - function init(httpAuth, config) { + function init(config) { var auth = httpAuth.basic({ realm: 'Cloud Commander' }, function (username, password, callback) { var hash, + is = config('auth'), name = config('username'), pass = config('password'), equal = username === name, algo = config('algo'); - if (!oldPass) - oldPass = pass; - - if (!oldName) - oldName = name; - - if (!equal) - username === oldName; - - hash = cryptPassword(algo, password); - equal = pass === hash && equal; - - if (!equal) { - hash = cryptPassword(algo, oldPass); - equal = pass === hash && equal; + if (!is) { + equal = true; + } else { + if (!oldPass) + oldPass = pass; + + if (!oldName) + oldName = name; + + if (!equal) + username === oldName; + + hash = cryptPassword(algo, password); + equal = pass === hash && equal; + + if (!equal) { + hash = cryptPassword(algo, oldPass); + equal = pass === hash && equal; + } } callback(equal); From df122dbcbecd5c17b56e594d0a80f89ae0e0f9f4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 16 Jun 2015 12:09:31 -0400 Subject: [PATCH 0277/3805] refactor(config) value - 0 -> Number(value) --- lib/client/config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/client/config.js b/lib/client/config.js index 22c07e5484..3608fb8e25 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -240,10 +240,9 @@ var CloudCmd, Util, DOM, io; switch(type) { case 'checkbox': data = el.checked; - break; case 'number': - data = el.value - 0; + data = Number(el.value); break; default: data = el.value; From 4b5110bb5165fa9d249be18d191845cf4e0164c4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 16 Jun 2015 14:47:12 -0400 Subject: [PATCH 0278/3805] feature(config) add mapCondition --- lib/client/config.js | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/lib/client/config.js b/lib/client/config.js index 3608fb8e25..9f19efaab0 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -170,13 +170,31 @@ var CloudCmd, Util, DOM, io; }; function changeConfig(config) { - Object.keys(config).forEach(function(name) { - var item = config[name], - isBool = Util.type.boolean(item); + var array = Object.keys(config); + + mapCondition(array, function(name) { + var type = typeof config[name], + is = type === 'boolean'; + + return is; + }).forEach(function(name) { + var item = config[name]; + + config[name] = setState(item); + }); + } + + function mapCondition(array, fn) { + var result = []; + + array.forEach(function(item) { + var is = fn(item); - if (isBool) - config[name] = setState(item); + if (is) + result.push(item); }); + + return result; } function setState(state) { From 3eecfd4b96f970d3227e1bad48b98ca9bc4a46f9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 17 Jun 2015 05:12:42 -0400 Subject: [PATCH 0279/3805] feature(input) add --- lib/client/config.js | 141 ++++++++----------------------------------- lib/client/input.js | 123 +++++++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+), 115 deletions(-) create mode 100644 lib/client/input.js diff --git a/lib/client/config.js b/lib/client/config.js index 9f19efaab0..7c8a9a9b7a 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -4,6 +4,7 @@ var CloudCmd, Util, DOM, io; 'use strict'; /* global rendy */ + /* global input */ CloudCmd.Config = ConfigProto; @@ -16,24 +17,9 @@ var CloudCmd, Util, DOM, io; Images.show.load('top'); }, Element, - CONFIG, Template, Notify = DOM.Notify, - Config = this, - - getByData = function(selector) { - var el = DOM.getByDataName('js-' + selector, Element); - - return el; - }, - - getName = function(element) { - var name = element - .getAttribute('data-name') - .replace(/^js-/, ''); - - return name; - }; + Config = this; function init() { Loading = true; @@ -104,7 +90,10 @@ var CloudCmd, Util, DOM, io; exec = Util.exec, funcs = [ exec.with(DOM.Files.get, 'config-tmpl'), - exec.with(DOM.load.css, prefix + '/css/config.css') + exec.with(DOM.load.parallel, [ + prefix + '/css/config.css', + prefix + '/lib/client/input.js' + ]) ]; if (!Loading) { @@ -118,18 +107,19 @@ var CloudCmd, Util, DOM, io; Template = template; DOM.Files.get('config', function(error, config) { - var div, data, inputs, inputFirst, + var data, inputs, inputFirst, focus, obj; - CONFIG = config; - obj = Util.copyObj(CONFIG); - changeConfig(obj); + if (error) + return DOM.Dialog.alert('Could not load config!'); + + obj = input.convert(config); obj[obj.editor + '-selected'] = 'selected'; delete obj.editor; data = rendy(Template, obj); - div = DOM.load({ + Element = DOM.load({ name : 'div', className : 'config', inner : data, @@ -138,9 +128,7 @@ var CloudCmd, Util, DOM, io; } }); - Element = div; - - inputs = document.querySelectorAll('input, select', div); + inputs = document.querySelectorAll('input, select', Element); inputFirst = inputs[0]; if (inputFirst) { @@ -158,7 +146,7 @@ var CloudCmd, Util, DOM, io; }); }); - CloudCmd.View.show(div, { + CloudCmd.View.show(Element, { autoSize: true, afterShow: focus }); @@ -169,54 +157,15 @@ var CloudCmd, Util, DOM, io; CloudCmd.View.hide(); }; - function changeConfig(config) { - var array = Object.keys(config); - - mapCondition(array, function(name) { - var type = typeof config[name], - is = type === 'boolean'; - - return is; - }).forEach(function(name) { - var item = config[name]; - - config[name] = setState(item); - }); - } - - function mapCondition(array, fn) { - var result = []; - - array.forEach(function(item) { - var is = fn(item); - - if (is) - result.push(item); - }); - - return result; - } - - function setState(state) { - var ret = ''; - - if (state) - ret = ' checked'; - - return ret; - } - function onChange(el) { - var data, - obj = {}, - name = getName(el), + var obj = {}, + name = input.getName(el), + data = input.getValue(name, Element), type = el.type; - data = getValue(el); - if (type === 'checkbox') if (/^(diff|buffer|dirStorage)$/.test(name)) - onLSChange(el); + onLSChange(name, data); else if (name === 'localStorage') onLocalStorageChange(); else if (name === 'auth') @@ -236,8 +185,7 @@ var CloudCmd, Util, DOM, io; Object.keys(obj).forEach(function(name) { var data = obj[name]; - CONFIG[name] = data; - setValue(name, data); + input.setValue(name, data, Element); }); DOM.Storage.setAllowed(obj.localStorage); @@ -251,44 +199,10 @@ var CloudCmd, Util, DOM, io; }); } - function getValue(el) { - var data, - type = el.type; - - switch(type) { - case 'checkbox': - data = el.checked; - break; - case 'number': - data = Number(el.value); - break; - default: - data = el.value; - break; - } - - return data; - } - - function setValue(name, value) { - var el = getByData(name), - type = el.type; - - switch(type) { - case 'checkbox': - el.checked = value; - break; - - default: - el.value = value; - break; - } - } - function onLocalStorageChange() { var names = ['diff', 'buffer', 'dirStorage', 'localStorage'], elements = names.map(function(name) { - return getByData(name); + return input.getElementByName(name, Element); }), el = {}, @@ -296,7 +210,7 @@ var CloudCmd, Util, DOM, io; isChecked; elements.forEach(function(element) { - var name = getName(element); + var name = input.getName(element); el[name] = element; @@ -319,23 +233,20 @@ var CloudCmd, Util, DOM, io; } } - function onLSChange(el) { - var elLocalStorage = getByData('localStorage'), - name = el - .getAttribute('data-name') - .replace(/^js-/, ''), + function onLSChange(name, data) { + var elLocalStorage = input.getElementByName('localStorage', Element), msg = name + ' depends on localStorage'; - if (el.checked && !elLocalStorage.checked) { + if (data && !elLocalStorage.checked) { alert(msg); elLocalStorage.checked = true; } } function onAuthChange(checked) { - var elUsername = getByData('username'), - elPassword = getByData('password'); + var elUsername = input.getElementByName('username', Element), + elPassword = input.getElementByName('password', Element); elUsername.disabled = elPassword.disabled = !checked; diff --git a/lib/client/input.js b/lib/client/input.js new file mode 100644 index 0000000000..27935a7052 --- /dev/null +++ b/lib/client/input.js @@ -0,0 +1,123 @@ +(function(global) { + 'use strict'; + + if (typeof module !== 'undefined' && module.exports) + module.exports = InputProto(); + else + global.input = InputProto(); + + function InputProto() { + if (!(this instanceof InputProto)) + return new InputProto(); + + this.setValue = setValue; + this.getValue = getValue; + this.convert = convert; + this.getName = getName; + this.getElementByName = getElementByName; + + function getElementByName(selector, element) { + var el = element.querySelector('[data-name="js-' + selector + '"]'); + + return el; + } + + function getName(element) { + var name = element + .getAttribute('data-name') + .replace(/^js-/, ''); + + return name; + } + + function convert(config) { + var result = clone(config), + array = Object.keys(result), + isBool = isType.bind(null, result, 'boolean'); + + mapCondition(array, isBool) + .forEach(function(name) { + var item = result[name]; + + result[name] = setState(item); + }); + + return result; + } + + function clone(object) { + var result = {}; + + Object.keys(object).forEach(function(name) { + result[name] = object[name]; + }); + + return result; + } + + function isType(object, type, name) { + var current = typeof object[name], + is = current === type; + + return is; + } + + function mapCondition(array, fn) { + var result = []; + + array.forEach(function(item) { + var is = fn(item); + + if (is) + result.push(item); + }); + + return result; + } + + function setState(state) { + var ret = ''; + + if (state) + ret = ' checked'; + + return ret; + } + + function getValue(name, element) { + var data, + el = getElementByName(name, element), + type = el.type; + + switch(type) { + case 'checkbox': + data = el.checked; + break; + case 'number': + data = Number(el.value); + break; + default: + data = el.value; + break; + } + + return data; + } + + function setValue(name, value, element) { + var el = getElementByName(name, element), + type = el.type; + + switch(type) { + case 'checkbox': + el.checked = value; + break; + + default: + el.value = value; + break; + } + } + } + +})(window); From ebb4ce24795d7a81acdb610ae8fe3aad2a3491e8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 17 Jun 2015 07:08:12 -0400 Subject: [PATCH 0280/3805] feature(package) dword v1.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a566e7e35..3f91f95d1e 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", - "dword": "~1.5.0", + "dword": "~1.6.0", "edward": "~1.6.0", "execon": "~1.2.0", "express": "~4.12.0", From 90cc76e6c7c098995b2cd07d9165215c6c78b9b6 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 17 Jun 2015 07:43:37 -0400 Subject: [PATCH 0281/3805] feature(edit) fontSize: style -> setOption --- lib/client/edit.js | 7 +++++-- package.json | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/client/edit.js b/lib/client/edit.js index 0af8b638e8..486b628dee 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -58,7 +58,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO, Format, edward; style : 'width : 100%;' + 'height : 100%;' + - 'font : 16px "Droid Sans Mono";' + + 'font-family: "Droid Sans Mono";' + 'position : absolute;', notAppend : true }); @@ -87,7 +87,10 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO, Format, edward; edward.setValueFirst(path, data); setMsgChanged(name); - edward.setModeForPath(name); + + edward + .setModeForPath(name) + .setOption('fontSize', 16); CloudCmd.View.show(Element, ConfigView); } diff --git a/package.json b/package.json index 3f91f95d1e..334adf598f 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", - "dword": "~1.6.0", - "edward": "~1.6.0", + "dword": "~1.7.0", + "edward": "~1.7.0", "execon": "~1.2.0", "express": "~4.12.0", "faust": "~1.0.0", From f33cb443069c73256d2e92d8a54999a6473addd1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 17 Jun 2015 08:33:49 -0400 Subject: [PATCH 0282/3805] fix(auth) always show auth dialog --- lib/server/auth.js | 79 +++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/lib/server/auth.js b/lib/server/auth.js index 98713909db..52bc49deb0 100644 --- a/lib/server/auth.js +++ b/lib/server/auth.js @@ -11,49 +11,50 @@ oldName; module.exports = function() { - var middle, type; - - type = init(config); - middle = httpAuth.connect(type); + var auth = httpAuth.basic({ + realm: 'Cloud Commander' + }, check); - return middle; + return middle(auth); }; - function init(config) { - var auth = httpAuth.basic({ - realm: 'Cloud Commander' - }, function (username, password, callback) { - var hash, - is = config('auth'), - name = config('username'), - pass = config('password'), - equal = username === name, - algo = config('algo'); - - if (!is) { - equal = true; - } else { - if (!oldPass) - oldPass = pass; - - if (!oldName) - oldName = name; - - if (!equal) - username === oldName; - - hash = cryptPassword(algo, password); - equal = pass === hash && equal; - - if (!equal) { - hash = cryptPassword(algo, oldPass); - equal = pass === hash && equal; - } - } + function middle(authentication) { + return function(req, res, next) { + var is = config('auth'); - callback(equal); - }); + if (!is) + next(); + else + authentication.check(req, res, function(/* success */) { + next(); + }); + }; + } + + function check(username, password, callback) { + var hash, + name = config('username'), + pass = config('password'), + equal = username === name, + algo = config('algo'); + + if (!oldPass) + oldPass = pass; + + if (!oldName) + oldName = name; + + if (!equal) + username === oldName; + + hash = cryptPassword(algo, password); + equal = pass === hash && equal; + + if (!equal) { + hash = cryptPassword(algo, oldPass); + equal = pass === hash && equal; + } - return auth; + callback(equal); } })(); From 9a7ca5cc2757f443982c492753a92860713595b2 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 17 Jun 2015 12:44:19 -0400 Subject: [PATCH 0283/3805] feature(config) mapCondition -> filter --- lib/client/input.js | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/lib/client/input.js b/lib/client/input.js index 27935a7052..251f0b26f0 100644 --- a/lib/client/input.js +++ b/lib/client/input.js @@ -33,9 +33,10 @@ function convert(config) { var result = clone(config), array = Object.keys(result), - isBool = isType.bind(null, result, 'boolean'); + isBool = partial(isType, result, 'boolean'); - mapCondition(array, isBool) + array + .filter(isBool) .forEach(function(name) { var item = result[name]; @@ -55,6 +56,20 @@ return result; } + function partial(fn) { + var i, + bind = Function.prototype.bind, + n = arguments.length, + args = Array(n-1); + + args[0] = null; + + for (i = 1; i < n; i++) + args[i] = arguments[i]; + + return bind.apply(fn, args); + } + function isType(object, type, name) { var current = typeof object[name], is = current === type; @@ -62,19 +77,6 @@ return is; } - function mapCondition(array, fn) { - var result = []; - - array.forEach(function(item) { - var is = fn(item); - - if (is) - result.push(item); - }); - - return result; - } - function setState(state) { var ret = ''; From 1849cc227f961c7bfadb9ed3006d8562939b2e1a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 17 Jun 2015 13:58:49 -0400 Subject: [PATCH 0284/3805] chore(input) add " " --- lib/client/input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/input.js b/lib/client/input.js index 251f0b26f0..16e18260c0 100644 --- a/lib/client/input.js +++ b/lib/client/input.js @@ -60,7 +60,7 @@ var i, bind = Function.prototype.bind, n = arguments.length, - args = Array(n-1); + args = Array(n - 1); args[0] = null; From 60e80e7f1439e43c736ef3a1bff8dfb658860921 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 18 Jun 2015 12:54:09 -0400 Subject: [PATCH 0285/3805] feature(markdown) rm util --- lib/server/rest/markdown.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/server/rest/markdown.js b/lib/server/rest/markdown.js index c6e386c2f5..17d170c367 100644 --- a/lib/server/rest/markdown.js +++ b/lib/server/rest/markdown.js @@ -7,16 +7,28 @@ fs = require('fs'), - Util = require(DIR_LIB + 'util'), root = require(DIR + 'root'), pipe = require('pipe-io'), ponse = require('ponse'), markdown = require('markdown-it')(); + function check(name, request, callback) { + if (typeof name !== 'string') + throw(Error('name should be string!')); + + else if (!request) + throw(Error('request could not be empty!')); + + else if (typeof callback !== 'function') + throw(Error('callback should be function!')); + } + module.exports = function(name, request, callback) { var query, method = request.method; + check(name, request, callback); + switch(method) { case 'GET': name = name.replace('/markdown', ''); @@ -38,7 +50,7 @@ case 'PUT': pipe.getBody(request, function(error, data) { if (error) - Util.exec(callback, error); + callback(error); else parse(data, callback); }); From 6e9c509a4f2ab28e759c8563cb1c1ab9dda09331 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 18 Jun 2015 13:49:19 -0400 Subject: [PATCH 0286/3805] chore(route) rm comments --- lib/server/route.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/server/route.js b/lib/server/route.js index 3572440e65..8335c15ca2 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -144,15 +144,12 @@ request : request, response : response, gzip : true, - name : name, - //mime : 'text/html' + name : name }; if (!isAuth && !isFS) callback(); else if (isAuth) { - //'* Routing' + '-> ' + name - p.name = DIR_HTML + name + '.html'; ponse.sendFile(p); } else if (isFS) { From f0456d15b99e5af673fcaaa2f03255de2422a590 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 20 Jun 2015 04:59:32 -0400 Subject: [PATCH 0287/3805] feature(konsole) rm CloudFunc --- lib/client/konsole.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/client/konsole.js b/lib/client/konsole.js index 9380339875..ab4ec14899 100644 --- a/lib/client/konsole.js +++ b/lib/client/konsole.js @@ -1,10 +1,9 @@ /* global CloudCmd */ /* global Util */ /* global DOM */ -/* global CloudFunc */ /* global Console */ -(function(CloudCmd, Util, DOM, CloudFunc) { +(function(CloudCmd, Util, DOM) { 'use strict'; CloudCmd.Konsole = ConsoleProto; @@ -52,7 +51,7 @@ var command = Console.getPromptText(), path = DOM.getCurrentDirPath(); - path = CloudFunc.rmLastSlash(path); + path = rmLastSlash(path); command += path; Console.setPromptText(command); @@ -60,6 +59,10 @@ }); } + function rmLastSlash(str) { + return str.replace(/\/$/, ''); + } + this.show = function(callback) { if (Loaded) CloudCmd.View.show(Element, { @@ -87,4 +90,4 @@ init(); } -})(CloudCmd, Util, DOM, CloudFunc); +})(CloudCmd, Util, DOM); From 9257cb4490980955d73672181f6a66ed5475e7cd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 20 Jun 2015 10:49:44 -0400 Subject: [PATCH 0288/3805] feature(bin) add " " --- json/bin.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/json/bin.json b/json/bin.json index 679a61b426..6eed0e1dfb 100644 --- a/json/bin.json +++ b/json/bin.json @@ -1,20 +1,20 @@ { - "-h, --help " : "display this help and exit", - "-v, --version " : "display version and exit", - "-s, --save " : "save configuration", - "-o, --online " : "load scripts from remote servers", - "-a, --auth " : "enable authorization", - "-u, --username " : "set username", - "-p, --password " : "set password", - "-c, --config " : "configuration file path", - "--editor " : "set editor: \"dword\" or \"edward\"", - "--root " : "set root directory", - "--port " : "set port number", - "--no-auth " : "disable authorization", - "--no-server " : "do not start server", - "--no-online " : "load scripts from local server", - "--minify " : "enable minification", - "--no-minify " : "disable minification", - "--progress-of-copying" : "show progress of copying", - "--no-progress-of-copying" : "not show progress of copying" + "-h, --help ": "display this help and exit", + "-v, --version ": "display version and exit", + "-s, --save ": "save configuration", + "-o, --online ": "load scripts from remote servers", + "-a, --auth ": "enable authorization", + "-u, --username ": "set username", + "-p, --password ": "set password", + "-c, --config ": "configuration file path", + "--editor ": "set editor: \"dword\" or \"edward\"", + "--root ": "set root directory", + "--port ": "set port number", + "--no-auth ": "disable authorization", + "--no-server ": "do not start server", + "--no-online ": "load scripts from local server", + "--minify ": "enable minification", + "--no-minify ": "disable minification", + "--progress-of-copying ": "show progress of copying", + "--no-progress-of-copying ": "not show progress of copying" } From 1f220c87616f53aff56f57538acd5e44d909c08d Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 20 Jun 2015 11:20:24 -0400 Subject: [PATCH 0289/3805] feature(cloudcmd) add checkUpdate --- bin/cloudcmd.js | 26 +++++++++++++++++++++++++- package.json | 2 ++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 2e38fc1498..287c49929c 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -4,7 +4,6 @@ 'use strict'; var Info = require('../package'), - DIR = __dirname + '/../', DIR_LIB = DIR + 'lib/', DIR_SERVER = DIR_LIB + 'server/', @@ -68,6 +67,8 @@ if (args.repl) repl(); + checkUpdate(); + port(args.port); password(args.password); @@ -181,4 +182,27 @@ require(DIR_LIB + '/server/repl'); } + function checkUpdate() { + var load = require('package-json'), + chalk = require('chalk'), + rendy = require('rendy'); + + load.field('cloudcmd', 'version', function(error, version) { + var latest, current, + is = version !== Info.version; + + if (!error && is) { + latest = rendy('update available: {{ latest }}', { + latest: chalk.green.bold('v' + version), + }); + + current = chalk.dim(rendy('(current: v{{ current }})', { + current: Info.version + })); + + console.log('%s %s', latest, current); + } + }); + } + })(); diff --git a/package.json b/package.json index 334adf598f..c62fb6fef4 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ }, "subdomain": "cloudcmd", "dependencies": { + "chalk": "~1.0.0", "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", @@ -53,6 +54,7 @@ "minify": "~1.4.0", "minimist": "~1.1.0", "mollify": "~1.0.0", + "package-json": "~1.2.0", "pipe-io": "~1.1.1", "ponse": "~1.4.0", "rendy": "~1.1.0", From abf66cba73a0a95f5d421c242920bf46bb1f5800 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 20 Jun 2015 11:29:22 -0400 Subject: [PATCH 0290/3805] docs(help) Update: i -> update --- HELP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HELP.md b/HELP.md index 240a1b841e..bfac062c5e 100644 --- a/HELP.md +++ b/HELP.md @@ -91,7 +91,7 @@ If you installed Cloud Commander with `npm`, stop application and re-install it: ```sh -npm i cloudcmd -g +npm update cloudcmd -g ``` Then start it again, clear cache of your browser and reload page. From 9802533a6bfe4bf6a2824382faedf516eed8b78e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 20 Jun 2015 13:44:15 -0400 Subject: [PATCH 0291/3805] chore(package) v3.3.0 --- ChangeLog | 20 ++++++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 38f367b0c8..a752ec9638 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2015.06.20, v3.3.0 + +fix: +- (auth) always show auth dialog + +feature: +- (cloudcmd) add checkUpdate +- (bin) add " " +- (konsole) rm CloudFunc +- (markdown) rm util +- (config) mapCondition -> filter +- (edit) fontSize: style -> setOption +- (package) dword v1.6.0 +- (input) add +- (config) add mapCondition +- (auth) add ability to enable/disable without restart +- (config) add os.homedir +- (package) morgan v1.6.0 + + 2015.06.12, v3.2.0 feature: diff --git a/HELP.md b/HELP.md index bfac062c5e..b0e3ef81e2 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.2.0 +Cloud Commander v3.3.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -356,6 +356,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.20*, **[v3.3.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.3.0.tar.gz)** - *2015.06.12*, **[v3.2.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.2.0.tar.gz)** - *2015.06.11*, **[v3.1.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.4.tar.gz)** - *2015.06.11*, **[v3.1.3](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.3.tar.gz)** diff --git a/README.md b/README.md index 982deddf2b..672cd4f447 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.2.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.3.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 510198f20e..a7395c2a30 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.2.0", + "version": "3.3.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index c62fb6fef4..d721216e79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.2.0", + "version": "3.3.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 12522095a04ca6ede670a49f595e2b69efb094e4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 21 Jun 2015 10:27:03 -0400 Subject: [PATCH 0292/3805] feature(package) express v4.13.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d721216e79..ebe900264d 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "dword": "~1.7.0", "edward": "~1.7.0", "execon": "~1.2.0", - "express": "~4.12.0", + "express": "~4.13.0", "faust": "~1.0.0", "files-io": "~1.2.0", "flop": "~1.1.0", From 67d9b7981e2bcc1f4d819affa706a6810d0d0cf4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 21 Jun 2015 10:38:46 -0400 Subject: [PATCH 0293/3805] feature(config) minify: true -> false --- HELP.md | 2 +- json/config.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HELP.md b/HELP.md index b0e3ef81e2..0102e7beac 100644 --- a/HELP.md +++ b/HELP.md @@ -208,7 +208,7 @@ Here is description of options: "localStorage" : true, /* local storage */ "buffer" : true, /* buffer for copying files */ "dirStorage" : true, /* store directory listing to localStorage */ - "minify" : true, /* minification of js,css,html and img */ + "minify" : false, /* minification of js,css,html and img */ "online" : true, /* load js files from cdn or local path */ "cache" : true, /* add cache-control */ "showKeysPanel" : true, /* show classic panel with buttons of keys */ diff --git a/json/config.json b/json/config.json index 754289d4ce..9f15125daa 100644 --- a/json/config.json +++ b/json/config.json @@ -10,7 +10,7 @@ "localStorage": true, "buffer": true, "dirStorage": false, - "minify": true, + "minify": false, "online": true, "cache": true, "showKeysPanel": true, From a74e49f4ab6b8aec7f09f012bf557b350a36c65b Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 21 Jun 2015 12:50:48 -0400 Subject: [PATCH 0294/3805] feature(cloudcmd) add prefix support --- html/index.html | 10 +++++----- lib/client.js | 2 +- lib/client/cloudcmd.js | 2 +- lib/client/dom.js | 2 ++ lib/cloudcmd.js | 9 +++++++-- lib/server/route.js | 16 +++++++++++++--- 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/html/index.html b/html/index.html index e585c60485..43f08cb932 100644 --- a/html/index.html +++ b/html/index.html @@ -8,11 +8,11 @@ {{ title }} - - + + @@ -31,7 +31,7 @@
    - + diff --git a/lib/client.js b/lib/client.js index 698748acd3..c13292436f 100644 --- a/lib/client.js +++ b/lib/client.js @@ -171,7 +171,7 @@ var Util, DOM, CloudFunc, join; }); }; - CloudCmd.PREFIX = prefix; + CloudCmd.PREFIX = prefix; CloudCmd.LIBDIR = prefix + '/lib/'; CloudCmd.LIBDIRCLIENT = prefix + '/lib/client/'; diff --git a/lib/client/cloudcmd.js b/lib/client/cloudcmd.js index 58240272cd..03d7af01f0 100644 --- a/lib/client/cloudcmd.js +++ b/lib/client/cloudcmd.js @@ -47,7 +47,7 @@ var CloudCmd; urlFiles = getJoinURL(files); if (!prefix) - prefix = '/cloudcmd'; + prefix = ''; createScript(prefix + urlFiles, function() { CloudCmd.init(prefix); diff --git a/lib/client/dom.js b/lib/client/dom.js index 8ff8f9d6c8..45fe1e4126 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -1065,6 +1065,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; this.setHistory = function(data, pTitle, url) { var ret = window.history; + url = CloudCmd.PREFIX + url; + if (ret) history.pushState(data, pTitle, url); diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 4abbfc9cd4..a0e181a8b9 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -37,7 +37,7 @@ module.exports = function(params) { var keys, p = params || {}, - prefix = p.prefix || '/cloudcmd'; + prefix = p.prefix || ''; if (params) { keys = Object.keys(params); @@ -47,6 +47,9 @@ }); } + if (p.socket) + module.exports.listen(p.socket); + return cloudcmd(prefix); }; @@ -110,7 +113,9 @@ root : root }), rest, - route, + route({ + prefix: prefix + }), join({ dir : DIR_ROOT, diff --git a/lib/server/route.js b/lib/server/route.js index 8335c15ca2..0bd4bc32f6 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -36,13 +36,22 @@ Template = {}, + Prefix, FS = CloudFunc.FS; - module.exports = function(req, res, next) { + module.exports = function(params) { + var p = params || {}; + + Prefix = p.prefix || ''; + + return middle; + }; + + function middle(req, res, next) { readFiles(function() { route(req, res, next); }); - }; + } /** * additional processing of index file @@ -77,7 +86,8 @@ data = rendy(data, { title : CloudFunc.getTitle(), - fm : left + right + fm : left + right, + prefix : Prefix }); return data; From 74a1da51ff0b597405597026405343cd4b62aeb3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 01:34:58 -0400 Subject: [PATCH 0295/3805] feature(index) rm DOMContentLoaded --- html/index.html | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/html/index.html b/html/index.html index 43f08cb932..6429cc5bc0 100644 --- a/html/index.html +++ b/html/index.html @@ -33,16 +33,7 @@
    From b9eab52f8b1114f7433e7a15e71a57d714c367a1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 02:34:34 -0400 Subject: [PATCH 0296/3805] feature(validate) add --- bin/cloudcmd.js | 44 ++++------------------------------ lib/cloudcmd.js | 54 +++++++++++++++++++----------------------- lib/server.js | 50 ++++++++++++++++++-------------------- lib/server/validate.js | 31 ++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 95 deletions(-) create mode 100644 lib/server/validate.js diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 287c49929c..2b8bd7e64d 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -10,7 +10,6 @@ exit = require(DIR_SERVER + 'exit'), config = require(DIR_SERVER + 'config'), - createPass = require(DIR_SERVER + 'password'), argv = process.argv, @@ -70,22 +69,23 @@ checkUpdate(); port(args.port); - password(args.password); config('auth', args.auth); config('online', args.online); config('minify', args.minify); config('username', args.username); config('progressOfCopying', args['progress-of-copying']); - root(args.root); - editor(args.editor); readConfig(args.config); if (args.save) config.save(start); else - start(); + start({ + root: args.root, + editor: args.editor, + password: args.password, + }); } function version() { @@ -99,17 +99,6 @@ require(SERVER)(config); } - function password(pass) { - var algo, hash; - - if (pass) { - algo = config('algo'); - hash = createPass(algo, pass); - - config('password', hash); - } - } - function port(arg) { var number = parseInt(arg, 10); @@ -154,29 +143,6 @@ console.log('\nGeneral help using Cloud Commander: <%s>', url); } - function root(dir) { - var fs; - - config('root', dir); - - if (dir !== '/') { - fs = require('fs'); - fs.stat(dir, function(error) { - if (error) - exit('cloudcmd --root: %s', error.message); - else - console.log('root:', dir); - }); - } - } - - function editor(name) { - var reg = /^(dword|edward)$/; - - if (!reg.test(name)) - exit('cloudcmd --editor: could be "dword" or "edward" only'); - } - function repl() { console.log('REPL mode enabled (telnet localhost 1337)'); require(DIR_LIB + '/server/repl'); diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index a0e181a8b9..8004d92af0 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -12,6 +12,8 @@ config = require(DIR_SERVER + 'config'), rest = require(DIR_SERVER + 'rest'), route = require(DIR_SERVER + 'route'), + validate = require(DIR_SERVER + 'validate'), + createPass = require(DIR_SERVER + 'password'), join = require('join-io'), ponse = require('ponse'), @@ -35,34 +37,36 @@ }, module.exports = function(params) { - var keys, - p = params || {}, - prefix = p.prefix || ''; + var p = params || {}, + options = p.config || {}, + prefix = p.prefix || '', + keys = Object.keys(options); - if (params) { - keys = Object.keys(params); + keys.forEach(function(name) { + var value = options[name]; + + switch(name) { + case 'root': + validate.root(value); + break; + case 'editor': + validate.editor(value); + break; + case 'password': + value = createPass(config('algo'), value); + break; + } - keys.forEach(function(name) { - config(name, params[name]); - }); - } + config(name, value); + }); if (p.socket) - module.exports.listen(p.socket); + listen(p.socket); return cloudcmd(prefix); }; - module.exports.middle = function(params) { - var p = params || {}, - prefix = p.prefix || '/cloudcmd', - funcs = cloudcmd(), - middle = respond.bind(null, prefix, funcs); - - return middle; - }; - - module.exports.listen = function(socket) { + function listen(socket) { var size = cloudfunc.MAX_SIZE; Util.check(arguments, ['socket']); @@ -86,7 +90,7 @@ spero.listen(socket, { root: root }); - }; + } function cloudcmd(prefix) { var isOption = function(name) { @@ -178,12 +182,4 @@ next(); }; } - - function respond(prefix, funcs, req, res) { - funcs = funcs.map(function(func) { - return Util.exec.with(func, req, res); - }); - - Util.exec.series(funcs); - } })(); diff --git a/lib/server.js b/lib/server.js index 0dc31ef6e7..8f5a135c81 100644 --- a/lib/server.js +++ b/lib/server.js @@ -6,7 +6,7 @@ http = require('http'), - middleware = require(DIR_LIB + 'cloudcmd'), + cloudcmd = require(DIR_LIB + 'cloudcmd'), exit = require(DIR_SERVER + 'exit'), config = require(DIR_SERVER + 'config'), express = require(DIR_SERVER + 'express'), @@ -17,37 +17,33 @@ * */ module.exports = function(options) { - var server, app, socket, - - middle = middleware(options), - - port = process.env.PORT || /* c9 */ - process.env.VCAP_APP_PORT || /* cloudfoundry */ - config('port'), - - ip = process.env.IP || /* c9 */ - config('ip') || - '0.0.0.0', - - expressApp = express.getApp(middle, { - auth : config('auth'), - username: config('username'), - password: config('password') - }); - - if (expressApp) - app = expressApp; - else - app = middle; - - server = http.createServer(app); - socket = io.listen(server); + var server, + + port = process.env.PORT || /* c9 */ + process.env.VCAP_APP_PORT || /* cloudfoundry */ + config('port'), + + ip = process.env.IP || /* c9 */ + config('ip') || + '0.0.0.0', + + app = express.getApp({ + auth : config('auth'), + username: config('username'), + password: config('password') + }); + + server = http.createServer(app); + + app.use(cloudcmd({ + config: options, + socket: io.listen(server) + })); server.on('error', function(error) { exit('cloudcmd --port: %s', error.message); }); - middleware.listen(socket); server.listen(port, ip); console.log('url: http://%s:%d', config('ip') || 'localhost', port); diff --git a/lib/server/validate.js b/lib/server/validate.js new file mode 100644 index 0000000000..5466267ce6 --- /dev/null +++ b/lib/server/validate.js @@ -0,0 +1,31 @@ +(function() { + 'use strict'; + + var DIR = './', + exit = require(DIR + 'exit'); + + module.exports.root = root; + module.exports.editor = editor; + + function root(dir) { + var fs; + + if (dir !== '/') { + fs = require('fs'); + fs.stat(dir, function(error) { + if (error) + exit('cloudcmd --root: %s', error.message); + else + console.log('root:', dir); + }); + } + } + + function editor(name) { + var reg = /^(dword|edward)$/; + + if (!reg.test(name)) + exit('cloudcmd --editor: could be "dword" or "edward" only'); + } + +})(); From ca4d83f44af01e896231e7df39c186e72b20479a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 02:34:54 -0400 Subject: [PATCH 0297/3805] docs(help) Using as Middleware --- HELP.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/HELP.md b/HELP.md index 0102e7beac..fa7ddc0afc 100644 --- a/HELP.md +++ b/HELP.md @@ -253,6 +253,35 @@ It could happen when mobile device, tablet or small window size used to work wit ![One panel mode](/img/screen/one-panel-mode.png "One panel mode") +Using as Middleware +--------------- + +Cloud Commander could be used as middleware for `node.js` applications based on [socket.io](http://socket.io "Socket.IO") and [express](http://expressjs.com "Express"): + +```js +var http = require('http'), + cloudcmd = require('cloudcmd'), + express = require('express'), + io = require('socket.io'), + app = express(), + + PORT = 31337, + + server, + socket; + +server = http.createServer(app); +socket = io.listen(server); + +app.use(cloudcmd({ + prefix: '/prefix', /* base URL (optional) */ + socket: socket, /* used by Config, Edit (optional) and Console (required) */ + config: {} /* config data (optional) */ +})); + +server.listen(PORT); +``` + Server --------------- Standard practices say no non-root process gets to talk to From e74a44b68f858bcabfc2f0672a2cb530f423761f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 02:38:41 -0400 Subject: [PATCH 0298/3805] feature(package) should v7.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ebe900264d..942d885c3e 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "morgan": "~1.6.0", "place": "~1.1.2", "shortdate": "~1.0.1", - "should": "~6.0.1", + "should": "^7.0.1", "yaspeller": "~2.4.0" }, "engines": { From fb0376e5c57fcab3aa76a9df8f5ed22cf840fddb Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 05:44:47 -0400 Subject: [PATCH 0299/3805] fix(cloudcmd) add password --- bin/cloudcmd.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 2b8bd7e64d..3a5d46551f 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -39,6 +39,7 @@ online : config('online'), editor : config('editor') || 'edward', username : config('username'), + password : config('password'), root : config('root') || '/', 'progress-of-copying': config('progressOfCopying') From de7f6c56dce07c07fb3a12d851ac4c906bd049f2 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 05:50:57 -0400 Subject: [PATCH 0300/3805] fix(cloudcmd) password: double crypt --- bin/cloudcmd.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 3a5d46551f..b641a6fbaf 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -11,6 +11,7 @@ exit = require(DIR_SERVER + 'exit'), config = require(DIR_SERVER + 'config'), + options, argv = process.argv, args = require('minimist')(argv.slice(2), { @@ -39,7 +40,6 @@ online : config('online'), editor : config('editor') || 'edward', username : config('username'), - password : config('password'), root : config('root') || '/', 'progress-of-copying': config('progressOfCopying') @@ -79,14 +79,18 @@ readConfig(args.config); + options = { + root: args.root, + editor: args.editor + }; + + if (args.password) + options.password = args.password; + if (args.save) config.save(start); else - start({ - root: args.root, - editor: args.editor, - password: args.password, - }); + start(options); } function version() { From 82e7f8a220afa1d44685ba79ed7e7dfd4adef9bc Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 06:14:22 -0400 Subject: [PATCH 0301/3805] fix(modules) domkentlist: cloudcmd -> client --- lib/client.js | 2 +- lib/client/cloudcmd.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/client.js b/lib/client.js index c13292436f..214ce4a620 100644 --- a/lib/client.js +++ b/lib/client.js @@ -163,7 +163,7 @@ var Util, DOM, CloudFunc, join; funcBefore = function(callback) { var src = prefix + '/join:' + [ CloudCmd.LIBDIRCLIENT + 'polyfill.js', - '/modules/html5-polyfills/classList.js' + '/modules/domtokenlist-shim/dist/domtokenlist.min.js', ].join(':'); DOM.loadJquery(function() { diff --git a/lib/client/cloudcmd.js b/lib/client/cloudcmd.js index 03d7af01f0..52e766d2fe 100644 --- a/lib/client/cloudcmd.js +++ b/lib/client/cloudcmd.js @@ -30,7 +30,6 @@ var CloudCmd; moduleFiles = [ 'promise-polyfill/Promise', - 'domtokenlist-shim/dist/domtokenlist', 'format-io/lib/format', 'rendy/lib/rendy', ].map(function(name) { From 3544a6c8ebd78fdaa5c04f88d4805c7f90db8db8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 06:30:06 -0400 Subject: [PATCH 0302/3805] chore(package) v3.4.0 --- ChangeLog | 17 +++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a752ec9638..bcc7e4681f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2015.06.22, v3.4.0 + +fix: +- (modules) domkentlist: cloudcmd -> client +- (cloudcmd) password: double crypt +- (cloudcmd) add password +- feature(cloudcmd) add pre support + +feature: +- (package) should v7.0.1 +- (validate) add +- (index) rm DOMContentLoaded +- (cloudcmd) add prefix support +- (config) minify: true -> false +- (package) express v4.13.0 + + 2015.06.20, v3.3.0 fix: diff --git a/HELP.md b/HELP.md index fa7ddc0afc..1b11d1123e 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.3.0 +Cloud Commander v3.4.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.22*, **[v3.4.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.4.0.tar.gz)** - *2015.06.20*, **[v3.3.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.3.0.tar.gz)** - *2015.06.12*, **[v3.2.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.2.0.tar.gz)** - *2015.06.11*, **[v3.1.4](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.1.4.tar.gz)** diff --git a/README.md b/README.md index 672cd4f447..c7785472dc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.3.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.4.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index a7395c2a30..3e672d3649 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.3.0", + "version": "3.4.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 942d885c3e..dfe37553b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.3.0", + "version": "3.4.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 59f122f099091a253e25d42db5e296fb92083d2a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 14:52:18 +0300 Subject: [PATCH 0303/3805] docs(changelog) pre -> prefix --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bcc7e4681f..21e09d0651 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,7 @@ fix: - (modules) domkentlist: cloudcmd -> client - (cloudcmd) password: double crypt - (cloudcmd) add password -- feature(cloudcmd) add pre support +- feature(cloudcmd) add prefix support feature: - (package) should v7.0.1 From 8ad5359b5b9dac1da4d78489edb4ea4aff6bf9f0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 07:54:03 -0400 Subject: [PATCH 0304/3805] feature(config) socket -> middle --- lib/cloudcmd.js | 10 +++++----- lib/server/config.js | 11 ++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 8004d92af0..b8c6e1450d 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -63,7 +63,7 @@ if (p.socket) listen(p.socket); - return cloudcmd(prefix); + return cloudcmd(prefix, p.socket); }; function listen(socket) { @@ -75,8 +75,6 @@ socket: socket }); - config.socket(socket); - edward.listen(socket, { size: size, root: root @@ -92,7 +90,7 @@ }); } - function cloudcmd(prefix) { + function cloudcmd(prefix, socket) { var isOption = function(name) { return config(name); }, @@ -111,7 +109,9 @@ logout, setUrl(prefix), auth(), - config(), + config.middle({ + socket: socket, + }), restafary({ prefix : cloudfunc.apiURL + '/fs', root : root diff --git a/lib/server/config.js b/lib/server/config.js index 77a0f78286..6343da7bf2 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -29,7 +29,14 @@ module.exports = manage; module.exports.save = save; - module.exports.socket = socket; + module.exports.middle = function(options) { + var o = options || {}; + + if (o.socket) + socket(o.socket); + + return middle; + }; function homedir() { var fn = os.homedir || function() { @@ -51,8 +58,6 @@ result = config[key]; else config[key] = value; - else - result = middle; return result; } From f8973e26c0d95a4fb83fe2e60c0827eb4a0c5728 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 11:38:46 -0400 Subject: [PATCH 0305/3805] refactor(express) tryrequire -> require --- lib/server/express.js | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/lib/server/express.js b/lib/server/express.js index 25d2ef1918..94ff573af6 100644 --- a/lib/server/express.js +++ b/lib/server/express.js @@ -8,25 +8,21 @@ tryRequire = require('tryrequire'), - express = tryRequire('express'), + express = require('express'), logger = tryRequire('morgan'), - app = express && express(); + app = express(); exports.getApp = function(middleware) { var isArray = Util.type.array(middleware); - if (app) { - if (logger) - app.use(logger('dev')); - - if (isArray) - middleware.forEach(function(middle) { - app.use(middle); - }); - - app.use(express.static(DIR)); - } + if (logger) + app.use(logger('dev')); + + if (isArray) + middleware.forEach(function(middle) { + app.use(middle); + }); return app; }; From 080a458712d7e3e99e8a118e2147bac5535b844a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 11:57:34 -0400 Subject: [PATCH 0306/3805] feature(config) tryrequire -> readjson --- lib/server/config.js | 6 +++--- package.json | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index 6343da7bf2..f4914ba950 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -16,7 +16,7 @@ pipe = require('pipe-io'), ponse = require('ponse'), jonny = require('jonny'), - tryRequire = require('tryrequire'), + readjson = require('readjson'), apiURL = CloudFunc.apiURL, @@ -24,8 +24,8 @@ ConfigHome = homedir() + '.cloudcmd.json', config = - tryRequire(ConfigHome) || - tryRequire(ConfigPath); + readjson.sync.try(ConfigHome) || + readjson.sync.try(ConfigPath); module.exports = manage; module.exports.save = save; diff --git a/package.json b/package.json index dfe37553b7..22c22890bf 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "package-json": "~1.2.0", "pipe-io": "~1.1.1", "ponse": "~1.4.0", + "readjson": "~1.1.0", "rendy": "~1.1.0", "restafary": "~1.3.0", "socket.io": "~1.3.5", From 61c7afa63551aa734b679b48c7d8f9c9320a44cb Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 22 Jun 2015 15:32:58 -0400 Subject: [PATCH 0307/3805] feature(cloudcmd) prefix could be function --- HELP.md | 2 +- lib/cloudcmd.js | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/HELP.md b/HELP.md index 1b11d1123e..ee2aaf24c4 100644 --- a/HELP.md +++ b/HELP.md @@ -274,7 +274,7 @@ server = http.createServer(app); socket = io.listen(server); app.use(cloudcmd({ - prefix: '/prefix', /* base URL (optional) */ + prefix: '/prefix', /* base URL or function which returns base URL (optional) */ socket: socket, /* used by Config, Edit (optional) and Console (required) */ config: {} /* config data (optional) */ })); diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index b8c6e1450d..ad4f6fd0a9 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -34,12 +34,23 @@ emptyFunc.middle = function() { return emptyFunc; - }, + }; + + function getPrefix(prefix) { + var result; + + if (typeof prefix === 'function') + result = prefix(); + else + result = prefix; + return result; + } + module.exports = function(params) { var p = params || {}, options = p.config || {}, - prefix = p.prefix || '', + prefix = p.prefix, keys = Object.keys(options); keys.forEach(function(name) { @@ -168,9 +179,12 @@ next(); } - function setUrl(prefix) { + function setUrl(pref) { return function(req, res, next) { - var is = !req.url.indexOf(prefix); + var is, prefix; + + prefix = getPrefix(pref); + is = !req.url.indexOf(prefix); if (is) { req.url = req.url.replace(prefix, '') || '/'; From e896e84e1f34fcb848c7f4ad2ca8a9d8e796e1fd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 23 Jun 2015 06:16:08 -0400 Subject: [PATCH 0308/3805] fix(cloudcmd) getPrefix: undefined --- lib/cloudcmd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index ad4f6fd0a9..952a44e896 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -44,7 +44,7 @@ else result = prefix; - return result; + return result || ''; } module.exports = function(params) { From f6dd602d2e4a7bc9c1b2cb572b4359080c31a547 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 24 Jun 2015 07:31:59 -0400 Subject: [PATCH 0309/3805] feature(package) flop v1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 22c22890bf..745498cfa9 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "express": "~4.13.0", "faust": "~1.0.0", "files-io": "~1.2.0", - "flop": "~1.1.0", + "flop": "~1.2.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", "jag": "~1.0.0", From 2b7c0069bb46bc43ef5fcc660de312b195775452 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 26 Jun 2015 07:09:49 -0400 Subject: [PATCH 0310/3805] feature(cloudcmd) show progress of files removing --- HELP.md | 42 +++---- img/screen/config.png | Bin 41484 -> 69794 bytes json/bin.json | 4 +- json/config.json | 2 +- lib/client/dom.js | 90 --------------- lib/client/key.js | 11 +- lib/client/listeners.js | 19 ++-- lib/client/menu.js | 5 +- lib/client/operation.js | 238 ++++++++++++++++++++++++++++++---------- lib/cloudcmd.js | 10 ++ man/cloudcmd.1 | 36 +++--- package.json | 1 + tmpl/config.hbs | 4 +- 13 files changed, 259 insertions(+), 203 deletions(-) diff --git a/HELP.md b/HELP.md index ee2aaf24c4..f042ac8ec9 100644 --- a/HELP.md +++ b/HELP.md @@ -55,26 +55,26 @@ cloudcmd Cloud Commander supports command line parameters: -|Parameter |Operation -|:--------------------------|:-------------------------------------------- -| `-h, --help` | display help and exit -| `-v, --version` | display version and exit -| `-s, --save` | save configuration -| `-o, --online` | load scripts from remote servers -| `-a, --auth` | enable authorization -| `-u, --username` | set username -| `-p, --password` | set password -| `-c, --config` | configuration file path -| `--editor` | set editor: "dword" or "edward" -| `--root` | set root directory -| `--port` | set port number -| `--no-auth` | disable authorization -| `--no-server` | do not start server -| `--no-online` | load scripts from local server -| `--minify` | enable minification -| `--no-minify` | disable minification -| `--progress-of-copying` | show progress of copying -| `--no-progress-of-copying`| do not show progress of copying +|Parameter |Operation +|:------------------------------|:------------------------------ +| `-h, --help` | display help and exit +| `-v, --version` | display version and exit +| `-s, --save` | save configuration +| `-o, --online` | load scripts from remote servers +| `-a, --auth` | enable authorization +| `-u, --username` | set username +| `-p, --password` | set password +| `-c, --config` | configuration file path +| `--editor` | set editor: "dword" or "edward" +| `--root` | set root directory +| `--port` | set port number +| `--no-auth` | disable authorization +| `--no-server` | do not start server +| `--no-online` | load scripts from local server +| `--minify` | enable minification +| `--no-minify` | disable minification +| `--progress` | show progress of file operations +| `--no-progress` | do not show progress of file operations If no parameters given Cloud Commander reads information from `~/.cloudcmd.json` and use port from it (`8000` default). if port variables `PORT` or `VCAP_APP_PORT` isn't exist. @@ -215,7 +215,7 @@ Here is description of options: "port" : 8000, /* http port */ "ip" : null, /* ip or null(default) */ "root" : "/" /* root directory */ - "progressOfCopying" : false /* show progress of copying */ + "progress" : false /* show progress of file operations */ } ``` diff --git a/img/screen/config.png b/img/screen/config.png index 0d57756f652c4e755c6095f97d6f982ea05ac59b..1da52b5990a1595511834ace7332e7cfabb50a49 100644 GIT binary patch literal 69794 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%0DFn6{dJBBEGYpmP#g+Gn927xw#c0MFr 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 LmKVzmak2jc;+>8R diff --git a/json/bin.json b/json/bin.json index 6eed0e1dfb..081cfbef18 100644 --- a/json/bin.json +++ b/json/bin.json @@ -15,6 +15,6 @@ "--no-online ": "load scripts from local server", "--minify ": "enable minification", "--no-minify ": "disable minification", - "--progress-of-copying ": "show progress of copying", - "--no-progress-of-copying ": "not show progress of copying" + "--progress ": "show progress of file operations", + "--no-progress ": "not show progress of file operations" } diff --git a/json/config.json b/json/config.json index 9f15125daa..25219e843f 100644 --- a/json/config.json +++ b/json/config.json @@ -17,5 +17,5 @@ "port": 8000, "ip": null, "root": "/", - "progressOfCopying": false + "progress": false } diff --git a/lib/client/dom.js b/lib/client/dom.js index 45fe1e4126..54dd583425 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -512,96 +512,6 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; }); }; - /** - * prompt and delete current file or selected files - * - * @currentFile - */ - this.promptDelete = function(currentFile) { - var ret, type, isDir, msg, current, - name = '', - msgAsk = 'Do you really want to delete the ', - msgSel = 'selected ', - files = Cmd.getSelectedFiles(), - names = Cmd.getSelectedNames(files), - i, n = names && names.length; - - if (!Cmd.isCurrentFile(currentFile)) - current = DOM.getCurrentFile(); - - if (n) { - for (i = 0; i < 5 && i < n; i++) - name += '\n' + names[i]; - - if (n >= 5) - name += '\n...'; - - msg = msgAsk + msgSel + n + ' files/directoris?\n' + name ; - } else { - isDir = Cmd.isCurrentIsDir(current); - - if (isDir) - type = 'directory'; - else - type = 'file'; - - type += ' '; - - name = Cmd.getCurrentName(current); - msg = msgAsk + msgSel + type + name + '?'; - } - - if (name !== '..') - ret = Dialog.confirm(msg); - else - Dialog.alert('No files selected!'); - - if (ret) - DOM.sendDelete(files); - - return ret; - }; - - /** - * delete current or selected files - * - * @files - */ - this.sendDelete = function(files) { - var n, names, path, - query = '', - RESTful = DOM.RESTful, - current = CurrentInfo.element; - - Images.show(); - - if (!files) - files = Cmd.getSelectedFiles(); - - names = DOM.getSelectedNames(files), - n = names && names.length; - - if (n) { - path = Cmd.getCurrentDirPath(); - query = '?files'; - } else { - path = Cmd.getCurrentPath(current); - } - - RESTful.delete(path + query, names, function() { - var Storage = DOM.Storage, - dirPath = CurrentInfo.dirPath, - dir = CloudFunc.rmLastSlash(dirPath); - - if (n > 1) - DOM.deleteSelected(files); - else - DOM.deleteCurrent(current); - - Storage.removeMatch(dir); - }); - }; - /** * get current direcotory name */ diff --git a/lib/client/key.js b/lib/client/key.js index e31f0f0b34..25839dc23b 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -217,6 +217,7 @@ var CloudCmd, Util, DOM; function switchKey(event) { var i, name, isSelected, isDir, prev, next, + Operation = CloudCmd.Operation, current = Info.element, panel = Info.panel, path = Info.path, @@ -250,9 +251,9 @@ var CloudCmd, Util, DOM; case Key.DELETE: if (shift) - DOM.sendDelete(); + Operation.show('delete:silent'); else - DOM.promptDelete(current); + Operation.show('delete'); break; case Key.ASTERISK: @@ -291,12 +292,12 @@ var CloudCmd, Util, DOM; break; case Key.F5: - CloudCmd.Operation.show('copy'); + Operation.show('copy'); event.preventDefault(); break; case Key.F6: - CloudCmd.Operation.show('move'); + Operation.show('move'); event.preventDefault(); break; @@ -310,7 +311,7 @@ var CloudCmd, Util, DOM; break; case Key.F8: - DOM.promptDelete(current); + Operation.show('delete'); break; case Key.F9: diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 4e1ee4099e..5bc76e8f98 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -31,22 +31,27 @@ var Util, DOM, CloudFunc, CloudCmd; if (keysElement) Events.addClick(keysElement, function(event) { var element = event.target, - id = element.id, + id = element.id, + operation = function() { + var Operation = CloudCmd.Operation, + fn = Operation.show.bind(null, name); + + return fn; + }, clickFuncs = { 'f1' : CloudCmd.Help.show, + 'f2' : DOM.renameCurrent, 'f3' : CloudCmd.View.show, 'f4' : CloudCmd.Edit.show, - 'f5' : CloudCmd.Operation.show.bind(null, 'copy'), - 'f6' : CloudCmd.Operation.show.bind(null, 'move'), + 'f5' : operation('copy'), + 'f6' : operation('move'), + 'f7' : DOM.promptNewDir, + 'f8' : operation('delete'), 'f9' : CloudCmd.Menu.show, 'f10' : CloudCmd.Config.show, '~' : CloudCmd.Konsole.show, 'contact' : CloudCmd.Contact.show, - - 'f2' : DOM.renameCurrent, - 'f7' : DOM.promptNewDir, - 'f8' : DOM.promptDelete }, func = clickFuncs[id]; diff --git a/lib/client/menu.js b/lib/client/menu.js index 6bd70c8470..26c60bdc63 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -157,6 +157,9 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; var show = function(name) { CloudCmd[name].show(); }, + + Operation = CloudCmd.Operation, + menuData = getMenuData(is), menu = { 'View' : Util.exec.with(show, 'View'), @@ -164,7 +167,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; 'Rename' : function() { setTimeout(DOM.renameCurrent, 100); }, - 'Delete' : DOM.promptDelete, + 'Delete' : Operation.show.bind(null, 'delete'), 'Pack' : getActiveFunc(DOM.pack), 'Unpack' : getActiveFunc(DOM.unpack), 'Upload' : function() { diff --git a/lib/client/operation.js b/lib/client/operation.js index 189e144e02..4d338317af 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -1,11 +1,11 @@ /* global CloudCmd */ /* global Util */ /* global DOM */ -/* global CloudFunc */ /* global rendy */ /* global spero */ +/* global remedy */ -(function(CloudCmd, Util, DOM, CloudFunc, rendy) { +(function(CloudCmd, Util, DOM, rendy) { 'use strict'; CloudCmd.Operation = OperationProto; @@ -13,24 +13,33 @@ function OperationProto(operation, data) { var Name = 'Operation', Loaded, - copyFn = DOM.RESTful.cp, - moveFn = DOM.RESTful.mv, + RESTful = DOM.RESTful, + + copyFn = RESTful.cp, + moveFn = RESTful.mv, + deleteFn = RESTful.delete, + Images = DOM.Images, Dialog = DOM.Dialog, Operation = this; + + function rmLastSlash(str) { + return str.replace(/\/$/, ''); + } function init() { Images.show.load(); Util.exec.series([ + DOM.loadSocket, function(callback) { var Files = DOM.Files; Files.get('config', function(error, config) { if (error) alert(error); - else if (config.progressOfCopying) + else if (config.progress) load(function() { create(callback); }); @@ -48,51 +57,63 @@ function create(callback) { spero(function() { - var parse = function(fn) { - return function(data, callback) { - var listeners = { - progress: function(value) { - Images.setProgress(value); - }, - - end: function() { - callback(); - events.forEach(function(name) { - spero.removeListener(name, listeners[name]); - }); - }, - - error: function(data) { - var msg = data + '\n Continue?', - is = confirm(msg); - - if (is) - spero.continue(); - else - spero.abort(); - } - }, - events = Object.keys(listeners); - - Images.show('top'); - - fn(data.from, data.to, data.names); - - events.forEach(function(name) { - spero.on(name, listeners[name]); - }); + spero.on('connect', function() { + copyFn = function(data, callback) { + setListeners(spero, callback); + spero.copy(data.from, data.to, data.names); }; - }; - - spero.on('connect', function() { - copyFn = parse(spero.copy); }); spero.on('disconnect', function() { - copyFn = DOM.RESTful.cp; + copyFn = DOM.RESTful.cp; + }); + }); + + remedy(function() { + remedy.on('connect', function() { + deleteFn = function(from, files, callback) { + from = from.replace(/\?.*/, ''); + + setListeners(remedy, callback); + remedy.remove(from, files); + }; }); - Util.exec(callback); + remedy.on('disconnect', function() { + deleteFn = DOM.RESTful.remove; + }); + }); + + Util.exec(callback); + } + + function setListeners(emitter, callback) { + var listeners = { + progress: function(value) { + Images.setProgress(value); + }, + + end: function() { + callback(); + events.forEach(function(name) { + emitter.removeListener(name, listeners[name]); + }); + }, + + error: function(data) { + var msg = data + '\n Continue?', + is = confirm(msg); + + if (is) + spero.continue(); + else + spero.abort(); + } + }, + events = Object.keys(listeners); + + events.forEach(function(name) { + emitter.on(name, listeners[name]); }); } @@ -110,17 +131,117 @@ case 'move': Operation.move(data); break; + + case 'delete': + Operation.delete(); + break; + + case 'delete:silent': + Operation.deleteShift(); } }; - this.copy = function(data) { + this.copy = function(data) { processFiles(data, copyFn, message('Copy')); }; - this.move = function(data) { + this.move = function(data) { processFiles(data, moveFn, message('Rename/Move')); }; + this.delete = function() { + promptDelete(); + }; + + this.deleteSilent = function() { + deleteSilent(); + }; + + /** + * prompt and delete current file or selected files + * + * @currentFile + */ + function promptDelete() { + var ret, type, isDir, msg, + name = '', + msgAsk = 'Do you really want to delete the ', + msgSel = 'selected ', + files = DOM.getSelectedFiles(), + names = DOM.getSelectedNames(files), + i, n = names && names.length, + current = DOM.getCurrentFile(); + + if (n) { + for (i = 0; i < 5 && i < n; i++) + name += '\n' + names[i]; + + if (n >= 5) + name += '\n...'; + + msg = msgAsk + msgSel + n + ' files/directoris?\n' + name ; + } else { + isDir = DOM.isCurrentIsDir(current); + + if (isDir) + type = 'directory'; + else + type = 'file'; + + type += ' '; + + name = DOM.getCurrentName(current); + msg = msgAsk + msgSel + type + name + '?'; + } + + if (name !== '..') + ret = Dialog.confirm(msg); + else + Dialog.alert('No files selected!'); + + if (ret) + deleteSilent(files); + + return ret; + } + + /** + * delete current or selected files + * + * @files + */ + function deleteSilent(files) { + var n, names, + query = '?files', + Info = DOM.CurrentInfo, + path = Info.dirPath, + current = Info.element; + + Images.show(); + + if (!files) + files = DOM.getSelectedFiles(); + + names = DOM.getSelectedNames(files), + n = names && names.length; + + if (!n) + names = [Info.name]; + + deleteFn(path + query, names, function() { + var Storage = DOM.Storage, + dirPath = Info.dirPath, + dir = rmLastSlash(dirPath); + + if (n > 1) + DOM.deleteSelected(files); + else + DOM.deleteCurrent(current); + + Storage.removeMatch(dir); + }); + } + /* * process files (copy or move) * @param data @@ -128,7 +249,7 @@ */ function processFiles(data, operation, message) { var name, files, - CurrentInfo = DOM.CurrentInfo, + Info = DOM.CurrentInfo, panel, shouldAsk, sameName, @@ -144,14 +265,14 @@ from = data.from; to = data.to; names = data.names; - panel = CurrentInfo.panel; + panel = Info.panel; } else { - from = CurrentInfo.dirPath; + from = Info.dirPath; to = DOM.getNotCurrentDirPath(); names = DOM.getSelectedNames(); data = {}; shouldAsk = true; - panel = CurrentInfo.panelPassive; + panel = Info.panelPassive; } if (!names.length) @@ -184,11 +305,11 @@ }; operation(files, function() { - var path = CloudFunc.rmLastSlash(from); + var path = rmLastSlash(from); DOM.Storage.remove(path, function() { - var panel = CurrentInfo.panel, - panelPassive = CurrentInfo.panelPassive, + var panel = Info.panel, + panelPassive = Info.panelPassive, setCurrent = function() { var current; @@ -199,7 +320,7 @@ DOM.setCurrentFile(current); }; - if (!CurrentInfo.isOnePanel) + if (!Info.isOnePanel) CloudCmd.refresh(panelPassive, {noCurrent: true}, function() {}); CloudCmd.refresh(panel, setCurrent); @@ -231,7 +352,12 @@ } function load(callback) { - DOM.load.js('/spero/spero.js', function(error) { + var files = [ + '/spero/spero.js', + '/remedy/remedy.js' + ]; + + DOM.load.parallel(files, function(error) { if (error) { Dialog.alert(error.message); } else { @@ -247,4 +373,4 @@ init(); } -})(CloudCmd, Util, DOM, CloudFunc, rendy); +})(CloudCmd, Util, DOM, rendy); diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 952a44e896..330cd6e657 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -23,6 +23,7 @@ edward = require('edward'), dword = require('dword'), spero = require('spero'), + remedy = require('remedy'), root = function() { return config('root'); @@ -99,6 +100,10 @@ spero.listen(socket, { root: root }); + + remedy.listen(socket, { + root: root + }); } function cloudcmd(prefix, socket) { @@ -161,6 +166,11 @@ online: isOnline }), + remedy({ + minify: isMinify, + online: isOnline + }), + mollify({ dir : DIR_ROOT, is : isMinify diff --git a/man/cloudcmd.1 b/man/cloudcmd.1 index 7626c8be85..a800cdbcf4 100644 --- a/man/cloudcmd.1 +++ b/man/cloudcmd.1 @@ -22,24 +22,24 @@ programs in browser from any computer, mobile or tablet device. .SH OPTIONS - -h, --help display help and exit - -v, --version display version and exit - -s, --save save configuration - -o, --online load scripts from remote servers - -a, --auth enable authorization - -u, --username set username - -p, --password set password - -c, --config configuration file path - --editor set editor: "dword" or "edward" - --root set root directory - --port set port number - --no-auth disable authorization - --no-server do not start server - --no-online load scripts from local server - --minify enable minification - --no-minify disable minification - --progress-of-copying show progress of copying - --no-progress-of-copying do not show progress of copying + -h, --help display help and exit + -v, --version display version and exit + -s, --save save configuration + -o, --online load scripts from remote servers + -a, --auth enable authorization + -u, --username set username + -p, --password set password + -c, --config configuration file path + --editor set editor: "dword" or "edward" + --root set root directory + --port set port number + --no-auth disable authorization + --no-server do not start server + --no-online load scripts from local server + --minify enable minification + --no-minify disable minification + --progress show progress of file operations + --no-progress do not show progress of file operations .SH RESOURCES AND DOCUMENTATION diff --git a/package.json b/package.json index 745498cfa9..a87cebc407 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "pipe-io": "~1.1.1", "ponse": "~1.4.0", "readjson": "~1.1.0", + "remedy": "~1.0.5", "rendy": "~1.1.0", "restafary": "~1.3.0", "socket.io": "~1.3.5", diff --git a/tmpl/config.hbs b/tmpl/config.hbs index 487067b184..281279b363 100644 --- a/tmpl/config.hbs +++ b/tmpl/config.hbs @@ -123,8 +123,8 @@
  • From 239073b97bec8c3f4b6b1af226a21f18559b54af Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 26 Jun 2015 07:11:15 -0400 Subject: [PATCH 0311/3805] docs(help) prefix -> cloudcmd, 31337 -> 1337 --- HELP.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HELP.md b/HELP.md index f042ac8ec9..edd42591e3 100644 --- a/HELP.md +++ b/HELP.md @@ -265,7 +265,7 @@ var http = require('http'), io = require('socket.io'), app = express(), - PORT = 31337, + PORT = 1337, server, socket; @@ -274,7 +274,7 @@ server = http.createServer(app); socket = io.listen(server); app.use(cloudcmd({ - prefix: '/prefix', /* base URL or function which returns base URL (optional) */ + prefix: '/cloudcmd',/* base URL or function which returns base URL (optional) */ socket: socket, /* used by Config, Edit (optional) and Console (required) */ config: {} /* config data (optional) */ })); From b9177e7aeca4d7488a6b99fb6a55d63337dfa0e3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 26 Jun 2015 07:33:57 -0400 Subject: [PATCH 0312/3805] feature(flop) v1.3.0 --- lib/server/route.js | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/server/route.js b/lib/server/route.js index 0bd4bc32f6..148e8ad1c8 100644 --- a/lib/server/route.js +++ b/lib/server/route.js @@ -10,7 +10,7 @@ fs = require('fs'), - mellow = require('mellow'), + flop = require('flop'), ponse = require('ponse'), files = require('files-io'), rendy = require('rendy'), @@ -166,7 +166,7 @@ name = name.replace(CloudFunc.FS, '') || '/'; fullPath = root(name); - mellow.read(fullPath, function(error, dir) { + flop.read(fullPath, function(error, dir) { if (dir) dir.path = format.addSlashToEnd(name); diff --git a/package.json b/package.json index a87cebc407..ddb07b406b 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "express": "~4.13.0", "faust": "~1.0.0", "files-io": "~1.2.0", - "flop": "~1.2.0", + "flop": "~1.3.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", "jag": "~1.0.0", From 921933941709a9e2458e77e62a2e33c5bdbf7aa6 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 26 Jun 2015 07:35:22 -0400 Subject: [PATCH 0313/3805] feature(package) mellow v2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ddb07b406b..d772c37195 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "join-io": "~1.4.0", "jonny": "~1.0.0", "markdown-it": "~4.2.0", - "mellow": "~1.3.0", + "mellow": "~2.0.0", "minify": "~1.4.0", "minimist": "~1.1.0", "mollify": "~1.0.0", From c14c2ac696becba46afb6e28bcb131e3b4de273e Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 26 Jun 2015 07:41:48 -0400 Subject: [PATCH 0314/3805] chore(operation) rm " " --- lib/client/operation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/operation.js b/lib/client/operation.js index 4d338317af..05645c0ed5 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -211,7 +211,7 @@ * @files */ function deleteSilent(files) { - var n, names, + var n, names, query = '?files', Info = DOM.CurrentInfo, path = Info.dirPath, From 592f5b32b90b53fb6ce1d098b7f15ebbe46c61f9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 26 Jun 2015 07:52:15 -0400 Subject: [PATCH 0315/3805] feature(cloudcmd) progress-of-copying -> progress --- bin/cloudcmd.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index b641a6fbaf..2603b42be7 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -30,7 +30,7 @@ 'server', 'online', 'minify', - 'progress-of-copying' + 'progress' ], default: { server : true, @@ -41,8 +41,7 @@ editor : config('editor') || 'edward', username : config('username'), root : config('root') || '/', - - 'progress-of-copying': config('progressOfCopying') + progress : config('progress') }, alias: { v: 'version', From fadc651d868582595d222809a9c41b873641d886 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 27 Jun 2015 06:12:51 -0400 Subject: [PATCH 0316/3805] feature(cloudcmd) --progressOfCopying deprecated --- bin/cloudcmd.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 2603b42be7..ceb4881d28 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -30,7 +30,8 @@ 'server', 'online', 'minify', - 'progress' + 'progress', + 'progress-of-copying' ], default: { server : true, @@ -41,7 +42,7 @@ editor : config('editor') || 'edward', username : config('username'), root : config('root') || '/', - progress : config('progress') + progress : config('progress') || config('progressOfCopying'), }, alias: { v: 'version', @@ -74,7 +75,9 @@ config('online', args.online); config('minify', args.minify); config('username', args.username); - config('progressOfCopying', args['progress-of-copying']); + config('progress', args.progress); + + deprecate('progress-of-copying', 'progress'); readConfig(args.config); @@ -92,6 +95,15 @@ start(options); } + function deprecate(was, became) { + var value = args[was]; + + if (value) { + console.log('cloudcmd --' + was + ': deprecated, use --' + became); + config(became, value); + } + } + function version() { console.log('v' + Info.version); } From fed85229727904aaf262d55d618e1905e2c57e20 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 27 Jun 2015 06:21:17 -0400 Subject: [PATCH 0317/3805] chore(package) v3.5.0 --- ChangeLog | 20 ++++++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 21e09d0651..a69fee4985 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2015.06.27, v3.5.0 + +fix: +- docs(help) pre -> cloudcmd, 31337 -> 1337 +- (cloudcmd) getPre: undefined +- feature(cloudcmd) pre could be function +- docs(changelog) pre -> pre + +feature: +- (cloudcmd) --progressOfCopying deprecated +- (cloudcmd) progress-of-copying -> progress +- (package) mellow v2.0.0 +- (flop) v1.3.0 +- (cloudcmd) show progress of files removing +- (package) flop v1.2.0 +- (cloudcmd) prefix could be function +- (config) tryrequire -> readjson +- (config) socket -> middle + + 2015.06.22, v3.4.0 fix: diff --git a/HELP.md b/HELP.md index edd42591e3..b41402eb46 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.4.0 +Cloud Commander v3.5.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.06.27*, **[v3.5.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.5.0.tar.gz)** - *2015.06.22*, **[v3.4.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.4.0.tar.gz)** - *2015.06.20*, **[v3.3.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.3.0.tar.gz)** - *2015.06.12*, **[v3.2.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.2.0.tar.gz)** diff --git a/README.md b/README.md index c7785472dc..c1603c43f7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.4.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.5.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 3e672d3649..09daa66b87 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.4.0", + "version": "3.5.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index d772c37195..b0d4193b58 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.4.0", + "version": "3.5.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From e740d2dd0412e86ab2f1db1551db9e9983051900 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 27 Jun 2015 13:25:47 +0300 Subject: [PATCH 0318/3805] docs(changelog) rm flop v1.2.0 --- ChangeLog | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a69fee4985..ab27254b49 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,9 +10,8 @@ feature: - (cloudcmd) --progressOfCopying deprecated - (cloudcmd) progress-of-copying -> progress - (package) mellow v2.0.0 -- (flop) v1.3.0 +- (package) flop v1.3.0 - (cloudcmd) show progress of files removing -- (package) flop v1.2.0 - (cloudcmd) prefix could be function - (config) tryrequire -> readjson - (config) socket -> middle From c27579181dae11001b987bb072e243c453b01874 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 27 Jun 2015 06:58:15 -0400 Subject: [PATCH 0319/3805] feature(bower) promise-poyfill v2.1.0 --- bower.json | 4 ++-- modules/promise-polyfill/.bower.json | 13 +++++++------ modules/promise-polyfill/Promise.js | 24 ++++++++++++++---------- modules/promise-polyfill/Promise.min.js | 4 ++-- modules/promise-polyfill/README.md | 12 ++++++++++-- modules/promise-polyfill/bower.json | 2 +- modules/promise-polyfill/jasmine.json | 7 +++++++ modules/promise-polyfill/package.json | 16 +++++++++++----- 8 files changed, 54 insertions(+), 28 deletions(-) create mode 100644 modules/promise-polyfill/jasmine.json diff --git a/bower.json b/bower.json index 09daa66b87..0954f90f22 100644 --- a/bower.json +++ b/bower.json @@ -24,11 +24,11 @@ "fancybox": "~2.1.5", "jquery": "~2.1.4", "menu": "~0.7.8", - "promise-polyfill": "~2.0.0", "format-io": "~0.9.6", "rendy": "~1.1.0", "github": "~0.10.6", "vk-openapi": "~0.0.1", - "domtokenlist-shim": "~1.1.0" + "domtokenlist-shim": "~1.1.0", + "promise-polyfill": "~2.1.0" } } diff --git a/modules/promise-polyfill/.bower.json b/modules/promise-polyfill/.bower.json index 7128614d37..63cbef81d1 100644 --- a/modules/promise-polyfill/.bower.json +++ b/modules/promise-polyfill/.bower.json @@ -1,6 +1,6 @@ { "name": "promise-polyfill", - "version": "2.0.0", + "version": "2.1.0", "homepage": "https://github.com/taylorhakes/promise-polyfill", "authors": [ "Taylor Hakes" @@ -25,13 +25,14 @@ "test", "tests" ], - "_release": "2.0.0", + "_release": "2.1.0", "_resolution": { "type": "version", - "tag": "2.0.0", - "commit": "970996440115e6c5ec0dc84a15e00fc04b34651f" + "tag": "2.1.0", + "commit": "7ee8e28671e2e7ff0304ea37c3d1fb1288645362" }, "_source": "git://github.com/taylorhakes/promise-polyfill.git", - "_target": "~2.0.0", - "_originalSource": "promise-polyfill" + "_target": "~2.1.0", + "_originalSource": "promise-polyfill", + "_direct": true } \ No newline at end of file diff --git a/modules/promise-polyfill/Promise.js b/modules/promise-polyfill/Promise.js index 9c55485b4a..47453e5053 100644 --- a/modules/promise-polyfill/Promise.js +++ b/modules/promise-polyfill/Promise.js @@ -1,14 +1,8 @@ -(function() { - var root; - - if (typeof window === 'object' && window) { - root = window; - } else { - root = global; - } +(function(root) { // Use polyfill for setImmediate for performance gains - var asap = Promise.immediateFn || root.setImmediate || function(fn) { setTimeout(fn, 1); }; + var asap = (typeof setImmediate === 'function' && setImmediate) || + function(fn) { setTimeout(fn, 1); }; // Polyfill for Function.prototype.bind function bind(fn, thisArg) { @@ -178,9 +172,19 @@ }); }; + /** + * Set the immediate function to execute callbacks + * @param fn {function} Function to execute + * @private + */ + Promise._setImmediateFn = function _setImmediateFn(fn) { + asap = fn; + }; + if (typeof module !== 'undefined' && module.exports) { module.exports = Promise; } else if (!root.Promise) { root.Promise = Promise; } -})(); \ No newline at end of file + +})(this); \ No newline at end of file diff --git a/modules/promise-polyfill/Promise.min.js b/modules/promise-polyfill/Promise.min.js index f3ee36e600..fe61cac641 100644 --- a/modules/promise-polyfill/Promise.min.js +++ b/modules/promise-polyfill/Promise.min.js @@ -1,2 +1,2 @@ -/*! promise-polyfill 2.0.0 */ -!function(){function a(a,b){return function(){a.apply(b,arguments)}}function b(b){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof b)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],h(b,a(d,this),a(e,this))}function c(a){var b=this;return null===this._state?void this._deferreds.push(a):void j(function(){var c=b._state?a.onFulfilled:a.onRejected;if(null===c)return void(b._state?a.resolve:a.reject)(b._value);var d;try{d=c(b._value)}catch(e){return void a.reject(e)}a.resolve(d)})}function d(b){try{if(b===this)throw new TypeError("A promise cannot be resolved with itself.");if(b&&("object"==typeof b||"function"==typeof b)){var c=b.then;if("function"==typeof c)return void h(a(c,b),a(d,this),a(e,this))}this._state=!0,this._value=b,f.call(this)}catch(g){e.call(this,g)}}function e(a){this._state=!1,this._value=a,f.call(this)}function f(){for(var a=0,b=this._deferreds.length;b>a;a++)c.call(this,this._deferreds[a]);this._deferreds=null}function g(a,b,c,d){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.resolve=c,this.reject=d}function h(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}var i;i="object"==typeof window&&window?window:global;var j=b.immediateFn||i.setImmediate||function(a){setTimeout(a,1)},k=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.prototype["catch"]=function(a){return this.then(null,a)},b.prototype.then=function(a,d){var e=this;return new b(function(b,f){c.call(e,new g(a,d,b,f))})},b.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&k(arguments[0])?arguments[0]:arguments);return new b(function(b,c){function d(f,g){try{if(g&&("object"==typeof g||"function"==typeof g)){var h=g.then;if("function"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0===--e&&b(a)}catch(i){c(i)}}if(0===a.length)return b([]);for(var e=a.length,f=0;fd;d++)a[d].then(b,c)})},"undefined"!=typeof module&&module.exports?module.exports=b:i.Promise||(i.Promise=b)}(); \ No newline at end of file +/*! promise-polyfill 2.1.0 */ +!function(a){function b(a,b){return function(){a.apply(b,arguments)}}function c(a){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof a)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],i(a,b(e,this),b(f,this))}function d(a){var b=this;return null===this._state?void this._deferreds.push(a):void j(function(){var c=b._state?a.onFulfilled:a.onRejected;if(null===c)return void(b._state?a.resolve:a.reject)(b._value);var d;try{d=c(b._value)}catch(e){return void a.reject(e)}a.resolve(d)})}function e(a){try{if(a===this)throw new TypeError("A promise cannot be resolved with itself.");if(a&&("object"==typeof a||"function"==typeof a)){var c=a.then;if("function"==typeof c)return void i(b(c,a),b(e,this),b(f,this))}this._state=!0,this._value=a,g.call(this)}catch(d){f.call(this,d)}}function f(a){this._state=!1,this._value=a,g.call(this)}function g(){for(var a=0,b=this._deferreds.length;b>a;a++)d.call(this,this._deferreds[a]);this._deferreds=null}function h(a,b,c,d){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.resolve=c,this.reject=d}function i(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}var j="function"==typeof setImmediate&&setImmediate||function(a){setTimeout(a,1)},k=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};c.prototype["catch"]=function(a){return this.then(null,a)},c.prototype.then=function(a,b){var e=this;return new c(function(c,f){d.call(e,new h(a,b,c,f))})},c.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&k(arguments[0])?arguments[0]:arguments);return new c(function(b,c){function d(f,g){try{if(g&&("object"==typeof g||"function"==typeof g)){var h=g.then;if("function"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0===--e&&b(a)}catch(i){c(i)}}if(0===a.length)return b([]);for(var e=a.length,f=0;fd;d++)a[d].then(b,c)})},c._setImmediateFn=function(a){j=a},"undefined"!=typeof module&&module.exports?module.exports=c:a.Promise||(a.Promise=c)}(this); \ No newline at end of file diff --git a/modules/promise-polyfill/README.md b/modules/promise-polyfill/README.md index 627946d337..41c8b9c6c4 100644 --- a/modules/promise-polyfill/README.md +++ b/modules/promise-polyfill/README.md @@ -13,6 +13,9 @@ For API information about Promises, please check out this article [HTML5Rocks ar It is extremely lightweight. ***< 1kb Gzipped*** +## Browser Support +IE8+, Chrome, Firefox, IOS 4+, Safari 5+, Opera + ## Downloads - [Promise](https://raw.github.com/taylorhakes/promise-polyfill/master/Promise.js) @@ -22,6 +25,10 @@ It is extremely lightweight. ***< 1kb Gzipped*** ``` npm install promise-polyfill ``` +### Bower +``` +bower install promise-polyfill +``` ## Simple use ``` @@ -30,8 +37,7 @@ var prom = new Promise(function(resolve, reject) { if (/* everything turned out fine */) { resolve("Stuff worked!"); - } - else { + } else { reject(new Error("It broke")); } }); @@ -45,6 +51,8 @@ prom.then(function() { By default promise-polyfill uses `setImmediate`, but falls back to `setTimeout` for executing asynchronously. If a browser does not support `setImmediate`, you may see performance issues. Use a `setImmediate` polyfill to fix this issue. [setAsap](https://github.com/taylorhakes/setAsap) or [setImmediate](https://github.com/YuzuJS/setImmediate) work well. +If you polyfill `window.setImmediate` or use `Promise._setImmediateFn(immedateFn)` it will be used instead of `window.setTimeout` + ## Testing ``` npm install diff --git a/modules/promise-polyfill/bower.json b/modules/promise-polyfill/bower.json index 8ee7394d71..d7c12b6c4f 100644 --- a/modules/promise-polyfill/bower.json +++ b/modules/promise-polyfill/bower.json @@ -1,6 +1,6 @@ { "name": "promise-polyfill", - "version": "1.1.4", + "version": "2.1.0", "homepage": "https://github.com/taylorhakes/promise-polyfill", "authors": [ "Taylor Hakes" diff --git a/modules/promise-polyfill/jasmine.json b/modules/promise-polyfill/jasmine.json new file mode 100644 index 0000000000..9f4542e6b4 --- /dev/null +++ b/modules/promise-polyfill/jasmine.json @@ -0,0 +1,7 @@ +{ + "spec_dir": "tests", + "spec_files": [ + "**/*.spec.js" + ], + "helpers": [] +} \ No newline at end of file diff --git a/modules/promise-polyfill/package.json b/modules/promise-polyfill/package.json index 75afee05c5..8817f83d14 100644 --- a/modules/promise-polyfill/package.json +++ b/modules/promise-polyfill/package.json @@ -1,10 +1,10 @@ { "name": "promise-polyfill", - "version": "2.0.0", + "version": "2.1.0", "description": "Lightweight promise polyfill. A+ compliant", "main": "Promise.js", "scripts": { - "test": "./node_modules/.bin/promises-aplus-tests tests/adapter.js" + "test": "./node_modules/.bin/promises-aplus-tests tests/adapter.js && JASMINE_CONFIG_PATH=jasmine.json ./node_modules/jasmine/bin/jasmine.js;" }, "repository": { "type": "git", @@ -17,10 +17,16 @@ }, "homepage": "https://github.com/taylorhakes/promise-polyfill", "devDependencies": { - "promises-aplus-tests": "*", "grunt": "^0.4.4", - "grunt-contrib-uglify": "^0.4.0" + "grunt-contrib-uglify": "^0.4.0", + "jasmine": "^2.3.1", + "promises-aplus-tests": "*" }, - "keywords": ["promise", "promise-polyfill", "ES6", "promises-aplus"], + "keywords": [ + "promise", + "promise-polyfill", + "ES6", + "promises-aplus" + ], "dependencies": {} } From 97c4c85fc7a265c4b5b625e19b6ba33708a743a1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 29 Jun 2015 14:52:06 -0400 Subject: [PATCH 0320/3805] feature(package) markdown-it v4.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b0d4193b58..79ea1458c4 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "jag": "~1.0.0", "join-io": "~1.4.0", "jonny": "~1.0.0", - "markdown-it": "~4.2.0", + "markdown-it": "~4.3.0", "mellow": "~2.0.0", "minify": "~1.4.0", "minimist": "~1.1.0", From 6d73b87ad4c7e4c62b7d1a227869f9f66ab68f76 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 29 Jun 2015 15:03:35 -0400 Subject: [PATCH 0321/3805] feature(package) yaspeller v2.5.0 --- package.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 79ea1458c4..5f7212a606 100644 --- a/package.json +++ b/package.json @@ -9,24 +9,24 @@ "url": "git://github.com/coderaiser/cloudcmd.git" }, "keywords": [ - "file manager", - "orthodox", + "console", + "editor", "file", + "file manager", "folder", - "console", - "editor" + "orthodox" ], "bin": { "cloudcmd": "bin/cloudcmd.js", "iocmd": "bin/iocmd.js" }, "scripts": { - "test": "gulp default", - "start": "node bin/cloudcmd.js", + "bower": "bower", "gulp": "gulp", - "yaspeller": "yaspeller .", + "start": "node bin/cloudcmd.js", + "test": "gulp default", "wisdom": "gulp release", - "bower": "bower" + "yaspeller": "yaspeller ." }, "directories": { "man": "man" @@ -78,7 +78,7 @@ "place": "~1.1.2", "shortdate": "~1.0.1", "should": "^7.0.1", - "yaspeller": "~2.4.0" + "yaspeller": "~2.5.0" }, "engines": { "node": ">=0.10" From 526975c9b9a24644fc989811447adbc9597fa791 Mon Sep 17 00:00:00 2001 From: tarzak Date: Tue, 30 Jun 2015 10:10:29 +0300 Subject: [PATCH 0322/3805] translate comments from ru to eng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit получаем выдленный файл = > get selected file если клавиши можно обрабатывать => in case buttons can be processed навигация по таблице файлов нажали клавишу вверх предыдущую строку => navigation on file table in case of pressing button up select previous row если нажали клавишу в низ - выделяем следующую строку => in case of pressing button 'down', select next row если нажали клавишу Home переходим к самому верхнему элементу => in case of pressing button 'Home', go to top element если нажали клавишу End выделяем последний элемент => in case of pressing button 'End', select last element открываем папку => open directory чистим хранилище => clear storage --- lib/client/key.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/client/key.js b/lib/client/key.js index 25839dc23b..0d20a7d1f3 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -102,7 +102,7 @@ var CloudCmd, Util, DOM; }; function listener(event) { - /* получаем выдленный файл*/ + /* get selected file */ var keyCode = event.keyCode, alt = event.altKey, ctrl = event.ctrlKey, @@ -127,7 +127,7 @@ var CloudCmd, Util, DOM; char = isSymbol; } - /* если клавиши можно обрабатывать*/ + /* in case buttons can be processed */ if (Key.isBind()) if (!alt && !ctrl && !meta && (isBetween || isSymbol)) setCurrentByChar(char); @@ -361,9 +361,9 @@ var CloudCmd, Util, DOM; } break; - /* навигация по таблице файлов * - * если нажали клавишу вверх * - * выделяем предыдущую строку */ + /* navigation on file table: * + * in case of pressing button 'up', * + * select previous row */ case Key.UP: if (shift) DOM.toggleSelectedFile(current); @@ -372,7 +372,8 @@ var CloudCmd, Util, DOM; event.preventDefault(); break; - /* если нажали клавишу в низ - выделяем следующую строку */ + /* in case of pressing button 'down', * + * select next row */ case Key.DOWN: if (shift) DOM.toggleSelectedFile(current); @@ -403,15 +404,14 @@ var CloudCmd, Util, DOM; } break; - /* если нажали клавишу Home * - * переходим к самому верхнему * - * элементу */ + /* in case of pressing button 'Home', * + * go to top element */ case Key.HOME: DOM.setCurrentFile(Info.first); event.preventDefault(); break; - /* если нажали клавишу End выделяем последний элемент */ + /* in case of pressing button 'End', select last element */ case Key.END: DOM.setCurrentFile(Info.last); event.preventDefault(); @@ -447,7 +447,7 @@ var CloudCmd, Util, DOM; event.preventDefault(); break; - /* открываем папку*/ + /* open directory */ case Key.ENTER: if (Info.isDir) CloudCmd.loadDir({ From 3c538da449e332e2b4d9c02f65beb50275117188 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 04:07:41 -0400 Subject: [PATCH 0323/3805] chore(listeners) do not -> doesn't --- lib/client/listeners.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 5bc76e8f98..6413fab9c6 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -99,7 +99,7 @@ var Util, DOM, CloudFunc, CloudCmd; href = element.href; link = href.replace(url, ''); /** - * browser do not replace % -> %25% + * browser doesn't replace % -> %25% * do it for him */ link = link.replace('%%', '%25%'); From ef0fb11a235be1150a3a3cbae1453a09ec66b6d7 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 05:31:38 -0400 Subject: [PATCH 0324/3805] fix(cloudcmd) ignore commandl line options when --save flag set --- bin/cloudcmd.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index ceb4881d28..12150c2f64 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -89,10 +89,12 @@ if (args.password) options.password = args.password; - if (args.save) - config.save(start); - else + if (!args.save) start(options); + else + config.save(function() { + start(options); + }); } function deprecate(was, became) { From 161a363b0439a05c82332e9aa3b92c7c9e4ca23b Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 07:39:56 -0400 Subject: [PATCH 0325/3805] fix(dom) getPanel: when no currentFile panel is undefined --- lib/client/dom.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 54dd583425..b011c8958e 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -1238,11 +1238,17 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * @param options = {active: true} */ this.getPanel = function(options) { - var dataName = 'js-', - current = this.getCurrentFile(), + var files, panel, isLeft, + dataName = 'js-', + current = this.getCurrentFile(); + + if (!current) { + panel = this.getByDataName('left'); + } else { files = current.parentElement, panel = files.parentElement, isLeft = panel.getAttribute('data-name') === 'js-left'; + } /* if {active : false} getting passive panel */ if (options && !options.active) { From e685b5739b1615b30e4bb385ca97460aea84c670 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 09:40:12 -0400 Subject: [PATCH 0326/3805] fix(cloudcmd) refresh: panel that would be refreshed depends on current file location --- lib/client.js | 10 +++++++--- lib/client/dom.js | 10 +++++----- lib/client/key.js | 1 - lib/client/listeners.js | 24 +++++++++++++++++++++--- lib/client/operation.js | 4 +++- 5 files changed, 36 insertions(+), 13 deletions(-) diff --git a/lib/client.js b/lib/client.js index 214ce4a620..4b46cfe9f9 100644 --- a/lib/client.js +++ b/lib/client.js @@ -74,7 +74,7 @@ var Util, DOM, CloudFunc, join; if (panelChanged || isRefresh || !history) imgPosition = 'top'; - Images.show.load(imgPosition); + Images.show.load(imgPosition, panel); /* загружаем содержимое каталога */ ajaxLoad(link, { @@ -328,11 +328,15 @@ var Util, DOM, CloudFunc, join; this.refresh = function(panelParam, options, callback) { var panel = panelParam || Info.panel, + noCurrent, NEEDREFRESH = true, path = DOM.getCurrentDirPath(panel), notSlashlLink = CloudFunc.rmLastSlash(path); - if (!callback) { + if (options) + noCurrent = options.noCurrent + + if (!callback && typeof options === 'function') { callback = options; options = {}; } @@ -342,7 +346,7 @@ var Util, DOM, CloudFunc, join; isRefresh : NEEDREFRESH, history : false, panel : panel, - noCurrent : options.noCurrent + noCurrent : noCurrent }, callback); }; diff --git a/lib/client/dom.js b/lib/client/dom.js index b011c8958e..33aac2cf48 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -87,13 +87,13 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * Function shows loading spinner * position = {top: true}; */ - function load(position) { + function load(position, panel) { var current, image = Images.loading(), parent = image.parentElement; if (position === 'top') { - current = DOM.getRefreshButton().parentElement; + current = DOM.getRefreshButton(panel).parentElement; } else { current = DOM.getCurrentFile(); current = DOM.getByDataName('js-name', current); @@ -782,9 +782,9 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; /** * unified way to get RefreshButton */ - this.getRefreshButton = function() { - var panel = this.getPanel(), - refresh = this.getByDataName('js-refresh', panel); + this.getRefreshButton = function(panel) { + var currentPanel = panel || this.getPanel(), + refresh = this.getByDataName('js-refresh', currentPanel); return refresh; }; diff --git a/lib/client/key.js b/lib/client/key.js index 0d20a7d1f3..922bf6f678 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -491,7 +491,6 @@ var CloudCmd, Util, DOM; case Key.R: if (ctrlMeta) { CloudCmd.log('reloading page...\n'); - CloudCmd.refresh(); event.preventDefault(); } diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 6413fab9c6..9868325e72 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -75,12 +75,21 @@ var Util, DOM, CloudFunc, CloudCmd; pathElement = DOM.getByDataName('js-path', panel); /* ставим загрузку гифа на клик*/ - Events.addClick(pathElement, onPathElementClick); + Events.addClick(pathElement, getPathListener(panel)); Events.add(filesElement, EventsFiles); }; - function onPathElementClick(event) { + function getPathListener(panel) { + var fn = onPathElementClick.bind(null, panel); + + return fn; + } + + function onPathElementClick(panel, event) { var link, href, url, + namePanel, + nameInfoPanel, + noCurrent = false, element = event.target, attr = element.getAttribute('data-name'); @@ -90,7 +99,16 @@ var Util, DOM, CloudFunc, CloudCmd; break; case 'js-refresh': - CloudCmd.refresh(); + namePanel = panel.getAttribute('data-name'); + nameInfoPanel = Info.panel.getAttribute('data-name'); + + if (namePanel !== nameInfoPanel) + noCurrent = true; + + CloudCmd.refresh(panel, { + noCurrent: noCurrent + }); + event.preventDefault(); break; diff --git a/lib/client/operation.js b/lib/client/operation.js index 05645c0ed5..d14c9109c8 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -321,7 +321,9 @@ }; if (!Info.isOnePanel) - CloudCmd.refresh(panelPassive, {noCurrent: true}, function() {}); + CloudCmd.refresh(panelPassive, { + noCurrent: true + }); CloudCmd.refresh(panel, setCurrent); }); From 05f25e994e264e68630bf1f47793aa384e3e564c Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 09:50:23 -0400 Subject: [PATCH 0327/3805] feature(menu) show upload in two kinds of menu --- HELP.md | 4 ++-- lib/client/menu.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/HELP.md b/HELP.md index b41402eb46..db238ec160 100644 --- a/HELP.md +++ b/HELP.md @@ -230,13 +230,13 @@ Right mouse click button shows context menu with items: - Delete - Pack - Unpack -- Upload - Upload to (Dropbox, Github, GDrive, FilePicker) - Download -- New (File, Directory, from FilePicker) - Cut - Copy - Paste +- New (File, Directory, from FilePicker) +- Upload - (Un)Select All - Log Out (available when the `authorization` is enabled) diff --git a/lib/client/menu.js b/lib/client/menu.js index 26c60bdc63..6d75d6756d 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -142,6 +142,9 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; 'Directory' : DOM.promptNewDir, 'From Cloud' : getFromPicker, }, + 'Upload' : function() { + CloudCmd.Upload.show(); + }, '(Un)Select All': DOM.toggleAllSelectedFiles }; @@ -170,9 +173,6 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; 'Delete' : Operation.show.bind(null, 'delete'), 'Pack' : getActiveFunc(DOM.pack), 'Unpack' : getActiveFunc(DOM.unpack), - 'Upload' : function() { - CloudCmd.Upload.show(); - }, 'Upload To' : {}, 'Download' : download, 'Cut' : Buffer.cut, From c39e343357a5bfbd02663f94bf8dc1839a0bc598 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 15:16:48 -0400 Subject: [PATCH 0328/3805] feature(files) add getTimeoutOnce --- lib/client/files.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/client/files.js b/lib/client/files.js index 484eac1910..b159c9c942 100644 --- a/lib/client/files.js +++ b/lib/client/files.js @@ -20,7 +20,8 @@ funcs = [], DIR_HTML = '/tmpl/', DIR_HTML_FS = DIR_HTML + 'fs/', - DIR_JSON = '/json/'; + DIR_JSON = '/json/', + timeout = getTimeoutOnce(2000); this.get = function(name, callback) { var type = Util.type(name); @@ -125,7 +126,27 @@ Storage.setAllowed(data.localStorage); callback(null, data); + + timeout(function() { + Promises.config = null; + }); }); } + + function getTimeoutOnce(time) { + var is, + fn = function(callback) { + if (!is) { + is = true; + + setTimeout(function() { + is = false; + callback(); + }, time); + } + }; + + return fn; + } } })(Util, DOM); From 993c59f3983a9d991e21425c9609342e5465a4e0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 15:21:33 -0400 Subject: [PATCH 0329/3805] feature(config) onKey: onChange on Enter --- lib/client/config.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/client/config.js b/lib/client/config.js index 7c8a9a9b7a..b73bf26414 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -141,9 +141,9 @@ var CloudCmd, Util, DOM, io; [].forEach.call(inputs, function(input) { Events.addKey(input, onKey) - .add('change', input, function(event) { - onChange(event.target); - }); + .add('change', input, function(event) { + onChange(event.target); + }); }); CloudCmd.View.show(Element, { @@ -253,11 +253,17 @@ var CloudCmd, Util, DOM, io; } function onKey(event) { - var keyCode = event.keyCode, - ESC = Key.ESC; + var keyCode = event.keyCode; - if (keyCode === ESC) + switch (keyCode) { + case Key.ESC: Config.hide(); + break; + + case Key.ENTER: + onChange(event.target); + break; + } } init(); From 6f7155e4d0b27f4c9c7a5ff14a727a8089a5fa41 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 30 Jun 2015 15:53:00 -0400 Subject: [PATCH 0330/3805] chore(files) rm " " --- lib/client/files.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/files.js b/lib/client/files.js index b159c9c942..1ae5f5d2c0 100644 --- a/lib/client/files.js +++ b/lib/client/files.js @@ -146,7 +146,7 @@ } }; - return fn; + return fn; } } })(Util, DOM); From cbcda32df261849d932db1e8ff9e0f2dfa72f4bb Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 1 Jul 2015 03:03:17 -0400 Subject: [PATCH 0331/3805] fix(client) when none files in the root, menu doesn't work --- lib/client.js | 27 ++++++++++++++------------- lib/client/dom.js | 20 ++++++++++++++------ lib/client/listeners.js | 16 ++++++++++++---- lib/client/menu.js | 6 +++++- 4 files changed, 45 insertions(+), 24 deletions(-) diff --git a/lib/client.js b/lib/client.js index 4b46cfe9f9..b9fd8e916a 100644 --- a/lib/client.js +++ b/lib/client.js @@ -419,16 +419,20 @@ var Util, DOM, CloudFunc, join; names = ['file', 'path', 'link', 'pathLink']; Files.get(names, function(error, templFile, templPath, templLink, templPathLink) { - var Dialog = DOM.Dialog, + var childNodes, i, + Dialog = DOM.Dialog, current, - panel = panelParam || Info.panel, - dir = Info.dir, - name = Info.name, - i = panel.childNodes.length; + panel = panelParam || DOM.getPanel(), + + dir = Info.dir, + name = Info.name; if (error) { Dialog.alert(error.responseText); } else { + childNodes = panel.childNodes; + i = childNodes.length; + while (i--) panel.removeChild(panel.lastChild); @@ -467,21 +471,18 @@ var Util, DOM, CloudFunc, join; * используеться при первом заходе в корень */ function getJSONfromFileTable() { - var current, name, size, owner, mode, ret, + var name, size, owner, mode, ret, path = DOM.getCurrentDirPath(), - infoFiles = Info.files, + infoFiles = Info.files || [], fileTable = { path : path, files : [] }, - files = fileTable.files, - - i, n = infoFiles.length; + files = fileTable.files; - for (i = 0; i < n; i++) { - current = infoFiles[i]; + [].forEach.call(infoFiles, function(current) { name = DOM.getCurrentName(current); size = DOM.getCurrentSize(current); owner = DOM.getCurrentOwner(current); @@ -494,7 +495,7 @@ var Util, DOM, CloudFunc, join; mode : mode, owner : owner }); - } + }); ret = Util.json.stringify(fileTable); diff --git a/lib/client/dom.js b/lib/client/dom.js index 33aac2cf48..327569ee36 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -90,13 +90,18 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; function load(position, panel) { var current, image = Images.loading(), - parent = image.parentElement; + parent = image.parentElement, + refreshButton = DOM.getRefreshButton(panel); if (position === 'top') { - current = DOM.getRefreshButton(panel).parentElement; + current = refreshButton.parentElement; } else { current = DOM.getCurrentFile(); - current = DOM.getByDataName('js-name', current); + + if (current) + current = DOM.getByDataName('js-name', current); + else + current = refreshButton.parentElement; } if (!parent || (parent && parent !== current)) @@ -1077,8 +1082,11 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * @param currentFile */ this.getCurrentName = function(currentFile) { - var name = '', - current = currentFile || this.getCurrentFile(), + var link, + name = '', + current = currentFile || this.getCurrentFile(); + + if (current) link = this.getCurrentLink(current); if (link) { @@ -1243,7 +1251,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; current = this.getCurrentFile(); if (!current) { - panel = this.getByDataName('left'); + panel = this.getByDataName('js-left'); } else { files = current.parentElement, panel = files.parentElement, diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 9868325e72..656a06d74e 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -89,6 +89,7 @@ var Util, DOM, CloudFunc, CloudCmd; var link, href, url, namePanel, nameInfoPanel, + infoPanel = Info.panel, noCurrent = false, element = event.target, attr = element.getAttribute('data-name'); @@ -99,8 +100,10 @@ var Util, DOM, CloudFunc, CloudCmd; break; case 'js-refresh': - namePanel = panel.getAttribute('data-name'); - nameInfoPanel = Info.panel.getAttribute('data-name'); + namePanel = panel.getAttribute('data-name'); + + if (infoPanel) + nameInfoPanel = infoPanel.getAttribute('data-name'); if (namePanel !== nameInfoPanel) noCurrent = true; @@ -322,9 +325,14 @@ var Util, DOM, CloudFunc, CloudCmd; function resize() { Events.add('resize', function() { - var is = window.innerWidth < CloudCmd.MIN_ONE_PANEL_WIDTH, - name = Info.panel.getAttribute('data-name'), + var name, isLeft, + is = window.innerWidth < CloudCmd.MIN_ONE_PANEL_WIDTH, + panel = Info.panel; + + if (panel) { + name = panel.getAttribute('data-name'), isLeft = name === 'js-left'; + } if (is && !isLeft) DOM.changePanel(); diff --git a/lib/client/menu.js b/lib/client/menu.js index 6d75d6756d..5e3adbe1c6 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -189,10 +189,14 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; } function isPath(x, y) { - var panel = Info.panel, + var el, elements, is, + panel = Info.panel; + + if (panel) { el = document.elementFromPoint(x, y), elements = panel.querySelectorAll('[data-name="js-path"] *'), is = ~[].indexOf.call(elements, el); + } return is; } From ab6c3543ddd163e698e3b839f4edb3ebc788d8b1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 1 Jul 2015 06:24:35 -0400 Subject: [PATCH 0332/3805] chore(menu) update img --- img/screen/menu.png | Bin 33371 -> 33243 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/screen/menu.png b/img/screen/menu.png index 02338afdb80bcfe24419ab144f16df5414e42639..1dffa654311f6f3d2b32fe31a0bb9a045b2bacc6 100644 GIT binary patch literal 33243 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 Vy!xoiGw3`;Puo!I4ICZze*l{^`P2Xa literal 33371 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Ù&yPAhnwlMZW55m}c+n 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 Date: Wed, 1 Jul 2015 06:25:32 -0400 Subject: [PATCH 0333/3805] chore(package) v3.6.0 --- ChangeLog | 17 +++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index ab27254b49..d5967d1d24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2015.07.01, v3.6.0 + +fix: +- (client) when none files in the root, menu doesn't work +- (cloudcmd) refresh: panel that would be refreshed depends on current file location +- (dom) getPanel: when no currentFile panel is undefined +- (cloudcmd) ignore commandl line options when --save flag set + +feature: +- (config) onKey: onChange on Enter +- (files) add getTimeoutOnce +- (menu) show upload in two kinds of menu +- (package) yaspeller v2.5.0 +- (package) markdown-it v4.3.0 +- (bower) promise-poyfill v2.1.0 + + 2015.06.27, v3.5.0 fix: diff --git a/HELP.md b/HELP.md index db238ec160..c0a61875a0 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.5.0 +Cloud Commander v3.6.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.01*, **[v3.6.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.6.0.tar.gz)** - *2015.06.27*, **[v3.5.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.5.0.tar.gz)** - *2015.06.22*, **[v3.4.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.4.0.tar.gz)** - *2015.06.20*, **[v3.3.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.3.0.tar.gz)** diff --git a/README.md b/README.md index c1603c43f7..2e1e52a41c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.5.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.6.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 0954f90f22..c10b793e7d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.5.0", + "version": "3.6.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 5f7212a606..55e29003e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.5.0", + "version": "3.6.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 73dbba8f1737a752b841291490f2b4ca8c4748a3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 2 Jul 2015 03:03:14 -0400 Subject: [PATCH 0334/3805] feature(dom) Images: add chaining --- lib/client/dom.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/client/dom.js b/lib/client/dom.js index 327569ee36..3d5e46387d 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -129,6 +129,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; this.hide = function() { var element = Images.get(); DOM.hide(element); + + return this; }; this.setProgress = function(value, title) { @@ -141,6 +143,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; if (title) element.title = title; } + + return this; }; this.clearProgress = function() { @@ -151,6 +155,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; element.setAttribute(DATA, ''); element.title = ''; } + + return this; }; }, From 54bf7052403c66d00f51750910ae3aae06af4dc7 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 2 Jul 2015 03:03:32 -0400 Subject: [PATCH 0335/3805] fix(operation) loading image --- lib/client/operation.js | 57 ++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/lib/client/operation.js b/lib/client/operation.js index d14c9109c8..1503a00329 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -22,6 +22,8 @@ Images = DOM.Images, Dialog = DOM.Dialog, + showLoad = Images.show.load.bind(null, 'top'), + Operation = this; function rmLastSlash(str) { @@ -29,7 +31,7 @@ } function init() { - Images.show.load(); + showLoad(); Util.exec.series([ DOM.loadSocket, @@ -88,27 +90,36 @@ } function setListeners(emitter, callback) { - var listeners = { - progress: function(value) { - Images.setProgress(value); - }, - - end: function() { - callback(); - events.forEach(function(name) { - emitter.removeListener(name, listeners[name]); - }); - }, - - error: function(data) { - var msg = data + '\n Continue?', - is = confirm(msg); + var wasError, + listeners = { + progress: function(value) { + Images.setProgress(value); + }, - if (is) - spero.continue(); - else - spero.abort(); - } + end: function() { + if (!wasError) + callback(); + + Images + .hide() + .clearProgress(); + + events.forEach(function(name) { + emitter.removeListener(name, listeners[name]); + }); + }, + + error: function(error) { + var msg = error + '\n Continue?', + is = confirm(msg); + + if (is) { + emitter.continue(); + } else { + wasError = true; + emitter.abort(); + } + } }, events = Object.keys(listeners); @@ -217,7 +228,7 @@ path = Info.dirPath, current = Info.element; - Images.show(); + showLoad(); if (!files) files = DOM.getSelectedFiles(); @@ -296,7 +307,7 @@ })); if (ok) { - Images.show.load('top'); + showLoad(); files = { from : from, From cc8693be60a9b5790a42b9014ea9a186d927fab0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 2 Jul 2015 10:58:28 -0400 Subject: [PATCH 0336/3805] feature(cloudcmd) jag -> jaguar: add ability to pack couple files in one directory --- lib/client/dom.js | 82 ++++++++++++++++------------- lib/client/menu.js | 10 +--- lib/server/rest.js | 126 +++++++++++++++++++++++++++++++++------------ package.json | 2 +- 4 files changed, 140 insertions(+), 80 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 3d5e46387d..44280ff926 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -460,46 +460,57 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; }); } - function twopack(current, operation) { + function twopack(operation) { var op, - nameDir = '', - nameFile = '', RESTful = DOM.RESTful, Images = DOM.Images, - name = Cmd.getCurrentName(current), - dir = Cmd.getCurrentDirPath(), - path = dir + name, - fileFrom = { - from : path - }; + Info = DOM.CurrentInfo, + name = Info.name, + path = Info.path, + dirPath = Info.dirPath, + activeFiles = DOM.getActiveFiles(), + names = DOM.getSelectedNames(activeFiles), + fileFrom; Util.check(arguments, ['operation']); - if (name === '..') { + if (!names.length) { Dialog.alert('No files selected!'); } else { - if (operation.pack) { - op = RESTful.pack; - nameDir = name + '.tar.gz'; - nameFile = name + '.gz'; - } else if (operation.unpack) { + switch(operation) { + case 'unpack': op = RESTful.unpack; - nameDir = name.replace('.tar.gz', ''); - nameFile = name.replace('.gz', ''); + + fileFrom = { + from : path, + to : dirPath + }; + + name = name.replace(/\.tar\.gz$/, ''); + + break; + + case 'pack': + op = RESTful.pack; + name += '.tar.gz'; + + fileFrom = { + from : dirPath, + to : dirPath, + names : names + }; + break; } - Images.show.load(); + Images.show.load('top'); - if (name && name !== '..') - op(fileFrom, function() { - CloudCmd.refresh(null, function() { - var byName = DOM.getCurrentByName, - dir = byName(nameDir), - file = byName(nameFile); - - DOM.setCurrentFile(dir || file); - }); + op(fileFrom, function() { + CloudCmd.refresh(null, function() { + var file = DOM.getCurrentByName(name); + + DOM.setCurrentFile(file); }); + }); } } @@ -507,20 +518,16 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * zip file * */ - this.pack = function(current) { - twopack(current, { - pack: true - }); + this.pack = function() { + twopack('pack'); }; /** * unzip file * */ - this.unpack = function(current) { - twopack(current, { - unpack: true - }); + this.unpack = function() { + twopack('unpack'); }; /** @@ -622,9 +629,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; this.getActiveFiles = function() { var current = DOM.getCurrentFile(), files = DOM.getSelectedFiles(), - selected = ~files.indexOf(current); + selected = ~files.indexOf(current), + name = DOM.getCurrentName(current); - if (!selected) + if (!selected && name !== '..') files.push(current); return files; diff --git a/lib/client/menu.js b/lib/client/menu.js index 5e3adbe1c6..67ad49682d 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -171,8 +171,8 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; setTimeout(DOM.renameCurrent, 100); }, 'Delete' : Operation.show.bind(null, 'delete'), - 'Pack' : getActiveFunc(DOM.pack), - 'Unpack' : getActiveFunc(DOM.unpack), + 'Pack' : DOM.pack, + 'Unpack' : DOM.unpack, 'Upload To' : {}, 'Download' : download, 'Cut' : Buffer.cut, @@ -305,12 +305,6 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; }); } - function getActiveFunc(callback) { - return function() { - DOM.getActiveFiles().forEach(callback); - }; - } - function getCurrentPosition() { var current = Info.element, rect = current.getBoundingClientRect(); diff --git a/lib/server/rest.js b/lib/server/rest.js index 19884c41af..5e412ae4f9 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -23,7 +23,7 @@ markdown = require(DIR + 'rest/markdown'), github = require('faust'), - packer = require('jag'), + jaguar = require('jaguar'), flop = require('flop'), pipe = require('pipe-io'), @@ -173,7 +173,7 @@ * @param pParams {command, method, body, requrest, response} */ function onPUT(name, body, callback) { - var cmd, files, data, from, to, msg; + var cmd, files, data, msg; check .type('callback', callback, 'function') @@ -237,43 +237,17 @@ break; case 'pack': - if (!files.from) { + if (!files.from) callback(body); - } else { - from = root(files.from); - - if (files.to) - to = root(files.to); - else - to = from + '.gz'; - - packer.pack(from, to, function(error) { - var name = path.basename(files.from), - msg = formatMsg('pack', name); - - callback(error, msg); - }); - } + else + pack(files.from, files.to, files.names, callback); break; case 'unpack': - if (!files.from) { + if (!files.from) callback(body); - } else { - from = root(files.from); - - if (files.to) - to = root(files.to); - else - to = files.from.replace(/(\.gz|\.tar\.gz)$/, ''); - - packer.unpack(from, to, function(error) { - var name = path.basename(files.from), - data = formatMsg('unpack', name); - - callback(error, data); - }); - } + else + unpack(files.from, files.to, callback); break; @@ -283,6 +257,90 @@ } } + function pack(from, to, names, fn) { + var name; + + from = root(from); + + if (to) + to = root(to); + else + to = from; + + if (names.length > 1) { + name = path.basename(to); + } else { + name = names[0]; + } + + to = path.join(to, name); + + if (!/\.tar\.gz$/.test(to)) { + to += '.tar.gz'; + } + + if (!names) { + names = [ + path.basename(from) + ]; + + from = path.dirname(from); + } + + operation('pack', from, to, names, fn); + } + + function unpack(from, to, fn) { + from = root(from); + + if (to) + to = root(to); + else + to = from.replace(/\.tar\.gz$/, ''); + + operation('extract', from, to, fn); + } + + function operation(op, from, to, names, fn) { + var packer, wasError; + + if (!fn) { + fn = names; + names = [ + path.basename(from) + ]; + } + + console.log(from, to, names); + + packer = jaguar[op](from, to, names); + + packer.on('error', function(error) { + wasError = true; + fn(error); + }); + + packer.on('progress', function(count) { + process.stdout.write(rendy('\r{{ operation }} "{{ name }}": {{ count }}%', { + operation : op, + name : names[0], + count : count + })); + }); + + packer.on('end', function() { + var name, msg; + + process.stdout.write('\n'); + + if (!wasError) { + name = path.basename(from), + msg = formatMsg(op, name); + fn(null, msg); + } + }); + } + function copy(from, to, names, fn) { var error, tmpl = '\r copy {{ from }} {{ to }} {{ count }}%', diff --git a/package.json b/package.json index 55e29003e7..8b85b03927 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "flop": "~1.3.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", - "jag": "~1.0.0", + "jaguar": "~1.0.2", "join-io": "~1.4.0", "jonny": "~1.0.0", "markdown-it": "~4.3.0", From 4365d704110fa549276d9e94d0c093ad88b0b620 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 3 Jul 2015 09:11:30 -0400 Subject: [PATCH 0337/3805] feature(cloudcmd) pack -> extract --- HELP.md | 2 +- css/icons.css | 2 +- img/screen/menu.png | Bin 33243 -> 33082 bytes lib/client/dom.js | 16 ++++++++++------ lib/client/menu.js | 2 +- lib/client/rest.js | 4 ++-- lib/server/rest.js | 6 +++--- 7 files changed, 18 insertions(+), 14 deletions(-) diff --git a/HELP.md b/HELP.md index c0a61875a0..390a862483 100644 --- a/HELP.md +++ b/HELP.md @@ -229,7 +229,7 @@ Right mouse click button shows context menu with items: - Rename - Delete - Pack -- Unpack +- Extract - Upload to (Dropbox, Github, GDrive, FilePicker) - Download - Cut diff --git a/css/icons.css b/css/icons.css index 953ca20ae8..2e82062c03 100644 --- a/css/icons.css +++ b/css/icons.css @@ -93,7 +93,7 @@ content : '\e813 '; } -.icon-unpack::before { +.icon-extract::before { font-family : 'Fontello'; content : '\e814 '; } diff --git a/img/screen/menu.png b/img/screen/menu.png index 1dffa654311f6f3d2b32fe31a0bb9a045b2bacc6..ce6e7fb17c47a2882581382c92ed7e072fe5f7fd 100644 GIT binary patch literal 33082 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 literal 33243 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 Vy!xoiGw3`;Puo!I4ICZze*l{^`P2Xa diff --git a/lib/client/dom.js b/lib/client/dom.js index 44280ff926..bac549b415 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -478,8 +478,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; Dialog.alert('No files selected!'); } else { switch(operation) { - case 'unpack': - op = RESTful.unpack; + case 'extract': + op = RESTful.extract; fileFrom = { from : path, @@ -492,7 +492,11 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; case 'pack': op = RESTful.pack; - name += '.tar.gz'; + + if (names.lengh > 1) + name = Info.dir; + else + name += '.tar.gz'; fileFrom = { from : dirPath, @@ -518,7 +522,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * zip file * */ - this.pack = function() { + this.pack = function() { twopack('pack'); }; @@ -526,8 +530,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * unzip file * */ - this.unpack = function() { - twopack('unpack'); + this.unpack = function() { + twopack('extract'); }; /** diff --git a/lib/client/menu.js b/lib/client/menu.js index 67ad49682d..b0d6f94ae0 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -172,7 +172,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; }, 'Delete' : Operation.show.bind(null, 'delete'), 'Pack' : DOM.pack, - 'Unpack' : DOM.unpack, + 'Extract' : DOM.extract, 'Upload To' : {}, 'Download' : download, 'Cut' : Buffer.cut, diff --git a/lib/client/rest.js b/lib/client/rest.js index f8920ab13e..b31ce78479 100644 --- a/lib/client/rest.js +++ b/lib/client/rest.js @@ -104,10 +104,10 @@ var Util, DOM, CloudFunc, CloudCmd; }); }; - this.unpack = function(data, callback) { + this.extract = function(data, callback) { sendRequest({ method : 'PUT', - url : '/unpack', + url : '/extract', data : data, callback : callback }); diff --git a/lib/server/rest.js b/lib/server/rest.js index 5e412ae4f9..1a2f8191cf 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -243,11 +243,11 @@ pack(files.from, files.to, files.names, callback); break; - case 'unpack': + case 'extract': if (!files.from) callback(body); else - unpack(files.from, files.to, callback); + extract(files.from, files.to, callback); break; @@ -290,7 +290,7 @@ operation('pack', from, to, names, fn); } - function unpack(from, to, fn) { + function extract(from, to, fn) { from = root(from); if (to) From ec8eeff46263ada74b7dd19c6a4c8048728d25c2 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 3 Jul 2015 09:14:59 -0400 Subject: [PATCH 0338/3805] chore(package) v3.7.0 --- ChangeLog | 11 +++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5967d1d24..3017fa9576 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2015.07.03, v3.7.0 + +fix: +- (operation) loading image + +feature: +- (cloudcmd) pack -> extract +- (cloudcmd) jag -> jaguar: add ability to pack couple files in one directory +- (dom) Images: add chaining + + 2015.07.01, v3.6.0 fix: diff --git a/HELP.md b/HELP.md index 390a862483..9a5bb3b68b 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.6.0 +Cloud Commander v3.7.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.03*, **[v3.7.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.0.tar.gz)** - *2015.07.01*, **[v3.6.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.6.0.tar.gz)** - *2015.06.27*, **[v3.5.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.5.0.tar.gz)** - *2015.06.22*, **[v3.4.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.4.0.tar.gz)** diff --git a/README.md b/README.md index 2e1e52a41c..16ed49c92b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.6.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.7.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index c10b793e7d..f3a9267eea 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.6.0", + "version": "3.7.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 8b85b03927..35aeda617a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.6.0", + "version": "3.7.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 48993d235bef5c40f63c5f8626faad298786de84 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 3 Jul 2015 16:20:04 +0300 Subject: [PATCH 0339/3805] docs(changelog) pack -> unpack --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3017fa9576..e36feeec53 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,7 @@ fix: - (operation) loading image feature: -- (cloudcmd) pack -> extract +- (cloudcmd) unpack -> extract - (cloudcmd) jag -> jaguar: add ability to pack couple files in one directory - (dom) Images: add chaining From 12b2c40817d73303ec8e8bb7301ffc07f77322f0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 3 Jul 2015 09:43:56 -0400 Subject: [PATCH 0340/3805] feature(package) chalk v1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 35aeda617a..5fd59d675a 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "subdomain": "cloudcmd", "dependencies": { - "chalk": "~1.0.0", + "chalk": "~1.1.0", "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", From 0f4244756e8f902f53acf8503651f2171c55d837 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 4 Jul 2015 04:00:27 -0400 Subject: [PATCH 0341/3805] feature(config) homedir -> os-homedir --- lib/server/config.js | 19 ++++--------------- package.json | 1 + 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index f4914ba950..b52ed6b51d 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -6,7 +6,7 @@ DIR = DIR_SERVER + '../../', fs = require('fs'), - os = require('os'), + path = require('path'), password = require(DIR_SERVER + 'password'), Util = require(DIR_LIB + 'util'), @@ -17,11 +17,12 @@ ponse = require('ponse'), jonny = require('jonny'), readjson = require('readjson'), + homedir = require('os-homedir'), apiURL = CloudFunc.apiURL, - ConfigPath = DIR + 'json/config.json', - ConfigHome = homedir() + '.cloudcmd.json', + ConfigPath = path.join(DIR, 'json/config.json'), + ConfigHome = path.join(homedir(), '.cloudcmd.json'), config = readjson.sync.try(ConfigHome) || @@ -38,18 +39,6 @@ return middle; }; - function homedir() { - var fn = os.homedir || function() { - var HOME_WIN = process.env.HOMEPATH, - HOME_UNIX = process.env.HOME, - HOME = (HOME_UNIX || HOME_WIN); - - return HOME; - }; - - return fn() + '/'; - } - function manage(key, value) { var result; diff --git a/package.json b/package.json index 5fd59d675a..79901c6c4e 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "minify": "~1.4.0", "minimist": "~1.1.0", "mollify": "~1.0.0", + "os-homedir": "~1.0.0", "package-json": "~1.2.0", "pipe-io": "~1.1.1", "ponse": "~1.4.0", From 327fa421a0f6f02852066cf9fbcbd99a0e543edf Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 4 Jul 2015 04:32:46 -0400 Subject: [PATCH 0342/3805] refactor(config) homedir -> HOME --- lib/server/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index b52ed6b51d..63b271a241 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -17,12 +17,12 @@ ponse = require('ponse'), jonny = require('jonny'), readjson = require('readjson'), - homedir = require('os-homedir'), + HOME = require('os-homedir')(), apiURL = CloudFunc.apiURL, ConfigPath = path.join(DIR, 'json/config.json'), - ConfigHome = path.join(homedir(), '.cloudcmd.json'), + ConfigHome = path.join(HOME, '.cloudcmd.json'), config = readjson.sync.try(ConfigHome) || From a4d292a9882bc481c31e019a1da28b102914e9ae Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 4 Jul 2015 07:16:25 -0400 Subject: [PATCH 0343/3805] chore(package) v3.7.1 --- ChangeLog | 7 +++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e36feeec53..33458b128d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2015.07.04, v3.7.1 + +feature: +- (config) homedir -> os-homedir +- (package) chalk v1.1.0 + + 2015.07.03, v3.7.0 fix: diff --git a/HELP.md b/HELP.md index 9a5bb3b68b..0c882a0aa8 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.7.0 +Cloud Commander v3.7.1 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.04*, **[v3.7.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.1.tar.gz)** - *2015.07.03*, **[v3.7.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.0.tar.gz)** - *2015.07.01*, **[v3.6.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.6.0.tar.gz)** - *2015.06.27*, **[v3.5.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.5.0.tar.gz)** diff --git a/README.md b/README.md index 16ed49c92b..3d90a83c14 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.7.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.7.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index f3a9267eea..92963c8a82 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.7.0", + "version": "3.7.1", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 79901c6c4e..de17f968a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.7.0", + "version": "3.7.1", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 91b73dafce6bf3aa92b18c36f6bb792112790296 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 4 Jul 2015 10:38:14 -0400 Subject: [PATCH 0344/3805] fix(files) getConfig: remove Promise before resolve --- lib/client/files.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/client/files.js b/lib/client/files.js index 1ae5f5d2c0..ff18d8c56f 100644 --- a/lib/client/files.js +++ b/lib/client/files.js @@ -115,20 +115,24 @@ } function getConfig(callback) { - var RESTful = DOM.RESTful; + var is, + RESTful = DOM.RESTful; if (!Promises.config) Promises.config = new Promise(function(resolve) { + is = true; RESTful.Config.read(resolve); }); Promises.config.then(function(data) { + is = false; Storage.setAllowed(data.localStorage); callback(null, data); timeout(function() { - Promises.config = null; + if (!is) + Promises.config = null; }); }); } From d05dc44197540395361ec7b14d76c11727c39e38 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 4 Jul 2015 10:40:12 -0400 Subject: [PATCH 0345/3805] chore(package) v3.7.2 --- ChangeLog | 6 ++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 33458b128d..13783c9fe5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015.07.04, v3.7.2 + +fix: +- (files) getConfig: remove Promise before resolve + + 2015.07.04, v3.7.1 feature: diff --git a/HELP.md b/HELP.md index 0c882a0aa8..f48a4a3ebe 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.7.1 +Cloud Commander v3.7.2 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.04*, **[v3.7.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.2.tar.gz)** - *2015.07.04*, **[v3.7.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.1.tar.gz)** - *2015.07.03*, **[v3.7.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.0.tar.gz)** - *2015.07.01*, **[v3.6.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.6.0.tar.gz)** diff --git a/README.md b/README.md index 3d90a83c14..88ee3b7ccc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.7.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.7.2 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 92963c8a82..1565d437a7 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.7.1", + "version": "3.7.2", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index de17f968a5..224490c1cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.7.1", + "version": "3.7.2", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 68c663b3b24a0a50618162717a50deaa9ab80af9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 5 Jul 2015 09:33:45 -0400 Subject: [PATCH 0346/3805] feature(rest) rm console.log --- lib/server/rest.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 1a2f8191cf..049cf0f1e2 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -311,8 +311,6 @@ ]; } - console.log(from, to, names); - packer = jaguar[op](from, to, names); packer.on('error', function(error) { From f19c28f69e4bd5a1f3b602c88fb532e4c36f9af5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 06:36:31 -0400 Subject: [PATCH 0347/3805] feature(cloudcmd) disallow to view and edit ".." directory --- lib/client/buffer.js | 15 +++++++-------- lib/client/dom.js | 21 +++++++++++++++------ lib/client/edit.js | 9 +++++---- lib/client/operation.js | 4 ++-- lib/client/view.js | 11 +++++++++-- 5 files changed, 38 insertions(+), 22 deletions(-) diff --git a/lib/client/buffer.js b/lib/client/buffer.js index 3a830755f9..bb83005610 100644 --- a/lib/client/buffer.js +++ b/lib/client/buffer.js @@ -29,11 +29,10 @@ }; function getNames() { - var name = Info.name, - names = DOM.getSelectedNames(), - n = names.length; + var files = DOM.getActiveFiles(), + names = DOM.getSelectedNames(files); - return n ? names : [name]; + return names; } function addCutClass() { @@ -130,13 +129,13 @@ data = json.parse(opData); data.to = path; - if (data.from === path) + if (data.from === path) { Dialog.alert(msg); - else + } else { Operation.show(opStr, data); + clear(); + } } - - clear(); }); } diff --git a/lib/client/dom.js b/lib/client/dom.js index bac549b415..c95efa5591 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -9,9 +9,15 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; DOMProto, DialogProto = function() { - this.alert = alert.bind(window); - this.prompt = prompt.bind(window); - this.confirm = confirm.bind(window); + var self = this; + + this.alert = alert.bind(window); + this.prompt = prompt.bind(window); + this.confirm = confirm.bind(window); + + this.alert.noFiles = function() { + self.alert('No files selected!'); + }; }, ImagesProto = function() { @@ -475,7 +481,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; Util.check(arguments, ['operation']); if (!names.length) { - Dialog.alert('No files selected!'); + Dialog.alert.noFiles(); } else { switch(operation) { case 'extract': @@ -755,6 +761,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; this.getCurrentData = function(callback, currentFile) { var hash, RESTful = DOM.RESTful, + Info = DOM.CurrentInfo, current = currentFile || DOM.getCurrentFile(), path = DOM.getCurrentPath(current), isDir = DOM.isCurrentIsDir(current), @@ -773,7 +780,9 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; Util.exec(callback, null, data); }; - if (isDir) + if (Info.name === '..') + callback('No files selected!'); + else if (isDir) RESTful.read(path, func); else DOM.checkStorageHash(path, function(error, equal, hashNew) { @@ -1437,7 +1446,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; from = Cmd.getCurrentName(current); if (from === '..') { - Dialog.alert('No files selected!'); + Dialog.alert.noFiles(); } else { to = Dialog.prompt('Rename', from) || from; isExist = !!DOM.getCurrentByName(to); diff --git a/lib/client/edit.js b/lib/client/edit.js index 486b628dee..772e914031 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -14,7 +14,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO, Format, edward; Edit = this, Menu, - + Dialog = DOM.Dialog, Editor = 'edward', Images = DOM.Images, @@ -82,7 +82,8 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO, Format, edward; name += '.json'; if (error) { - alert(error); + Images.hide(); + Dialog.alert(error); } else { edward.setValueFirst(path, data); @@ -126,7 +127,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO, Format, edward; function getConfig(callback) { DOM.Files.get('config', function(error, config) { if (error) - alert(error); + Dialog.alert(error); else if (config.editor) Editor = config.editor; @@ -196,7 +197,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO, Format, edward; }; if (error) { - alert(error); + Dialog.alert(error); } else if (!Menu && MenuIO) { Menu = new MenuIO(Element, options, menuData); Menu.show(position.x, position.y); diff --git a/lib/client/operation.js b/lib/client/operation.js index 1503a00329..e29e7b23a8 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -208,7 +208,7 @@ if (name !== '..') ret = Dialog.confirm(msg); else - Dialog.alert('No files selected!'); + Dialog.alert.noFiles(); if (ret) deleteSilent(files); @@ -294,7 +294,7 @@ sameName = !!DOM.getCurrentByName(name, panel); if (name === '..') { - Dialog.alert('No files selected!'); + Dialog.alert.noFiles(); } else { if (shouldAsk) to = message(to, names); diff --git a/lib/client/view.js b/lib/client/view.js index 07dd0550f0..10ed736a49 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -11,6 +11,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; var Name = 'View', Loading = false, Events = DOM.Events, + Dialog = DOM.Dialog, Info = DOM.CurrentInfo, Key = CloudCmd.Key, Images = DOM.Images, @@ -129,12 +130,18 @@ var CloudCmd, Util, DOM, CloudFunc, $; switch(type) { default: Info.getData(function(error, data) { - var element = document.createTextNode(data); + var element; + if (error) { + Images.hide(); + Dialog.alert(error); + } else { + element = document.createTextNode(data); /* add margin only for view text documents */ Element.css('margin', '2%'); $.fancybox(Element.append(element), Config); - }); + } + }); break; case 'image': From 6c8c128b388cea8551807ced8f428df3019ece95 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 06:39:06 -0400 Subject: [PATCH 0348/3805] fix(buffer) rmCutClass: forEach -> slice, forEach --- lib/client/buffer.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/client/buffer.js b/lib/client/buffer.js index bb83005610..e8ad1f322c 100644 --- a/lib/client/buffer.js +++ b/lib/client/buffer.js @@ -46,9 +46,11 @@ function rmCutClass() { var files = DOM.getByClassAll(CLASS); - [].forEach.call(files, function(element) { - element.classList.remove(CLASS); - }); + [] + .slice.call(files) + .forEach(function(element) { + element.classList.remove(CLASS); + }); } function isEnabled(callback) { From 11d9e1fef2cfcc83b7e7becb80b1b7c6b3ef02fc Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 07:50:54 -0400 Subject: [PATCH 0349/3805] feature(rest) streamPack: add one-click folder download --- lib/client/menu.js | 10 ++++++---- lib/server/rest.js | 45 ++++++++++++++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/lib/client/menu.js b/lib/client/menu.js index b0d6f94ae0..f2181bbd97 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -270,7 +270,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; } function download() { - var TIME = 1000, + var TIME = 30 * 1000, apiURL = CloudFunc.apiURL, FS = CloudFunc.FS, date = Date.now(), @@ -281,12 +281,14 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; selected = DOM.isSelected(file), path = DOM.getCurrentPath(file), id = DOM.load.getIdBySrc(path), - isDir = DOM.isCurrentIsDir(file), - dir = isDir ? '&&json' : ''; + isDir = DOM.isCurrentIsDir(file); CloudCmd.log('downloading file ' + path + '...'); - path = apiURL + FS + path + '?download' + dir; + if (isDir) + path = apiURL + '/pack' + path + '.tar.gz'; + else + path = apiURL + FS + path + '?download'; element = DOM.load({ id : id + '-' + date, diff --git a/lib/server/rest.js b/lib/server/rest.js index 049cf0f1e2..dd646306a3 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -135,25 +135,40 @@ if (p.name[0] === '/') cmd = p.name.replace('/', ''); - switch(cmd) { - case '': - p.data = json.stringify({ - info: 'Cloud Commander API v1' - }); - - callback(null, {name: 'api.json'}, p.data); - break; - - default: - json = { - message: 'Error: command not found!' - }; + if (/^pack/.test(cmd)) { + cmd = cmd.replace(/^pack/, ''); + streamPack(cmd, p.response, callback); + } else { + switch(cmd) { + case '': + p.data = json.stringify({ + info: 'Cloud Commander API v1' + }); + + callback(null, {name: 'api.json'}, p.data); + break; - callback(json); - break; + default: + json = { + message: 'Error: command not found!' + }; + + callback(json); + break; + } } } + function streamPack(cmd, response, fn) { + var filename = cmd.replace(/\.tar\.gz$/, ''), + dir = path.dirname(filename), + names = [ + path.basename(filename) + ]; + + operation('pack', dir, response, names, fn); + } + function auth(code, callback) { var storage = binom('storage', Modules), gh = binom('GitHub', storage), From 70c6d2b970296c1d8c43164534dd7e4407527007 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 08:13:54 -0400 Subject: [PATCH 0350/3805] refactor(view) add showImage --- lib/client/view.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/client/view.js b/lib/client/view.js index 10ed736a49..8778f0fe7b 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -145,12 +145,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; break; case 'image': - config = Util.copyObj({ - autoSize : true, - type : 'image' - }, Config); - - $.fancybox.open(path, config); + showImage(path); break; case 'media': @@ -189,6 +184,20 @@ var CloudCmd, Util, DOM, CloudFunc, $; $.fancybox.close(); } + function showImage(path) { + var config; + + config = Util.copyObj({ + }, Config); + + config = Util.copyObj(config, { + autoSize : true, + type : 'image' + }); + + $.fancybox.open(path, config); + } + function isImage(name) { var isMatch; From 043bf9c874c0395df986a9a240affced2e5f8f59 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 08:53:33 -0400 Subject: [PATCH 0351/3805] feature(view) add ability to view next/previous image --- lib/client/view.js | 47 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/lib/client/view.js b/lib/client/view.js index 8778f0fe7b..4594052fa3 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -184,18 +184,43 @@ var CloudCmd, Util, DOM, CloudFunc, $; $.fancybox.close(); } - function showImage(path) { - var config; + function showImage() { + var config, + current = Info.name, + files = [].slice.call(Info.files), + names = DOM.getSelectedNames(files) + .filter(isImage) + .filter(function(name) { + return name !== current; + }).map(function(name) { + return { + href: name, + title: name + }; + }); + + names.unshift({ + href: current, + title: current + }); config = Util.copyObj({ }, Config); config = Util.copyObj(config, { autoSize : true, - type : 'image' + type : 'image', + prevEffect : 'none', + nextEffect : 'none', + arrows : true, + keys : true, + helpers : { + overlay : null, + title : {} + } }); - $.fancybox.open(path, config); + $.fancybox.open(names, config); } function isImage(name) { @@ -296,11 +321,15 @@ var CloudCmd, Util, DOM, CloudFunc, $; DOM.load.css(prefix + '/css/view.css', callback); DOM.load.style({ - id : 'view-css', - inner : '#fancybox-loading {' + - 'display: none' + - '}' - }); + id : 'view-inlince-css', + inner : [ + '.fancybox-title-float-wrap .child {', + '-webkit-border-radius: 0;', + '-moz-border-radius: 0;', + 'border-radius: 0;', + '}' + ].join('') + }); }); } From 3da31a2a531b814c35a6cc75276cbe7c354c41ea Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 10:19:11 -0400 Subject: [PATCH 0352/3805] chore(package) v3.8.0 --- ChangeLog | 12 ++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 13783c9fe5..3f27676a7f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2015.07.06, v3.8.0 + +fix: +- (buffer) rmCutClass: forEach -> slice, forEach + +feature: +- (view) add ability to view next/previous image +- (rest) streamPack: add one-click folder download +- (cloudcmd) disallow to view and edit ".." directory +- (rest) rm console.log + + 2015.07.04, v3.7.2 fix: diff --git a/HELP.md b/HELP.md index f48a4a3ebe..c94048ad85 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.7.2 +Cloud Commander v3.8.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.06*, **[v3.8.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.8.0.tar.gz)** - *2015.07.04*, **[v3.7.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.2.tar.gz)** - *2015.07.04*, **[v3.7.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.1.tar.gz)** - *2015.07.03*, **[v3.7.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.0.tar.gz)** diff --git a/README.md b/README.md index 88ee3b7ccc..e963134873 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.7.2 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.8.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 1565d437a7..758d2b03f6 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.7.2", + "version": "3.8.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 224490c1cf..6110646949 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.7.2", + "version": "3.8.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 2c9b092191b9bc1bb4d867fabae60074f63f60c5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 6 Jul 2015 10:51:26 -0400 Subject: [PATCH 0353/3805] feature(package) jaguar v1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6110646949..614c781764 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "flop": "~1.3.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", - "jaguar": "~1.0.2", + "jaguar": "~1.1.0", "join-io": "~1.4.0", "jonny": "~1.0.0", "markdown-it": "~4.3.0", From 7e9ed37b182da737fea5b28c1d85606561f069cb Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 7 Jul 2015 11:08:27 -0400 Subject: [PATCH 0354/3805] feature(listeners) onDragStart: add ability to download directories via drag n drop --- lib/client/listeners.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 656a06d74e..2bfff24fce 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -201,16 +201,19 @@ var Util, DOM, CloudFunc, CloudCmd; * in Chrome (HTML5) */ function onDragStart(event) { - var element = getLIElement(event.target), - EXT = 'json', + var apiURL = CloudFunc.apiURL, + element = getLIElement(event.target), + EXT = '.tar.gz', isDir = Info.isDir, link = DOM.getCurrentLink(element), name = DOM.getCurrentName(element); /* if it's directory - adding json extension */ if (isDir) { - name += '.' + EXT; - link += '?' + EXT; + name += EXT; + link = document.createElement('a'); + link.textContent = name; + link.href = apiURL + '/pack' + Info.path + EXT; } event.dataTransfer.setData('DownloadURL', From b91aea942bef5977f000b4e8b46d80ed0fa50baf Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 8 Jul 2015 04:59:42 -0400 Subject: [PATCH 0355/3805] fix(style) file names that conatains Chinese characters breaks the line --- css/style.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/css/style.css b/css/style.css index be8517aeb0..16452d1d00 100644 --- a/css/style.css +++ b/css/style.css @@ -221,6 +221,10 @@ body, pre, code { list-style-type: none; } +.files li { + overflow: hidden; +} + a { text-decoration:none; } From 2b307fe6dd334cb4c4d3877939e46c89e47b71ae Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 8 Jul 2015 05:26:31 -0400 Subject: [PATCH 0356/3805] feature(rest) callback called on success only -> callback called always --- lib/client.js | 2 +- lib/client/config.js | 5 ++-- lib/client/dom.js | 61 ++++++++++++++++++++++------------------- lib/client/markdown.js | 2 +- lib/client/menu.js | 4 ++- lib/client/operation.js | 20 ++++++++------ lib/client/rest.js | 4 ++- lib/client/upload.js | 4 ++- 8 files changed, 58 insertions(+), 44 deletions(-) diff --git a/lib/client.js b/lib/client.js index b9fd8e916a..7864047905 100644 --- a/lib/client.js +++ b/lib/client.js @@ -371,7 +371,7 @@ var Util, DOM, CloudFunc, join; if (!isRefresh && json) createFileTable(obj, panel, options, callback); else - RESTful.read(path, 'json', function(obj) { + RESTful.read(path, 'json', function(error, obj) { createFileTable(obj, panel, options, function() { var current; diff --git a/lib/client/config.js b/lib/client/config.js index b73bf26414..e53f7cf03a 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -194,8 +194,9 @@ var CloudCmd, Util, DOM, io; function saveHttp(obj) { var RESTful = DOM.RESTful; - RESTful.Config.write(obj, function() { - onSave(obj); + RESTful.Config.write(obj, function(error) { + if (!error) + onSave(obj); }); } diff --git a/lib/client/dom.js b/lib/client/dom.js index c95efa5591..31a8ae1918 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -457,8 +457,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; path += type; if (name) - RESTful.write(path, function() { - CloudCmd.refresh(null, function() { + RESTful.write(path, function(error) { + !error && CloudCmd.refresh(null, function() { var current = DOM.getCurrentByName(name); DOM.setCurrentFile(current); @@ -514,8 +514,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; Images.show.load('top'); - op(fileFrom, function() { - CloudCmd.refresh(null, function() { + op(fileFrom, function(error) { + !error && CloudCmd.refresh(null, function() { var file = DOM.getCurrentByName(name); DOM.setCurrentFile(file); @@ -678,10 +678,12 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; Images.show.load(); if (name !== '..') - RESTful.read(link + query, function(size) { - DOM.setCurrentSize(size, current); - Util.exec(callback, current); - Images.hide(); + RESTful.read(link + query, function(error, size) { + if (!error) { + DOM.setCurrentSize(size, current); + Util.exec(callback, current); + Images.hide(); + } }); }; @@ -696,9 +698,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; query = '?hash', link = DOM.getCurrentPath(current); - RESTful.read(link + query, function(data) { - callback(null, data); - }); + RESTful.read(link + query, callback); }; /** @@ -766,18 +766,21 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; path = DOM.getCurrentPath(current), isDir = DOM.isCurrentIsDir(current), - func = function(data) { + func = function(error, data) { var length, ONE_MEGABYTE = 1024 * 1024 * 1024; - if (Util.type.object(data)) - data = Util.json.stringify(data); - - length = data.length; - if (hash && length < ONE_MEGABYTE) - DOM.saveDataToStorage(path, data, hash); + if (!error) { + if (Util.type.object(data)) + data = Util.json.stringify(data); + + length = data.length; + + if (hash && length < ONE_MEGABYTE) + DOM.saveDataToStorage(path, data, hash); + } - Util.exec(callback, null, data); + callback(error, data); }; if (Info.name === '..') @@ -806,8 +809,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; if (!query) query = ''; - DOM.RESTful.write(url + query, data, function() { - DOM.saveDataToStorage(url, data); + DOM.RESTful.write(url + query, data, function(error) { + !error && DOM.saveDataToStorage(url, data); }); }; @@ -1459,16 +1462,18 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; to : dirPath + to }; - RESTful.mv(files, function() { + RESTful.mv(files, function(error) { var Storage = DOM.Storage, path = CloudFunc.rmLastSlash(dirPath); - DOM.setCurrentName(to, current); - Cmd.updateCurrentInfo(); - Storage.remove(path); - - if (isExist) - CloudCmd.refresh(); + if (!error) { + DOM.setCurrentName(to, current); + Cmd.updateCurrentInfo(); + Storage.remove(path); + + if (isExist) + CloudCmd.refresh(); + } }); } } diff --git a/lib/client/markdown.js b/lib/client/markdown.js index 940c07eb83..963d1cc916 100644 --- a/lib/client/markdown.js +++ b/lib/client/markdown.js @@ -32,7 +32,7 @@ var CloudCmd, Util, DOM; if (o.relative) name += relativeQuery; - Markdown.read(name, function(result) { + Markdown.read(name, function(error, result) { var div = DOM.load({ name : 'div', className : 'help', diff --git a/lib/client/menu.js b/lib/client/menu.js index f2181bbd97..c279d7766e 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -265,7 +265,9 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; CloudCmd.execFromModule('FilePicker', 'saveFile', function(name, data) { var path = DOM.getCurrentDirPath() + name; - DOM.RESTful.write(path, data, CloudCmd.refresh); + DOM.RESTful.write(path, data, function(error) { + !error && CloudCmd.refresh(); + }); }); } diff --git a/lib/client/operation.js b/lib/client/operation.js index e29e7b23a8..eda0ad0b01 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -239,17 +239,19 @@ if (!n) names = [Info.name]; - deleteFn(path + query, names, function() { + deleteFn(path + query, names, function(error) { var Storage = DOM.Storage, dirPath = Info.dirPath, dir = rmLastSlash(dirPath); - if (n > 1) - DOM.deleteSelected(files); - else - DOM.deleteCurrent(current); - - Storage.removeMatch(dir); + if (!error) { + if (n > 1) + DOM.deleteSelected(files); + else + DOM.deleteCurrent(current); + + Storage.removeMatch(dir); + } }); } @@ -315,10 +317,10 @@ names : names }; - operation(files, function() { + operation(files, function(error) { var path = rmLastSlash(from); - DOM.Storage.remove(path, function() { + !error && DOM.Storage.remove(path, function() { var panel = Info.panel, panelPassive = Info.panelPassive, setCurrent = function() { diff --git a/lib/client/rest.js b/lib/client/rest.js index b31ce78479..69f9d9c179 100644 --- a/lib/client/rest.js +++ b/lib/client/rest.js @@ -197,6 +197,8 @@ var Util, DOM, CloudFunc, CloudCmd; setTimeout(function() { DOM.Dialog.alert(text); }, 100); + + p.callback(Error(text)); }, success : function(data) { Images.hide(); @@ -204,7 +206,7 @@ var Util, DOM, CloudFunc, CloudCmd; if (!p.notLog) CloudCmd.log(data); - Util.exec(p.callback, data); + p.callback(null, data); } }); } diff --git a/lib/client/upload.js b/lib/client/upload.js index 7e73eaa5e4..8f2605d8e9 100644 --- a/lib/client/upload.js +++ b/lib/client/upload.js @@ -54,7 +54,9 @@ var CloudCmd, Util, DOM; Upload.hide(); - DOM.uploadFiles(files); + DOM.uploadFiles(files, function(error) { + error && CloudCmd.log(error); + }); }); } From da809357983dde90ea3aebd9d5490e93a101e28f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 8 Jul 2015 05:26:49 -0400 Subject: [PATCH 0357/3805] fix(files) getConfig promise: add reject --- lib/client/files.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/client/files.js b/lib/client/files.js index ff18d8c56f..088be99022 100644 --- a/lib/client/files.js +++ b/lib/client/files.js @@ -119,9 +119,14 @@ RESTful = DOM.RESTful; if (!Promises.config) - Promises.config = new Promise(function(resolve) { + Promises.config = new Promise(function(resolve, reject) { is = true; - RESTful.Config.read(resolve); + RESTful.Config.read(function(error, data) { + if (error) + reject(error); + else + resolve(data); + }); }); Promises.config.then(function(data) { @@ -134,6 +139,9 @@ if (!is) Promises.config = null; }); + }, function() { + if (!is) + Promises.config = null; }); } From 7c4d5da9d222ac4962a2cc531d268d409199062f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 8 Jul 2015 07:17:40 -0400 Subject: [PATCH 0358/3805] fix(rest) streamPack: root --- lib/server/rest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index dd646306a3..6f86593522 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -137,7 +137,7 @@ if (/^pack/.test(cmd)) { cmd = cmd.replace(/^pack/, ''); - streamPack(cmd, p.response, callback); + streamPack(root(cmd), p.response, callback); } else { switch(cmd) { case '': From 9a78ce3fe51f21caff6272378979a8d3dfd0b2df Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 10:06:54 -0400 Subject: [PATCH 0359/3805] feature(server) add port number check --- lib/server.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/server.js b/lib/server.js index 8f5a135c81..a845eb7b61 100644 --- a/lib/server.js +++ b/lib/server.js @@ -40,6 +40,9 @@ socket: io.listen(server) })); + if (port <= 0 || port > 65535) + exit('cloudcmd --port: %s', 'port number could be 1..65535'); + server.on('error', function(error) { exit('cloudcmd --port: %s', error.message); }); From b96e31f083b9bc115fde8384765c7143d0994045 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 10:18:47 -0400 Subject: [PATCH 0360/3805] fix(menu) delete: Operation.show -> CloudCmd.Operation.show --- lib/client/menu.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/client/menu.js b/lib/client/menu.js index c279d7766e..896b658bd1 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -170,7 +170,9 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; 'Rename' : function() { setTimeout(DOM.renameCurrent, 100); }, - 'Delete' : Operation.show.bind(null, 'delete'), + 'Delete' : function() { + CloudCmd.Operation.show('delete'); + }, 'Pack' : DOM.pack, 'Extract' : DOM.extract, 'Upload To' : {}, From 4ae8713f635d557e959ca7e7f11a43fb7928da27 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 10:20:22 -0400 Subject: [PATCH 0361/3805] chore(menu) rm unused Operation --- lib/client/menu.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/client/menu.js b/lib/client/menu.js index 896b658bd1..20e767eda8 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -161,8 +161,6 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; CloudCmd[name].show(); }, - Operation = CloudCmd.Operation, - menuData = getMenuData(is), menu = { 'View' : Util.exec.with(show, 'View'), From 27ca342407dedec4796502081444b987052822ab Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 10:31:13 -0400 Subject: [PATCH 0362/3805] fix(dom) twopack: lengh -> length --- lib/client/dom.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 31a8ae1918..cc9d36965d 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -499,10 +499,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; case 'pack': op = RESTful.pack; - if (names.lengh > 1) + if (names.length > 1) name = Info.dir; - else - name += '.tar.gz'; + + name += '.tar.gz'; fileFrom = { from : dirPath, From fd2dbbdaa3c81531ecbc70f21922d0760272cab8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 10:36:41 -0400 Subject: [PATCH 0363/3805] fix(dom) unpack -> extract --- lib/client/dom.js | 4 ++-- lib/server/rest.js | 20 +------------------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index cc9d36965d..1f845a62d0 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -506,7 +506,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; fileFrom = { from : dirPath, - to : dirPath, + to : dirPath + name, names : names }; break; @@ -536,7 +536,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * unzip file * */ - this.unpack = function() { + this.extract = function() { twopack('extract'); }; diff --git a/lib/server/rest.js b/lib/server/rest.js index 6f86593522..6401c97fbd 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -273,26 +273,8 @@ } function pack(from, to, names, fn) { - var name; - from = root(from); - - if (to) - to = root(to); - else - to = from; - - if (names.length > 1) { - name = path.basename(to); - } else { - name = names[0]; - } - - to = path.join(to, name); - - if (!/\.tar\.gz$/.test(to)) { - to += '.tar.gz'; - } + to = root(to); if (!names) { names = [ From 6081f7a1c46b0879b3e0b9fe2a55eab259d11f51 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 10:39:48 -0400 Subject: [PATCH 0364/3805] chore(package) v3.8.1 --- ChangeLog | 17 +++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3f27676a7f..48f436d887 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2015.07.09, v3.8.1 + +fix: +- (dom) unpack -> extract +- (dom) twopack: lengh -> length +- (menu) delete: Operation.show -> CloudCmd.Operation.show +- (rest) streamPack: root +- (files) getConfig promise: add reject +- (style) file names that conatains Chinese characters breaks the line + +feature: +- (server) add port number check +- (rest) callback called on success only -> callback called always +- (listeners) onDragStart: add ability to download directories via drag n drop +- (package) jaguar v1.1.0 + + 2015.07.06, v3.8.0 fix: diff --git a/HELP.md b/HELP.md index c94048ad85..a7c7bb1d32 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.8.0 +Cloud Commander v3.8.1 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.09*, **[v3.8.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.8.1.tar.gz)** - *2015.07.06*, **[v3.8.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.8.0.tar.gz)** - *2015.07.04*, **[v3.7.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.2.tar.gz)** - *2015.07.04*, **[v3.7.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.1.tar.gz)** diff --git a/README.md b/README.md index e963134873..f0c29a2e0c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.8.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v3.8.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 758d2b03f6..2f9a3e7171 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.8.0", + "version": "3.8.1", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 614c781764..456c95135e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.8.0", + "version": "3.8.1", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 450c2598fa20f2257078fdb6ded42263db48dd86 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Jul 2015 11:41:25 -0400 Subject: [PATCH 0365/3805] feature(cloudcmd) add progress of pack/extract operations --- lib/client/dom.js | 74 ----------------------------- lib/client/menu.js | 8 +++- lib/client/operation.js | 102 +++++++++++++++++++++++++++++++++++++++- lib/cloudcmd.js | 10 ++++ package.json | 1 + 5 files changed, 118 insertions(+), 77 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 1f845a62d0..557507865b 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -466,80 +466,6 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; }); } - function twopack(operation) { - var op, - RESTful = DOM.RESTful, - Images = DOM.Images, - Info = DOM.CurrentInfo, - name = Info.name, - path = Info.path, - dirPath = Info.dirPath, - activeFiles = DOM.getActiveFiles(), - names = DOM.getSelectedNames(activeFiles), - fileFrom; - - Util.check(arguments, ['operation']); - - if (!names.length) { - Dialog.alert.noFiles(); - } else { - switch(operation) { - case 'extract': - op = RESTful.extract; - - fileFrom = { - from : path, - to : dirPath - }; - - name = name.replace(/\.tar\.gz$/, ''); - - break; - - case 'pack': - op = RESTful.pack; - - if (names.length > 1) - name = Info.dir; - - name += '.tar.gz'; - - fileFrom = { - from : dirPath, - to : dirPath + name, - names : names - }; - break; - } - - Images.show.load('top'); - - op(fileFrom, function(error) { - !error && CloudCmd.refresh(null, function() { - var file = DOM.getCurrentByName(name); - - DOM.setCurrentFile(file); - }); - }); - } - } - - /** - * zip file - * - */ - this.pack = function() { - twopack('pack'); - }; - - /** - * unzip file - * - */ - this.extract = function() { - twopack('extract'); - }; - /** * get current direcotory name */ diff --git a/lib/client/menu.js b/lib/client/menu.js index 20e767eda8..df1786b405 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -171,8 +171,12 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; 'Delete' : function() { CloudCmd.Operation.show('delete'); }, - 'Pack' : DOM.pack, - 'Extract' : DOM.extract, + 'Pack' : function() { + CloudCmd.Operation.show('pack'); + }, + 'Extract' : function() { + CloudCmd.Operation.show('extract'); + }, 'Upload To' : {}, 'Download' : download, 'Cut' : Buffer.cut, diff --git a/lib/client/operation.js b/lib/client/operation.js index eda0ad0b01..e8ea2be5ec 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -4,6 +4,7 @@ /* global rendy */ /* global spero */ /* global remedy */ +/* global ishtar */ (function(CloudCmd, Util, DOM, rendy) { 'use strict'; @@ -18,6 +19,8 @@ copyFn = RESTful.cp, moveFn = RESTful.mv, deleteFn = RESTful.delete, + packFn = RESTful.pack, + extractFn = RESTful.extract, Images = DOM.Images, Dialog = DOM.Dialog, @@ -86,6 +89,26 @@ }); }); + ishtar(function() { + ishtar.on('connect', function() { + packFn = function(data, callback) { + setListeners(ishtar, callback); + + ishtar.pack(data.from, data.to, data.names); + }; + + extractFn = function(data, callback) { + setListeners(ishtar, callback); + ishtar.pack(data.from, data.to); + }; + }); + + ishtar.on('disconnect', function() { + packFn = RESTful.pack; + extractFn = RESTful.extract; + }); + }); + Util.exec(callback); } @@ -149,6 +172,16 @@ case 'delete:silent': Operation.deleteShift(); + break; + + case 'pack': + Operation.pack(); + break; + + case 'extract': + Operation.extract(); + break; + } }; @@ -168,6 +201,15 @@ deleteSilent(); }; + this.pack = function() { + twopack('pack'); + }; + + this.extract = function() { + twopack('extract'); + }; + + /** * prompt and delete current file or selected files * @@ -345,6 +387,63 @@ } } + function twopack(operation) { + var op, + Images = DOM.Images, + Info = DOM.CurrentInfo, + name = Info.name, + path = Info.path, + dirPath = Info.dirPath, + activeFiles = DOM.getActiveFiles(), + names = DOM.getSelectedNames(activeFiles), + fileFrom; + + Util.check(arguments, ['operation']); + + if (!names.length) { + Dialog.alert.noFiles(); + } else { + switch(operation) { + case 'extract': + op = extractFn; + + fileFrom = { + from : path, + to : dirPath + }; + + name = name.replace(/\.tar\.gz$/, ''); + + break; + + case 'pack': + op = packFn; + + if (names.length > 1) + name = Info.dir; + + name += '.tar.gz'; + + fileFrom = { + from : dirPath, + to : dirPath + name, + names : names + }; + break; + } + + Images.show.load('top'); + + op(fileFrom, function(error) { + !error && CloudCmd.refresh(null, function() { + var file = DOM.getCurrentByName(name); + + DOM.setCurrentFile(file); + }); + }); + } + } + function message(msg) { return function(to, names) { var ret, @@ -369,7 +468,8 @@ function load(callback) { var files = [ '/spero/spero.js', - '/remedy/remedy.js' + '/remedy/remedy.js', + '/ishtar/ishtar.js' ]; DOM.load.parallel(files, function(error) { diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 330cd6e657..1bb9b29ebd 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -24,6 +24,7 @@ dword = require('dword'), spero = require('spero'), remedy = require('remedy'), + ishtar = require('ishtar'), root = function() { return config('root'); @@ -104,6 +105,10 @@ remedy.listen(socket, { root: root }); + + ishtar.listen(socket, { + root: root + }); } function cloudcmd(prefix, socket) { @@ -171,6 +176,11 @@ online: isOnline }), + ishtar({ + minify: isMinify, + online: isOnline + }), + mollify({ dir : DIR_ROOT, is : isMinify diff --git a/package.json b/package.json index 456c95135e..f539efe2d5 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "flop": "~1.3.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", + "ishtar": "~1.0.0", "jaguar": "~1.1.0", "join-io": "~1.4.0", "jonny": "~1.0.0", From 88808ccce0d0050102502327dbe0ccb48eccb5c0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 03:21:20 -0400 Subject: [PATCH 0366/3805] feature(iocmd) rm --- bin/iocmd.js | 3 --- package.json | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100755 bin/iocmd.js diff --git a/bin/iocmd.js b/bin/iocmd.js deleted file mode 100755 index ed2ddfa412..0000000000 --- a/bin/iocmd.js +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env iojs - -require('./cloudcmd'); diff --git a/package.json b/package.json index f539efe2d5..24da7ba20f 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,7 @@ "orthodox" ], "bin": { - "cloudcmd": "bin/cloudcmd.js", - "iocmd": "bin/iocmd.js" + "cloudcmd": "bin/cloudcmd.js" }, "scripts": { "bower": "bower", From e5d51cb13ea40b843e915870d06ba14fdb11d222 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 04:24:01 -0400 Subject: [PATCH 0367/3805] feature(package) spero v1.1.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 24da7ba20f..841b931720 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "rendy": "~1.1.0", "restafary": "~1.3.0", "socket.io": "~1.3.5", - "spero": "~1.0.0", + "spero": "~1.1.4", "try-catch": "~1.0.0", "tryrequire": "~1.1.5" }, From 3f88a0c3f5368cf0a9eb5485359954f0955f0da9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 04:24:37 -0400 Subject: [PATCH 0368/3805] feature(package) remedy v1.1.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 841b931720..b3b135dd13 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "pipe-io": "~1.1.1", "ponse": "~1.4.0", "readjson": "~1.1.0", - "remedy": "~1.0.5", + "remedy": "~1.1.3", "rendy": "~1.1.0", "restafary": "~1.3.0", "socket.io": "~1.3.5", From 06265227385054c3a829a23253cd4fb369aeff00 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 04:25:12 -0400 Subject: [PATCH 0369/3805] feature(package) ishtar v1.1.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b3b135dd13..4f45cf000b 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "flop": "~1.3.0", "format-io": "~0.9.6", "http-auth": "~2.2.3", - "ishtar": "~1.0.0", + "ishtar": "~1.1.5", "jaguar": "~1.1.0", "join-io": "~1.4.0", "jonny": "~1.0.0", From f0283aa2ff4149857fe00f9cb1f0902a4c020dd0 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 05:21:21 -0400 Subject: [PATCH 0370/3805] feature(package) edward v1.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4f45cf000b..8e52ba8578 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "console-io": "~2.2.0", "copymitter": "~1.8.0", "dword": "~1.7.0", - "edward": "~1.7.0", + "edward": "~1.8.0", "execon": "~1.2.0", "express": "~4.13.0", "faust": "~1.0.0", From 537bff05693c23cfa5ada0378ad64994815d6a05 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 05:21:57 -0400 Subject: [PATCH 0371/3805] feature(package) dword v1.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8e52ba8578..a7d04aa7ca 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", - "dword": "~1.7.0", + "dword": "~1.8.0", "edward": "~1.8.0", "execon": "~1.2.0", "express": "~4.13.0", From bb42e9b2a04fa539d2286d25fc045709c11400fd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 05:51:36 -0400 Subject: [PATCH 0372/3805] feature(operation) speed up loading: set delete, copy, pack operations load in order --- lib/client/operation.js | 100 +++++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 43 deletions(-) diff --git a/lib/client/operation.js b/lib/client/operation.js index e8ea2be5ec..508832574c 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -16,6 +16,8 @@ Loaded, RESTful = DOM.RESTful, + exec = Util.exec, + copyFn = RESTful.cp, moveFn = RESTful.mv, deleteFn = RESTful.delete, @@ -61,53 +63,65 @@ } function create(callback) { - spero(function() { - spero.on('connect', function() { - copyFn = function(data, callback) { - setListeners(spero, callback); - spero.copy(data.from, data.to, data.names); - }; - }); - - spero.on('disconnect', function() { - copyFn = DOM.RESTful.cp; - }); - }); - - remedy(function() { - remedy.on('connect', function() { - deleteFn = function(from, files, callback) { - from = from.replace(/\?.*/, ''); + exec.series([ + function(fn) { + spero(function() { + fn(); - setListeners(remedy, callback); - remedy.remove(from, files); - }; - }); - - remedy.on('disconnect', function() { - deleteFn = DOM.RESTful.remove; - }); - }); + spero.on('connect', function() { + copyFn = function(data, callback) { + setListeners(spero, callback); + spero.copy(data.from, data.to, data.names); + }; + }); + + spero.on('disconnect', function() { + copyFn = DOM.RESTful.cp; + }); + }); + }, - ishtar(function() { - ishtar.on('connect', function() { - packFn = function(data, callback) { - setListeners(ishtar, callback); + function(fn) { + remedy(function() { + fn(); + remedy.on('connect', function() { + deleteFn = function(from, files, callback) { + from = from.replace(/\?.*/, ''); + + setListeners(remedy, callback); + remedy.remove(from, files); + }; + }); - ishtar.pack(data.from, data.to, data.names); - }; - - extractFn = function(data, callback) { - setListeners(ishtar, callback); - ishtar.pack(data.from, data.to); - }; - }); + remedy.on('disconnect', function() { + deleteFn = DOM.RESTful.remove; + }); + }); + }, - ishtar.on('disconnect', function() { - packFn = RESTful.pack; - extractFn = RESTful.extract; - }); - }); + function(fn) { + ishtar(function() { + fn(); + ishtar.on('connect', function() { + packFn = function(data, callback) { + setListeners(ishtar, callback); + + ishtar.pack(data.from, data.to, data.names); + }; + + extractFn = function(data, callback) { + setListeners(ishtar, callback); + ishtar.pack(data.from, data.to); + }; + }); + + ishtar.on('disconnect', function() { + packFn = RESTful.pack; + extractFn = RESTful.extract; + }); + }); + } + ]); Util.exec(callback); } From 08ed4e66212d5a9d50bec4d8b8108346c06af99d Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 11 Jul 2015 21:27:04 +0300 Subject: [PATCH 0373/3805] chore(appveyor) iojs: 1 -> 2 --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 41cd5dffd7..cfe544f684 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,7 +3,7 @@ environment: # node.js - nodejs_version: "0.12" # io.js - - nodejs_version: "1" + - nodejs_version: "2" install: - ps: Install-Product node $env:nodejs_version From 6efbef5210a2976d0c4890f1fa06c46611c85fdf Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 12 Jul 2015 03:45:21 -0400 Subject: [PATCH 0374/3805] feature(config) show error.message when file exist, but could not be read from home --- lib/server/config.js | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/server/config.js b/lib/server/config.js index 63b271a241..2a24ff1513 100644 --- a/lib/server/config.js +++ b/lib/server/config.js @@ -9,6 +9,7 @@ path = require('path'), password = require(DIR_SERVER + 'password'), + exit = require(DIR_SERVER + 'exit'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), @@ -17,6 +18,7 @@ ponse = require('ponse'), jonny = require('jonny'), readjson = require('readjson'), + tryCatch = require('try-catch'), HOME = require('os-homedir')(), apiURL = CloudFunc.apiURL, @@ -24,9 +26,24 @@ ConfigPath = path.join(DIR, 'json/config.json'), ConfigHome = path.join(HOME, '.cloudcmd.json'), - config = - readjson.sync.try(ConfigHome) || - readjson.sync.try(ConfigPath); + error, + config; + + error = tryCatch(function() { + config = readjson.sync(ConfigHome); + }); + + if (error) { + if (error.code !== 'ENOENT') + console.error('cloudcmd --config ~/.cloudcmd.json:', error.message); + + error = tryCatch(function() { + config = readjson.sync(ConfigPath); + }); + + if (error) + exit('cloudcmd --config', ConfigPath + ':', error.message); + } module.exports = manage; module.exports.save = save; From c122fb3412e7bc888be864d03ad00ee567f6b65f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 12 Jul 2015 04:01:48 -0400 Subject: [PATCH 0375/3805] feature(package) edward v1.9.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a7d04aa7ca..616c382749 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "console-io": "~2.2.0", "copymitter": "~1.8.0", "dword": "~1.8.0", - "edward": "~1.8.0", + "edward": "~1.9.0", "execon": "~1.2.0", "express": "~4.13.0", "faust": "~1.0.0", From d43150ff4774981968044868345e30b911a82244 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 12 Jul 2015 11:46:42 -0400 Subject: [PATCH 0376/3805] feature(package) dword v1.9.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 616c382749..64f575e2ca 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "checkup": "~1.3.0", "console-io": "~2.2.0", "copymitter": "~1.8.0", - "dword": "~1.8.0", + "dword": "~1.9.0", "edward": "~1.9.0", "execon": "~1.2.0", "express": "~4.13.0", From 75cd36f7c8b79e320a2b530d0fe5c94134db81b8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 12 Jul 2015 15:31:24 -0400 Subject: [PATCH 0377/3805] fix(listeners) initKeysPanel: name missing --- lib/client/listeners.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 2bfff24fce..89c15384bc 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -32,7 +32,7 @@ var Util, DOM, CloudFunc, CloudCmd; Events.addClick(keysElement, function(event) { var element = event.target, id = element.id, - operation = function() { + operation = function(name) { var Operation = CloudCmd.Operation, fn = Operation.show.bind(null, name); From 844303be045352f58ea96a6717eaa66f28842f4f Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 13 Jul 2015 02:25:37 -0400 Subject: [PATCH 0378/3805] feature(config) progress: true --- HELP.md | 2 +- json/config.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HELP.md b/HELP.md index a7c7bb1d32..156f6923d0 100644 --- a/HELP.md +++ b/HELP.md @@ -215,7 +215,7 @@ Here is description of options: "port" : 8000, /* http port */ "ip" : null, /* ip or null(default) */ "root" : "/" /* root directory */ - "progress" : false /* show progress of file operations */ + "progress" : true /* show progress of file operations */ } ``` diff --git a/json/config.json b/json/config.json index 25219e843f..6dfdd2a551 100644 --- a/json/config.json +++ b/json/config.json @@ -17,5 +17,5 @@ "port": 8000, "ip": null, "root": "/", - "progress": false + "progress": true } From 8345457acc4c63b77a89439871804a04fd2f1a3a Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 13 Jul 2015 02:28:24 -0400 Subject: [PATCH 0379/3805] chore(package) v4.0.0 --- ChangeLog | 20 ++++++++++++++++++++ HELP.md | 3 ++- README.md | 2 +- bower.json | 2 +- package.json | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 48f436d887..ea8ee34c6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2015.07.13, v4.0.0 + +fix: +- (listeners) initKeysPanel: name missing + +feature: +- (config) progress: true +- (package) dword v1.9.0 +- (package) edward v1.9.0 +- (config) show error.message when file exist, but could not be read from home +- (operation) speed up loading: set delete, copy, pack operations load in order +- (package) dword v1.8.0 +- (package) edward v1.8.0 +- (package) ishtar v1.1.5 +- (package) remedy v1.1.3 +- (package) spero v1.1.4 +- (iocmd) rm +- (cloudcmd) add progress of pack/extract operations + + 2015.07.09, v3.8.1 fix: diff --git a/HELP.md b/HELP.md index 156f6923d0..0953d12bce 100644 --- a/HELP.md +++ b/HELP.md @@ -1,4 +1,4 @@ -Cloud Commander v3.8.1 +Cloud Commander v4.0.0 =============== ### [Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL]) [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars&&downloadRank "npm install cloudcmd" @@ -385,6 +385,7 @@ ln -s ./sites-enabled/io.cloudcmd.io ./sites-available Version history --------------- +- *2015.07.13*, **[v4.0.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v4.0.0.tar.gz)** - *2015.07.09*, **[v3.8.1](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.8.1.tar.gz)** - *2015.07.06*, **[v3.8.0](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.8.0.tar.gz)** - *2015.07.04*, **[v3.7.2](//github.com/cloudcmd/archive/raw/master/cloudcmd-v3.7.2.tar.gz)** diff --git a/README.md b/README.md index f0c29a2e0c..f6f19a279f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Cloud Commander v3.8.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] +Cloud Commander v4.0.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Veyor Status][VeyorStatusIMGURL]][VeyorStatusURL] [![Shippable Status][ShippableIMGURL]][ShippableURL] [![Circle Ci][CircleCiIMGURL]][CircleCiURL] [![Package Quality][PackageQualityIMGURL]][PackageQualityURL] =============== ### [Main][MainURL] [Blog][BlogURL] Live([JitSu][JitSuURL], [Heroku][HerokuURL]) diff --git a/bower.json b/bower.json index 2f9a3e7171..347fbc13ca 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.8.1", + "version": "4.0.0", "homepage": "https://github.com/coderaiser/cloudcmd", "authors": [ "coderaiser " diff --git a/package.json b/package.json index 64f575e2ca..5f58265153 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cloudcmd", - "version": "3.8.1", + "version": "4.0.0", "author": "coderaiser (https://github.com/coderaiser)", "description": "Cloud Commander orthodox web file manager with console and editor", "homepage": "http://cloudcmd.io", From 65be11a298e9e7ef74f15c791a37a5f45ea2f446 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 14 Jul 2015 10:54:54 -0400 Subject: [PATCH 0380/3805] docs(readme) add "deploy to heroku" button --- README.md | 9 +++++++-- app.json | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 app.json diff --git a/README.md b/README.md index f6f19a279f..587ffc3c7b 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,11 @@ Cloud Commander v4.0.0 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][N [PackageQualityURL]: http://packagequality.com/#?package=cloudcmd "Package Quality" [PackageQualityIMGURL]: http://packagequality.com/shield/cloudcmd.svg -[CircleCiURL]: https://circleci.com/gh/coderaiser/cloudcmd -[CircleCiIMGURL]: https://circleci.com/gh/coderaiser/cloudcmd.svg +[CircleCiURL]: https://circleci.com/gh/coderaiser/cloudcmd +[CircleCiIMGURL]: https://circleci.com/gh/coderaiser/cloudcmd.svg + +[DeployURL]: https://heroku.com/deploy?template=https://github.com/coderaiser/cloudcmd "Deploy" +[DeployIMG]: https://www.herokucdn.com/deploy/button.png **Cloud Commander** orthodox web file manager with console and editor. @@ -47,6 +50,8 @@ cloudcmd Open url `http://localhost:8000` in browser. +[![Deploy][DeployIMG]][DeployURL] + ## License MIT diff --git a/app.json b/app.json new file mode 100644 index 0000000000..8e5a31da9e --- /dev/null +++ b/app.json @@ -0,0 +1,14 @@ +{ + "name": "cloudcmd", + "description": "Cloud Commander orthodox web file manager with console and editor", + "repository": "https://github.com/coderaiser/cloudcmd", + "logo": "http://cloudcmd.io/img/logo/cloudcmd.png", + "keywords": [ + "console", + "editor", + "file", + "file manager", + "folder", + "orthodox" + ] +} From 2fea5ae5a20c8df1b4c29f4de35040e845713a13 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 15 Jul 2015 05:59:26 -0400 Subject: [PATCH 0381/3805] feature(query) add --- css/query.css | 197 ++++++++++++++++++++++++++++++++++++++++++++++++ css/style.css | 132 -------------------------------- html/index.html | 2 +- 3 files changed, 198 insertions(+), 133 deletions(-) create mode 100644 css/query.css diff --git a/css/query.css b/css/query.css new file mode 100644 index 0000000000..ce71a3b987 --- /dev/null +++ b/css/query.css @@ -0,0 +1,197 @@ +@media only screen and (max-height: 900px) and (max-width: 600px) { + .fm { + height: 85%; + } + + .files { + height: 90%; + } +} + +@media only screen and (min-height: 550px) and (max-width: 600px) { + .fm { + height: 80%; + } + + .files { + height: 90%; + } +} + +@media only screen and (max-height: 750px) and (max-width: 600px) { + .fm { + height: 75%; + } +} + +@media only screen and (max-height: 450px) and (max-width: 600px) { + .fm { + height: 75%; + } +} + +@media only screen and (max-height: 550px) and (max-width: 600px) { + .fm { + height: 65%; + } +} + +@media only screen and (max-height: 550px) and (max-width: 550px) { + .fm { + height: 55%; + } +} + +@media only screen and (min-height: 850px) and (min-width: 650px) { + .fm { + height: 95%; + } +} + +@media only screen and (max-height: 700px) and (min-width: 600px) { + .fm { + height: 85%; + } + + .files { + height: 90%; + } +} + +@media only screen and (max-height: 450px) { + .fm { + height: 65%; + } +} + +@media only screen and (max-height: 640px) and (max-width: 360px) { + .fm { + height: 75%; + } + + .files { + height: 90%; + } +} + +@media only screen and (max-height: 360px) and (max-width: 640px) { + .fm { + height: 55%; + } + + .files { + height: 60%; + } +} + +@media only screen and (max-width: 600px) { + .panel { + font-size: 26px; + } + + /* текущий файл под курсором */ + .current-file { + background-color: rgb(49, 123, 249); + background-color: rgba(49, 123, 249, .40); + color: white; + } + /* делаем иконки под курсом белыми*/ + .current-file a { + color: white; + } + .current-file .text-file::before { + color: white; + } + + /* меняем иконки на шрифтовые*/ + .mini-icon { + color : rgb(246, 224, 124); + color : rgba(246, 224, 124, 0.56); + font : 16px 'Fontello'; + background-image: none; + padding : 1%; + } + + .size, .owner, .mode { + display: none; + } + + .name { + float: none; + width: 90%; + display: inline-block; + } + + .directory::before { + content: '\e807'; + } + .text-file::before { + color: rgb(26, 224, 124); + color: rgba(26, 224, 124, 0.56); + content: '\e80d'; + } + .text-file { + background-image:none; + } + + /* убираем заголовок*/ + .fm-header { + display:none; + } + + /* выводим заголовки рядом с полями */ + + .cmd-button { + width: 20%; + } +} +@media only screen and (min-width: 601px) and (max-width: 785px) { + .cmd-button { + width: 13%; + } +} + +@media only screen and (min-width:786px) and (max-width: 1155px) { + .cmd-button { + width: 10%; + } +} + +@media only screen and (max-width: 1155px) { + .panel { + width:97%; + } + /* если правая панель не помещаеться - прячем её */ + .panel-right, .cmd-button#f5, .cmd-button#f6 { + display: none; + } +} + +@media print { + .panel { + width: 94%; + margin: 0; + padding: 0; + border: none; + } + + .keyspanel, .panel-right { + display: none; + } + + .files { + overflow-y: visible; + } + + .current-file { + box-shadow: 0 0; + } + + .path-icon { + display: none; + } + + .mini-icon { + display: none; + } +} \ No newline at end of file diff --git a/css/style.css b/css/style.css index 16452d1d00..fdc9ddb376 100644 --- a/css/style.css +++ b/css/style.css @@ -232,135 +232,3 @@ a:hover, a:active { color : #06e; text-decoration:none; } - -@media only screen and (max-height: 800px), (max-height: 640px) and (max-width: 360px) { - .fm { - height: 75%; - } - - .files { - height: 90%; - } -} - -@media only screen and (max-height: 360px) and (max-width: 640px) { - .fm { - height: 55%; - } - - .files { - height: 60%; - } -} - -@media only screen and (max-width: 600px) { - .panel { - font-size: 26px; - } - - /* текущий файл под курсором */ - .current-file { - background-color: rgb(49, 123, 249); - background-color: rgba(49, 123, 249, .40); - color: white; - } - /* делаем иконки под курсом белыми*/ - .current-file a { - color: white; - } - .current-file .text-file::before { - color: white; - } - - /* меняем иконки на шрифтовые*/ - .mini-icon { - color : rgb(246, 224, 124); - color : rgba(246, 224, 124, 0.56); - font : 16px 'Fontello'; - background-image: none; - padding : 1%; - } - - .size, .owner, .mode { - display: none; - } - - .name { - float: none; - width: 90%; - display: inline-block; - } - - .directory::before { - content: '\e807'; - } - .text-file::before { - color: rgb(26, 224, 124); - color: rgba(26, 224, 124, 0.56); - content: '\e80d'; - } - .text-file { - background-image:none; - } - - /* убираем заголовок*/ - .fm-header { - display:none; - } - - /* выводим заголовки рядом с полями */ - - .cmd-button { - width: 20%; - } -} -@media only screen and (min-width: 601px) and (max-width: 785px) { - .cmd-button { - width: 13%; - } -} - -@media only screen and (min-width:786px) and (max-width: 1155px) { - .cmd-button { - width: 10%; - } -} - -@media only screen and (max-width: 1155px) { - .panel { - width:97%; - } - /* если правая панель не помещаеться - прячем её */ - .panel-right, .cmd-button#f5, .cmd-button#f6 { - display: none; - } -} - -@media print { - .panel { - width: 94%; - margin: 0; - padding: 0; - border: none; - } - - .keyspanel, .panel-right { - display: none; - } - - .files { - overflow-y: visible; - } - - .current-file { - box-shadow: none; - } - - .path-icon { - display: none; - } - - .mini-icon { - display: none; - } -} diff --git a/html/index.html b/html/index.html index 6429cc5bc0..202a6b28c6 100644 --- a/html/index.html +++ b/html/index.html @@ -9,7 +9,7 @@ {{ title }} - +