diff --git a/3rdparty b/3rdparty index 48fdf111df..912a45c345 160000 --- a/3rdparty +++ b/3rdparty @@ -1 +1 @@ -Subproject commit 48fdf111dfe4728a906002afccb97b8ad88b3f61 +Subproject commit 912a45c3458685a1105fba38a39a3a71c7348ed9 diff --git a/bower.json b/bower.json index 406878ca71..b18078f6fc 100644 --- a/bower.json +++ b/bower.json @@ -21,6 +21,7 @@ "select2": "3.4.8", "zxcvbn": "*", "snapjs": "2.0.0-rc1", + "strengthify": "*", "underscore": "1.6.0" } } diff --git a/core/setup/controller.php b/core/setup/controller.php index f5f05348fd..0722a2b13c 100644 --- a/core/setup/controller.php +++ b/core/setup/controller.php @@ -57,8 +57,8 @@ class Controller { ); $parameters = array_merge($defaults, $post); - \OC_Util::addScript( '3rdparty', 'strengthify/jquery.strengthify' ); - \OC_Util::addStyle( '3rdparty', 'strengthify/strengthify' ); + \OC_Util::addVendorScript('strengthify/jquery.strengthify'); + \OC_Util::addVendorStyle('strengthify/strengthify'); \OC_Util::addScript('setup'); \OC_Template::printGuestPage('', 'installation', $parameters); } diff --git a/core/vendor/.gitignore b/core/vendor/.gitignore index c2c71a145b..e76afeb476 100644 --- a/core/vendor/.gitignore +++ b/core/vendor/.gitignore @@ -1,12 +1,16 @@ test/ src/ .bower.json +bower.json .gitignore .jshintrc .travis.yml +CHANGELOG* Gemfile gruntfile.js -README.md +Makefile +package.json +README* # underscore underscore/** @@ -17,20 +21,13 @@ underscore/** blueimp-md5/css blueimp-md5/js/* !blueimp-md5/js/md5.js -blueimp-md5/.* -blueimp-md5/*.json blueimp-md5/index.html -blueimp-md5/Makefile -blueimp-md5/README.md -blueimp-md5/package.json # momentjs - ignore all files except the two listed below moment/benchmarks moment/locale moment/min/** -moment/*.js* -moment/*.md -!moment/LICENSE +moment/moment.js !moment/min/moment-with-locales.js # jquery @@ -39,9 +36,7 @@ jquery/** !jquery/MIT-LICENSE.txt # jcrop -jcrop/.bower.json jcrop/index.html -jcrop/README.md jcrop/demos jcrop/css/jquery.Jcrop.min.css jcrop/js/** @@ -71,4 +66,3 @@ snapjs/dist/2.0.0-rc1 snapjs/dist/latest/snap.css snapjs/dist/latest/snap.min.js snapjs/scripts -snapjs/*.json diff --git a/core/vendor/strengthify/LICENSE b/core/vendor/strengthify/LICENSE new file mode 100644 index 0000000000..3c04738f78 --- /dev/null +++ b/core/vendor/strengthify/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 Morris Jobke + +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/core/vendor/strengthify/jquery.strengthify.js b/core/vendor/strengthify/jquery.strengthify.js new file mode 100644 index 0000000000..8b62f6b2fe --- /dev/null +++ b/core/vendor/strengthify/jquery.strengthify.js @@ -0,0 +1,133 @@ +/** + * Strengthify - show the weakness of a password (uses zxcvbn for this) + * https://github.com/kabum/strengthify + * + * Version: 0.3 + * Author: Morris Jobke (github.com/kabum) + * + * License: + * + * The MIT License (MIT) + * + * Copyright (c) 2013 Morris Jobke + * + * 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. + */ + +(function ($) { + $.fn.strengthify = function(options) { + var me = this + + var defaults = { + zxcvbn: 'zxcvbn/zxcvbn.js', + titles: [ + 'Weakest', + 'Weak', + 'So-so', + 'Good', + 'Perfect' + ] + } + + var options = $.extend(defaults, options) + + // add elements + $('.strengthify-wrapper') + .append('
') + .append('
') + .append('
') + .append('
') + .append('
') + + var oldDisplayState = $('.strengthify-wrapper').css('display') + + $.ajax({ + cache: true, + dataType: 'script', + url: options.zxcvbn + }).done(function() { + me.bind('keyup input', function() { + var password = $(this).val() + + // hide strengthigy if no input is provided + var opacity = (password === '') ? 0 : 1 + $('.strengthify-wrapper').children().css( + 'opacity', + opacity + ).css( + '-ms-filter', + '"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')"' + ) + + // calculate result + var result = zxcvbn(password) + + var css = '' + // style strengthify bar + // possible scores: 0-4 + switch(result.score) { + case 0: + case 1: + css = 'password-bad'; + break; + case 2: + css = 'password-medium'; + break; + case 3: + case 4: + css = 'password-good'; + break; + } + + $('.strengthify-container').attr('class', css + ' strengthify-container') + // possible scores: 0-4 + $('.strengthify-container').css( + 'width', + // if score is '0' it will be changed to '1' to + // not hide strengthify if the password is extremely weak + ((result.score == 0 ? 1 : result.score) * 25) + '%' + ) + // set a title for the wrapper + $('.strengthify-wrapper').attr( + 'title', + options.titles[result.score] + ).tipsy({ + trigger: 'manual', + opacity: opacity + }).tipsy( + 'show' + ) + + if(opacity === 0) { + $('.strengthify-wrapper').tipsy( + 'hide' + ) + } + + // reset state for empty string password + if(password === '') { + $('.strengthify-container').css('width', 0) + } + + }) + }) + + return me + }; + +}(jQuery)) \ No newline at end of file diff --git a/core/vendor/strengthify/strengthify.css b/core/vendor/strengthify/strengthify.css new file mode 100644 index 0000000000..9340270ecf --- /dev/null +++ b/core/vendor/strengthify/strengthify.css @@ -0,0 +1,48 @@ +/** + * Strengthify - show the weakness of a password (uses zxcvbn for this) + * https://github.com/kabum/strengthify + * Version: 0.3 + * License: The MIT License (MIT) + * Copyright (c) 2013 Morris Jobke + */ + +.strengthify-wrapper > * { + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + opacity: 0; + -webkit-transition:all .5s ease-in-out; + -moz-transition:all .5s ease-in-out; + transition:all .5s ease-in-out; +} + +.strengthify-bg, .strengthify-container, .strengthify-wrapper, .strengthify-separator { + height: 3px; +} + +.strengthify-bg, .strengthify-container { + display: block; + position: absolute; + width: 100%; +} + +.strengthify-bg { + background-color: #BBB; +} + +.strengthify-separator { + display: inline-block; + position: absolute; + background-color: #FFF; + width: 1px; + z-index: 10; +} + +.password-bad { + background-color: #C33; +} +.password-medium { + background-color: #F80; +} +.password-good { + background-color: #3C3; +} \ No newline at end of file diff --git a/settings/personal.php b/settings/personal.php index 4c06eecd22..9c27f77ccd 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -13,8 +13,8 @@ $certificateManager = \OC::$server->getCertificateManager(); // Highlight navigation entry OC_Util::addScript( 'settings', 'personal' ); OC_Util::addStyle( 'settings', 'settings' ); -OC_Util::addScript( '3rdparty', 'strengthify/jquery.strengthify' ); -OC_Util::addStyle( '3rdparty', 'strengthify/strengthify' ); +\OC_Util::addVendorScript('strengthify/jquery.strengthify'); +\OC_Util::addVendorStyle('strengthify/strengthify'); \OC_Util::addScript('files', 'jquery.fileupload'); if (\OC_Config::getValue('enable_avatars', true) === true) { \OC_Util::addVendorScript('jcrop/js/jquery.Jcrop');