diff --git a/app/view/add/Add.js b/app/view/add/Add.js index fee06298..b12bb2d9 100644 --- a/app/view/add/Add.js +++ b/app/view/add/Add.js @@ -66,8 +66,14 @@ Ext.define('Rambox.view.add.Add',{ ,allowBlank: false ,submitEmptyText: false ,emptyText: me.record.get('url') === '___' ? 'https://' : '' - ,vtype: me.record.get('url') === '___' ? 'url' : '' - ,listeners: { specialkey: 'onEnter' } + , validator: function(v) { + if ( !me.edit ? me.record.get('url') !== '___' : me.service.get('url').indexOf('https://___') === 0 ) return true + if ( v.match(/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/i) === null && v.match(/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/) === null ) return false; + return true; + } + ,listeners: { + specialkey: 'onEnter' + } ,flex: 1 } ,{