setupScript(); $label = trans('admin.new'); return "  $label"; } protected function setupScript() { $submit = trans('admin.submit'); $url = admin_url('helpers/extensions/create'); Admin::script( <<
' + '
' + '' } }); $('#create-extension').on('shown.bs.popover', function () { var errTpl = ''; $('#submit-create').click(function () { var _name = $('input[name="name"]'), _namespace = $('input[name="namespace"]'), name = _name.val(), namespace = _namespace.val(); if (!name) { return displayError(_name, 'The Name is required.'); } if (!isValid(name) || name.indexOf('/') === -1) { return displayError(_name, 'The "'+name+'" is not a valid package name, please input a name like ":vendor/:name".'); } removeError(_name); if (!namespace) { return displayError(_namespace, 'The Namespace is required.'); } if (!isValid(namespace)) { return displayError(_namespace, 'The "'+namespace+'" is not a valid namespace.'); } removeError(_namespace); $('.popover').loading(); $.post('$url', { _token: LA.token, name: name, namespace: namespace, }, function (response) { $('.popover').loading(false); if (!response.status) { LA.error(response.message); } else { $('#create-extension').popover('hide'); } $('.content').prepend('
'+response.content+'
'); }); }); function displayError(obj, msg) { obj.parents('.form-group').addClass('has-error'); obj.parents('.form-group').find('error').html(errTpl.replace('{msg}', msg)); } function removeError(obj) { obj.parents('.form-group').removeClass('has-error'); obj.parents('.form-group').find('error').html(''); } function isValid(str) { return /^[\w-\/\\\\]+$/.test(str); } }); JS ); } }