'
+ ''
}
});
$('#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
);
}
}