Файл: js/main.js
Строк: 339
<?php
// JavaScript Document
/***
* BxSlider v4.2.3 - Fully loaded, responsive content slider
* http://bxslider.com
*
* Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
* Written while drinking Belgian ales and listening to jazz
*
* Released under the MIT license - http://opensource.org/licenses/MIT
***/
$(function() {
$("table").removeClass("items");
$("table").addClass("main-table");
//Переменные
var $formStyled = $('.styled'),
$popupInit = $(".popup-open"),
$datepickerFrom = $(".datepicker"),
$flyValidation = $('.fly-validation'),
$sliderInit = $('.bxslider');
//$('.fly-validation input[name=tel]').mask('+9 (999) 999-99-99');
//form styler
if($formStyled.length){
$formStyled.styler();
}
if($sliderInit.length){
$('#reg-slider').bxSlider({
controls: false,
mode: "fade"
});
}
//datepicker
if($datepickerFrom.length){
$datepickerFrom.datepicker({
defaultDate: "+1w",
changeYear: true,
showOtherMonths: true,
dateFormat: "dd.mm.yy",
onSelect: function( selectedDate ) {
$('input[name=date]').removeClass('error');
}
});
}
//Open popup
$popupInit.on("click touchstart", function() {
var $this = $(this),
thisHref = $this.attr('href');
if($this.is('.edit')){
var $row = $this.closest('.edit-row'),
rowId = $row.attr('id'),
$editable = $row.find('.editable');
}
if($this.is('.edit-list')){
var $editForm = $this.closest('.edit-form'),
$row = $editForm.find('.edit-row'),
rowId = $row.attr('id'),
$editable = $row.find('.editable');
}
$.fancybox({
href: thisHref,
padding : 0,
closeBtn: true,
'scrolling' : 'visible',
beforeShow : function(){
$(".fancybox-wrap").addClass("fancybox-custom");
},
afterShow : function(){
if($this.is('.edit') || $this.is('.edit-list') ){
for(var i=0;i<$editable.length;i++){
var data = [],
content = [],
itemName = $editable.eq(i).attr('rel'),
itemContent = $editable.eq(i).html();
data[i] = itemName;
content[i] = itemContent;
if($editable.eq(i).is('.static')) {
$(thisHref).attr('rel', rowId).find("[class='"+data[i]+"']").html(itemContent);
}else {
$(thisHref).attr('rel', rowId).find("[name='"+data[i]+"']").val(itemContent);
}
if($editable.eq(i).is('.permis')) {
var permis = $editable.eq(i).attr('data');
$(thisHref).attr('rel', rowId).find("select option[value="+permis+"]").prop("selected", true);
if(permis == 1 || permis == 2){
$('.access-options').stop(true,true).slideDown(300);
}
}
if($editable.eq(i).is('.typeAccess')) {
var permis = $editable.eq(i).attr('data');
$(thisHref).attr('rel', rowId).find("select option[value="+permis+"]").prop("selected", true);
$('.access-tab').css('display','none');
$('#'+permis).stop(true,true).slideDown(300);
}
}
}
$formStyled.trigger('refresh');
},
afterClose : function(){
$('.access-options').stop(true,true).delay(500).slideUp(0);
}
});
return false
});
//Delete table row
var $deleteRow = $('.function-delete > a'),
$deleteRowConfirm = $('.function-delete-confirm a');
$deleteRow.on("click touchstart", function() {
var $this = $(this),
$delete = $this.closest('.function-delete'),
$confirm = $delete.next('.function-delete-confirm');
$delete.css('display', 'none');
$confirm.css('display', 'block');
return false
});
$deleteRowConfirm.on("click touchstart", function(e) {
var $clicked = $(e.target),
$this = $(this),
$confirm = $this.closest('.function-delete-confirm'),
$delete = $confirm.prev('.function-delete'),
deleteRow = $this.closest('.popup').attr('rel');
if($clicked.is('.btn')) {
$('#'+deleteRow).remove();
$.fancybox.close();
$('body').append('<div class="sepia"><div class="sepia-table"><div class="sepia-td"><div class="sepia-text">Данные удалены<a class="close">close</a></div></div></div></div>');
$('.sepia')
.stop(true,true)
.delay(500)
.animate({
opacity: 0
}, 700, function() {
$('.sepia').remove();
$delete.css('display', 'block');
$confirm.css('display', 'none');
});
}else {
$delete.css('display', 'block');
$confirm.css('display', 'none');
}
return false
});
//validation rules
$.validator.addMethod(
"dateDECH",
function(value, element) {
var check = false;
var re = /^d{1,2}.d{1,2}.d{4}$/;
if( re.test(value)){
var adata = value.split('.');
var dd = parseInt(adata[0],10);
var mm = parseInt(adata[1],10);
var yyyy = parseInt(adata[2],10);
var xdata = new Date(yyyy,mm-1,dd);
if ( ( xdata.getFullYear() === yyyy ) && ( xdata.getMonth () === mm - 1 ) && ( xdata.getDate() === dd ) ) {
check = true;
}
else {
check = false;
}
} else {
check = false;
}
return this.optional(element) || check;
},
"Укажите дату"
);
$.validator.addMethod("valueNotEquals", function(value, element, arg){
return arg != value;
}, "Value must not equal arg.");
jQuery.extend(jQuery.validator.messages, {
equalTo: "Пароль не совпадает"
});
for(var i=0;i<$flyValidation.length;i++){
var flyValidationId = $flyValidation.eq(i).attr('id');
$('#'+flyValidationId).validate({
rules:{
name:{
required: true,
minlength: 2,
maxlength: 30
},
theme:{
required: true,
minlength: 2,
maxlength: 30
},
address:{
required: true,
minlength: 10,
maxlength: 50
},
cityText:{
required: true,
minlength: 2,
maxlength: 50
},
company:{
required: true,
minlength: 10,
maxlength: 50
},
tel:{
required: true,
minlength: 10,
maxlength: 50
},
date:{
dateDECH: true
},
description:{
required: true,
minlength: 2,
maxlength: 255,
},
email:{
required: true,
email: true,
minlength: 6,
maxlength: 50,
},
password:{
required: true,
minlength: 6,
maxlength: 16,
},
password_again: {
required: true,
minlength: 6,
maxlength: 16,
equalTo : "#password"
},
city: {
valueNotEquals: "-1"
},
group: {
valueNotEquals: "-1"
},
status: {
valueNotEquals: "-1"
},
responsible: {
valueNotEquals: "-1"
},
source: {
valueNotEquals: "-1"
},
category: {
valueNotEquals: "-1"
},
type: {
valueNotEquals: "-1"
},
products: {
valueNotEquals: "-1"
},
priority: {
valueNotEquals: "-1"
},
target: {
valueNotEquals: "-1"
},
relations: {
valueNotEquals: "-1"
},
},
messages:{
name:{
required: "Введите имя",
minlength: "Имя должено быть минимум 2 символа",
maxlength: "Максимальное число символов - 30",
},
company:{
required: "Введите название компании",
minlength: "Название компании должено быть минимум 2 символа",
maxlength: "Максимальное число символов - 30",
},
address:{
required: "Введите имя",
minlength: "Имя должено быть минимум 2 символа",
maxlength: "Максимальное число символов - 30",
},
theme:{
required: "Введите тему",
minlength: "Тема должена быть минимум 2 символа",
maxlength: "Максимальное число символов - 30",
},
description:{
required: "Введите описание",
minlength: "Описание должено быть минимум 2 символа",
maxlength: "Максимальное число символов - 255",
},
email:{
required: "Введите email",
minlength: "Email должен быть минимум 6 символов",
maxlength: "Максимальное число символов - 50",
},
password:{
required: "Введите пароль",
minlength: "Хороший пароль: не менее 8 символов, числа и буквы.",
maxlength: "Максимальное число символов - 16",
},
password_again: {
required: "Введите пароль",
minlength: "Хороший пароль: не менее 8 символов, числа и буквы.",
maxlength: "Максимальное число символов - 16",
},
}
});
}
//Submit with validation
$flyValidation.submit(function() {
var $this = $(this);
$formStyled.trigger('refresh');
if($this.valid()){
//If for in popup
if($this.parents().is('.popup')){
var $popup = $this.closest('.popup'),
rowId = $popup.attr('rel'),
$editable = $popup.find('.editable');
console.log(rowId);
for(var i=0;i<$editable.length;i++){
var data = [],
content = [],
itemData = $editable.eq(i).attr('name'),
itemContent = $editable.eq(i).val();
data[i] = itemData;
content[i] = itemContent;
console.log($editable.eq(i));
if($editable.eq(i).is('.typeAccess')){
var selected = '';
selected = $editable.eq(i).find('option:selected').html();
$('#'+rowId).find(".editable[rel="+data[i]+"]").html(selected);
}else{
$('#'+rowId).find(".editable[rel="+data[i]+"]").html(content[i]);
}
}
$.fancybox.close();
$('body').append('<div class="sepia"><div class="sepia-table"><div class="sepia-td"><div class="sepia-text">Данные сохранены<a class="close">close</a></div></div></div></div>');
$('.sepia')
.stop(true,true)
.delay(500)
.animate({
opacity: 0,
}, 700, function() {
$('.sepia').remove();
});
}
}
return false
});
//Delete error on select if change
$('select.styled').on("change", function(){
var $this = $(this),
selected = $this.find('option:selected').val();
if(selected != -1){
$formStyled.trigger('refresh');
}
if($this.is('.permis')){
console.log('permis');
if(selected == 3){
$('.access-options').stop(true,true).slideUp(300);
}
if(selected == 1 || selected == 2){
$('.access-options').stop(true,true).slideDown(300);
}
}
if($this.is('.typeAccess')){
console.log('type');
$('.access-tab').css('display','none');
$('#'+selected).stop(true,true).slideDown(300);
}
});
//Options settings nav
var $headerOptions = $('.header-options'),
$headerOptionsLink = $headerOptions.find('> a');
//Open, Close on click touch
$headerOptionsLink.on("click touchstart", function() {
$headerOptions.toggleClass('open');
return false
});
//Close on click touch
$(document).on("click touchstart", function(e) {
var $clicked = $(e.target);
if(!$clicked.parents().is($headerOptions)){
$headerOptions.removeClass('open');
}
});
//help dropdown
var $helpDropdown = $('.help-dropdown'),
$helpDropdownDt = $helpDropdown.find('.dt'),
$helpDropdownDd = $helpDropdown.find('.dd');
if($helpDropdown.is('.open')){
$helpDropdownDd.stop(true,true).slideDown(300);
}
//Open, Close on click touch
$helpDropdownDt.on("click touchstart", function() {
var $this = $(this),
$helpDropdown = $this.closest('.help-dropdown'),
$helpDropdownDd = $helpDropdown.find('.dd');
$this.toggleClass('open');
$helpDropdownDd.stop(true,true).slideToggle(300);
});
//popup edit email,password
var $editLink = $('.edit-link');
$editLink.on("click touchstart", function() {
var $this = $(this),
$popup = $this.closest('.popup'),
$desiredHeight = $this.parent('.form-group'),
boxId =$this.attr('href'),
boxHeight = $(boxId).height(),
btnTop = $this.offset().top,
popupTop = $popup.offset().top,
desiredTop = btnTop - popupTop;
if(!$this.is('.open')){
$this.addClass('open');
$desiredHeight.css('margin-bottom',boxHeight+'px');
$(boxId).css('top',desiredTop+18+'px').stop(true,true).slideDown(0);
}else{
$this.removeClass('open');
$desiredHeight.css('margin-bottom','0');
$(boxId).css('top','0').stop(true,true).slideUp(0);
}
return false
});
});//end ready
?>