rename models and associates, isolate botanic with shop
This commit is contained in:
44
build/Admin/Auth/permissions.js
Normal file
44
build/Admin/Auth/permissions.js
Normal file
@@ -0,0 +1,44 @@
|
||||
var elements = {
|
||||
handle: "permissions",
|
||||
model: "permission",
|
||||
route: "Stack.Admin.Permission",
|
||||
route_api: "Stack.Admin.API.Permission",
|
||||
table_selector: "#permissions_datatable",
|
||||
exist: "the_permission_already_exists",
|
||||
added: "permission_has_been_added",
|
||||
modified: "permission_has_been_modified",
|
||||
deleted: "permission_has_been_deleted"
|
||||
};
|
||||
|
||||
var columnsdef = [
|
||||
];
|
||||
|
||||
var columns = [
|
||||
{
|
||||
data: "display_name",
|
||||
render: function (data) {
|
||||
return data;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "id",
|
||||
render: function ( data, type, row ) {
|
||||
var name = eval('client_translate.getText.' + row.translated);
|
||||
return '<div class="text-center" data-id="' + data + '" data-name="' + name + '">'+
|
||||
'<button class="btn btn-border btn-yellow btn-xs edit-btn" title="'+translate.getText.modify+'"><i class="glyph-icon icon-typicons-pencil"></i></button>'+
|
||||
'<button class="btn btn-border btn-danger btn-xs delete-btn" title="'+translate.getText.delete+'"><i class="glyph-icon icon-trash"></i></button>'+
|
||||
'<input type="hidden" class="id" value="'+data+'" />'+
|
||||
'</div>';
|
||||
}
|
||||
}
|
||||
];
|
||||
console.log(columnsdef);
|
||||
var permissions = handleAdmin;
|
||||
|
||||
$(document).ready(function() {
|
||||
permissions.selectAll();
|
||||
$(elements.table_selector).on('draw.dt', function () {
|
||||
handleTable();
|
||||
} );
|
||||
} );
|
||||
|
||||
50
build/Admin/Auth/roles.js
Normal file
50
build/Admin/Auth/roles.js
Normal file
@@ -0,0 +1,50 @@
|
||||
var elements = {
|
||||
handle: "roles",
|
||||
model: "role",
|
||||
route: "Stack.Admin.Role",
|
||||
route_api: "Stack.Admin.API.Role",
|
||||
table_selector: "#roles_datatable",
|
||||
exist: "the_role_already_exists",
|
||||
added: "role_has_been_added",
|
||||
modified: "role_has_been_modified",
|
||||
deleted: "role_has_been_deleted"
|
||||
};
|
||||
|
||||
var columnsdef = [
|
||||
];
|
||||
|
||||
|
||||
var columns = [
|
||||
{
|
||||
"data": "translated",
|
||||
"render": function ( data, type, full, meta ) {
|
||||
if (data)
|
||||
{
|
||||
return admin_content.get_translated_names(data);
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "id",
|
||||
render: function ( data, type, row, meta ) {
|
||||
var name = eval('client_translate.getText.' + row.translated);
|
||||
return '<div class="text-center" data-id="' + data + '" data-name="' + name + '">'+
|
||||
'<button class="btn btn-border btn-yellow border-yellow btn-xs update-btn margin-right-10" title="'+translate.getText.modify+'"><i class="glyph-icon icon-typicons-pencil"></i></button>'+
|
||||
'<button class="btn btn-border btn-danger border-danger btn-xs delete-btn" title="'+translate.getText.delete+'"><i class="glyph-icon icon-trash"></i></button>'+
|
||||
'</div>';
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
var roles = handleAdmin;
|
||||
|
||||
$(document).ready(function() {
|
||||
roles.selectAll();
|
||||
$(elements.table_selector).on('draw.dt', function () {
|
||||
handleTable();
|
||||
initIcheck();
|
||||
} );
|
||||
} );
|
||||
|
||||
51
build/Admin/Auth/teams.js
Normal file
51
build/Admin/Auth/teams.js
Normal file
@@ -0,0 +1,51 @@
|
||||
var elements = {
|
||||
handle: "teams",
|
||||
model: "team",
|
||||
route: "Stack.Admin.Team",
|
||||
route_api: "Stack.Admin.API.Team",
|
||||
table_selector: "#teams_datatable",
|
||||
exist: "the_team_already_exists",
|
||||
added: "team_has_been_added",
|
||||
modified: "team_has_been_modified",
|
||||
deleted: "team_has_been_deleted"
|
||||
};
|
||||
|
||||
var columnsdef = [
|
||||
];
|
||||
|
||||
var columns = [
|
||||
{
|
||||
data: "active",
|
||||
className: 'text-center',
|
||||
"render": function ( data, type, row, meta ) {
|
||||
var checked = data ? "checked" : "";
|
||||
tpl = '<div class="text-center"><input type="checkbox"' + checked + ' data-id="' + row.id + '" class="active-checkbox" data-toggle="toggle" data-size="mini" data-width="50" data-height="25" data-onstyle="success" data-offstyle="danger"></div>';
|
||||
return tpl;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "translated",
|
||||
render: function ( data, type, full, meta ) {
|
||||
return admin_content.get_translated_names(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "id",
|
||||
render: function ( data, type, row ) {
|
||||
var name = eval('client_translate.getText.' + row.translated);
|
||||
return '<div class="text-center" data-id="' + data + '" data-name="' + name + '">'+
|
||||
'<button class="btn btn-border btn-yellow border-yellow btn-xs update-btn margin-right-10" title="'+translate.getText.modify+'"><i class="glyph-icon icon-typicons-pencil"></i></button>'+
|
||||
'<button class="btn btn-border btn-danger border-danger btn-xs delete-btn" title="'+translate.getText.delete+'"><i class="glyph-icon icon-trash"></i></button>'+
|
||||
'</div>';
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
var teams = handleAdmin;
|
||||
|
||||
$(document).ready(function() {
|
||||
teams.selectAll();
|
||||
$(elements.table_selector).on('draw.dt', function () {
|
||||
handleTable();
|
||||
} );
|
||||
} );
|
||||
347
build/Admin/Auth/users.js
Normal file
347
build/Admin/Auth/users.js
Normal file
@@ -0,0 +1,347 @@
|
||||
var elements = {
|
||||
handle: "users",
|
||||
model: "user",
|
||||
route: "Stack.Admin.User",
|
||||
route_api: "Stack.Admin.API.User",
|
||||
table_selector: "#users_datatable",
|
||||
exist: "the_user_type_already_exists",
|
||||
added: "user_has_been_added",
|
||||
modified: "user_has_been_modified",
|
||||
deleted: "user_has_been_deleted"
|
||||
};
|
||||
|
||||
var columnsdef = [
|
||||
{ orderable: false, targets: [0, 6] },
|
||||
{ responsivePriority: 1, targets: [0, 1, 6] }
|
||||
];
|
||||
|
||||
var columns = [
|
||||
{
|
||||
data: "active",
|
||||
searchable: false,
|
||||
className: 'text-center',
|
||||
render: function ( data, type, row, meta ) {
|
||||
var checked = data ? "checked" : "";
|
||||
tpl = '<div class="text-center"><input type="checkbox"' + checked + ' data-id="' + row.id + '" class="active-checkbox" data-size="mini" data-width="50" data-height="25" data-onstyle="success" data-offstyle="danger"></div>';
|
||||
return tpl;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "name",
|
||||
render: function ( data, type, row, meta ) {
|
||||
return '<button type="button" class="btn btn-round btn-border btn-info btn-xs avatar-user-btn" title="'+translate.getText.avatar+'"><i class="glyph-icon icon-elusive-camera"></i></button> ' + data;
|
||||
}
|
||||
},
|
||||
{ data: "username" },
|
||||
{ data: "email" },
|
||||
{ data: "phone" },
|
||||
{
|
||||
data: "roles",
|
||||
searchable: false,
|
||||
render: function ( data, type, row, meta ) {
|
||||
if (data) {
|
||||
tpl = '';
|
||||
for (var k in data){
|
||||
if (data.hasOwnProperty(k)) {
|
||||
tpl += data[k]['name'] + ' ';
|
||||
}
|
||||
}
|
||||
return tpl;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "id",
|
||||
render: function ( data, type, row ) {
|
||||
var name = row.name;
|
||||
tpl = '<div class="text-center" data-id="' + data + '" data-name="' + name + '">';
|
||||
tpl += '<button class="btn btn-border btn-gray btn-xs password-btn margin-right-10" title="'+translate.getText.change_password+'"><i class="glyph-icon fa fa-key"></i></button>';
|
||||
if (hasPermission('users_client')) {
|
||||
tpl += '<button class="btn btn-border btn-default border-default btn-xs manage-btn margin-right-10" title="'+translate.getText.manage+'"><i class="glyph-icon icon-file-text-o"></i></button>';
|
||||
}
|
||||
if (hasPermission('users_update')) {
|
||||
tpl += '<button class="btn btn-border btn-yellow btn-xs update-btn margin-right-10" title="'+translate.getText.modify+'"><i class="glyph-icon icon-typicons-pencil"></i></button>';
|
||||
}
|
||||
if (hasPermission('users_delete')) {
|
||||
tpl += '<button class="btn btn-border btn-danger btn-xs delete-btn margin-right-10" title="'+translate.getText.delete+'"><i class="glyph-icon fa fa-trash"></i></button>';
|
||||
}
|
||||
tpl += '</div>';
|
||||
return tpl;
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
var users = handleAdmin;
|
||||
|
||||
var users_addon = {
|
||||
avatar: null,
|
||||
upload_avatar: false,
|
||||
upload_input: null,
|
||||
passwordButtonsClick: function() {
|
||||
$('.password-btn').off('click').on('click', function() {
|
||||
var id = $(this).parent().data('id');
|
||||
var name = $(this).parent().data('name');
|
||||
users.passwordUser(id, name);
|
||||
});
|
||||
},
|
||||
avatarButtonsClick: function() {
|
||||
$('#users_datatable .avatar-user-btn').off('click').on('click', function() {
|
||||
var id = $(this).parent().data('id');
|
||||
var name = $(this).parent().data('name');
|
||||
users.avatarUser(id, name);
|
||||
});
|
||||
},
|
||||
generatePassword: function(elt) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
url: laroute.route("Stack.Admin.API.User.generateUserPassword"),
|
||||
success: function(response) {
|
||||
elt.val(response.pwd);
|
||||
},
|
||||
error: function() {
|
||||
admin_content.alertError();
|
||||
}
|
||||
});
|
||||
},
|
||||
initAvatarUploader: function() {
|
||||
users.upload_input = $("#avatar_file").filer({
|
||||
showThumbs: true,
|
||||
addMore: true,
|
||||
allowDuplicates: false,
|
||||
limit: 1,
|
||||
maxSize: 5,
|
||||
extensions: [ 'jpg' ],
|
||||
uploadFile: {
|
||||
url: laroute.route("Stack.Admin.API.User.uploadAvatar"),
|
||||
data: { "extension": 'jpg' },
|
||||
type: 'POST',
|
||||
enctype: 'multipart/form-data',
|
||||
synchron: true,
|
||||
success: function(data, itemEl, listEl, boxEl, newInputEl, inputEl, id){
|
||||
var parent = itemEl.find(".jFiler-jProgressBar").parent(),
|
||||
new_file_name = JSON.parse(data),
|
||||
filerKit = inputEl.prop("jFiler");
|
||||
|
||||
filerKit.files_list[id].name = new_file_name;
|
||||
|
||||
itemEl.find(".jFiler-jProgressBar").fadeOut("slow", function(){
|
||||
$("<div class=\"jFiler-item-others text-success\"><i class=\"icon-jfi-check-circle\"></i> Success</div>").hide().appendTo(parent).fadeIn("slow");
|
||||
});
|
||||
|
||||
$("#avatar_file_hidden").val(new_file_name);
|
||||
},
|
||||
error: function(el){
|
||||
var parent = el.find(".jFiler-jProgressBar").parent();
|
||||
el.find(".jFiler-jProgressBar").fadeOut("slow", function(){
|
||||
$("<div class=\"jFiler-item-others text-error\"><i class=\"icon-jfi-minus-circle\"></i> Error</div>").hide().appendTo(parent).fadeIn("slow");
|
||||
});
|
||||
},
|
||||
statusCode: null,
|
||||
onProgress: null,
|
||||
onComplete: null
|
||||
},
|
||||
files: null,
|
||||
clipBoardPaste: true,
|
||||
excludeName: null,
|
||||
beforeRender: null,
|
||||
afterRender: null,
|
||||
beforeShow: null,
|
||||
beforeSelect: null,
|
||||
onSelect: null,
|
||||
afterShow: null,
|
||||
onRemove: function(itemEl, file, id, listEl, boxEl, newInputEl, inputEl){
|
||||
var filerKit = inputEl.prop("jFiler"),
|
||||
file_name = filerKit.files_list[id].name;
|
||||
|
||||
$.post(laroute.route('Stack.Admin.API.User.removeAvatar'), {file: file_name});
|
||||
},
|
||||
onEmpty: null,
|
||||
options: null,
|
||||
dialogs: {
|
||||
alert: function(text) {
|
||||
$.alert({
|
||||
title: translate.getText.informations,
|
||||
type: 'red',
|
||||
content: text,
|
||||
});
|
||||
},
|
||||
confirm: function (text, callback) {
|
||||
$.confirm({
|
||||
title: translate.getText.informations,
|
||||
type: 'red',
|
||||
content: text,
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: translate.getText.confirm,
|
||||
btnClass: 'btn-danger',
|
||||
action: function(){
|
||||
callback()
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
text: translate.getText.cancel
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
captions: {
|
||||
button: translate.getText.choose_file,
|
||||
feedback: "",
|
||||
feedback2: translate.getText.selected_files,
|
||||
removeConfirmation: translate.getText.are_you_sure_you_want_to_remove_this_file,
|
||||
errors: {
|
||||
filesLimit: translate.getText.file_number_authorized + ": {{fi-limit}}",
|
||||
filesType: translate.getText.file_extension_authorized + ": .{{fi-extensions}}",
|
||||
filesSize: translate.getText.file_max_size_authorized + ": {{fi-maxSize}} MB."
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
avatarUser: function(id, name) {
|
||||
$.confirm({
|
||||
title: translate.getText.avatar,
|
||||
columnClass: 'small',
|
||||
content: function () {
|
||||
var self = this;
|
||||
return $.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
url: laroute.route("Stack.Admin.API.User.getAvatar"),
|
||||
data: { 'id': id },
|
||||
}).done(function (response) {
|
||||
|
||||
if (response.error == -1) {
|
||||
header.logout();
|
||||
} else if (response.avatar == "") {
|
||||
self.setContent('<div><i class="glyph-icon fa fa-caret-right margin-left-15 margin-right-5"></i><i class="text-blue">'+name+'</i></div><hr class="margin-top-10 margin-bottom-10"><div class="text-center padding-top-10" id="avatar_upload"><input type="file" name="files[]" id="avatar_file" /><input type="hidden" id="avatar_file_hidden" name="avatar_file" value="NULL" class="form-control" /></div>');
|
||||
users.upload_avatar = true;
|
||||
} else {
|
||||
self.setContent('<div><i class="glyph-icon fa fa-caret-right margin-left-15 margin-right-5"></i><i class="text-blue">'+name+'</i></div><hr class="margin-top-10 margin-bottom-10"><div class="text-center padding-top-10" id="avatar_upload"><img src="'+response.avatar+'" /><br><button type="button" id="delete_avatar" class="btn btn-danger margin-top-10">'+translate.getText.delete+'</button></div>');
|
||||
users.upload_avatar = false;
|
||||
}
|
||||
|
||||
}).fail(function(){
|
||||
self.setContent(translate.getText.an_error_occured);
|
||||
});
|
||||
},
|
||||
typeAnimated: true,
|
||||
onContentReady: function() {
|
||||
$("#delete_avatar").off('click').on('click', function(){
|
||||
$("#avatar_upload").html('<input type="file" name="files[]" id="avatar_file" /><input type="hidden" id="avatar_file_hidden" name="avatar_file" class="form-control" />');
|
||||
users.upload_avatar = true;
|
||||
users.initAvatarUploader();
|
||||
});
|
||||
|
||||
if (users.upload_avatar) {
|
||||
users.initAvatarUploader();
|
||||
}
|
||||
},
|
||||
type: 'blue',
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: translate.getText.validate,
|
||||
btnClass: 'btn-blue',
|
||||
action: function(){
|
||||
if($('#novation_select').val() == '') {
|
||||
admin_content.alertCustomError('please_select_third_party');
|
||||
} else {
|
||||
var datas = {};
|
||||
datas['ujcaid'] = id;
|
||||
datas["ujcafile"] = $('#avatar_file_hidden').val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
url: laroute.route("Stack.Admin.API.User.updateAvatar"),
|
||||
data: datas,
|
||||
success: function(response) {
|
||||
if (response.error == -1) {
|
||||
header.logout();
|
||||
} else if(response.error == -6) {
|
||||
admin_content.alertNotFound();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
admin_content.alertError();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
text: translate.getText.cancel
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
passwordUser: function(id, name) {
|
||||
|
||||
$.confirm({
|
||||
title: translate.getText.change_password,
|
||||
columnClass: 'small',
|
||||
content: '<div class="margin-top-3"><i class="glyph-icon fa-caret-right margin-left-10 margin-right-5"></i><i class="">'+name+'</i><div><div class="input-group"><input type="text" name="password" id="update_password" maxlength="32" class="form-control"><span class="input-group-addon pointer" id="user_password_regenerate"><i class="glyph-icon fa fa-lock"></i></span></div></div></div>',
|
||||
typeAnimated: true,
|
||||
type: 'dark',
|
||||
animation: 'RotateXR',
|
||||
onContentReady: function() {
|
||||
$("#user_password_regenerate").off('click').on('click', function(){
|
||||
event.preventDefault();
|
||||
users.generatePassword($("#update_password"));
|
||||
});
|
||||
},
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: translate.getText.confirm,
|
||||
btnClass: 'btn-dark',
|
||||
action: function() {
|
||||
if ($("#update_password").val() == "") {
|
||||
return false;
|
||||
} else {
|
||||
var datas = {};
|
||||
datas['id'] = id;
|
||||
datas['password'] = $("#update_password").val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
url: laroute.route("Stack.Admin.API.User.updatePassword"),
|
||||
data: datas,
|
||||
success: function(response) {
|
||||
if (response.error == -1) {
|
||||
header.logout();
|
||||
} else if(response.error == -6) {
|
||||
admin_content.alertNotFound();
|
||||
} else if(response.error == -7) {
|
||||
admin_content.alertCustomError('the_password_must_have_at_least_six_characters');
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
admin_content.alertError();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
text: translate.getText.cancel
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
users = {...users, ...users_addon };
|
||||
|
||||
$(document).ready(function() {
|
||||
users.selectAll();
|
||||
$(elements.table_selector).on('draw.dt', function () {
|
||||
handleTable();
|
||||
initIcheck();
|
||||
users.passwordButtonsClick();
|
||||
users.avatarButtonsClick();
|
||||
} );
|
||||
} );
|
||||
Reference in New Issue
Block a user