Электронная библиотека » Тимур Машнин » » онлайн чтение - страница 18


  • Текст добавлен: 16 октября 2020, 07:59


Автор книги: Тимур Машнин


Жанр: Компьютеры: прочее, Компьютеры


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 18 (всего у книги 20 страниц)

Шрифт:
- 100% +

<link href=«css/datepicker. css» rel=«stylesheet»>

<! – Editor – >

<script src="//cdn.tinymce.com/4/tinymce. min. js»> </script>

<script>tinymce.init ({selector: «#editor’}); </script>


</head>

<body>

<div id=«wrapper»>

<! – Navigation – >

<nav class=«top1 navbar navbar-default navbar-static-top» role=«navigation» style=«margin-bottom: 0»>

<div class=«navbar-header»>

<button type=«button» class=«navbar-toggle» data-toggle=«collapse» data-target=".navbar-collapse»>

<span class=«sr-only»> Toggle navigation </span>

<span class=«icon-bar»> </span>

<span class=«icon-bar»> </span>

<span class=«icon-bar»> </span>

</button>

<a class=«navbar-brand» href=«#»> Архив Описаний </a>

</div>

<! – /.navbar-header – >


<div class=«navbar-default sidebar» role=«navigation»>

<div class=«sidebar-nav navbar-collapse»>

<img src="img/logo.png» />

<ul class=«nav» id=«side-menu»>

<li>

<a href="index.html»> <i class=«fa fa-dashboard fa-fw nav_icon»> </i> Dashboard </a>

</li>

<li>

<a href=«#»> <i class=«fa fa-users»> </i> Сотрудники <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="groups-list.html»> Группы </a>

</li>

<li>

<a href="users-list.html»> Общий список </a>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-truck»> </i> Маршрут <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="route.html»> Выбрать маршрут </a>

</li>

<li>

<a href=«#»> Маршруты <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-routes.html»> Новые </a>

</li>

<li>

<a href="old-routes.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-file»> </i> Задание <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="task.html»> Создать задание </a>

</li>

<li>

<a href=«#»> Задания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-tasks.html»> Новые </a>

</li>

<li>

<a href="old-tasks.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-file-text»> </i> Текст задания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="desc.html»> Создать описание </a>

</li>

<li>

<a href=«#»> Описания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-descs.html»> Новые </a>

</li>

<li>

<a href="old-descs.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-android»> </i> Мобильные приложения </a>


</li>


</ul>

</div>

<! – /.sidebar-collapse – >

</div>

<! – /.navbar-static-side – >

</nav>

<div id=«page-wrapper»>

<div class=«graphs»>

<div class = «col_3»>


<textarea id=«editor»> Текст… </textarea>

<button id=«btn-editor» type=«button» class=«btn btn-primary»> Сохранить </button>


<script>

$ («#btn-editor» ).click (function () {

var desc = tinyMCE.get('editor').getContent ({format: 'text'}).replace (/'|"/g,»&quot;»);


var url = 'http://buisness-control.appspot.com/putdesc/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

desc: desc,

state:’new’,

date: (new Date()).toLocaleString ()

},

async: false,

jsonpCallback: ’putDesc’,

contentType: ’application/json’,

dataType: ’jsonp’,

success: function (json) {

location.reload ();

}

});


});

</script>


<div class=«clearfix»> </div>

</div>


<div class=«col_1»>

<div class=«col-md-6»>

<div class=«refresh» style=«cursor: pointer; margin-left:22%"> <i class=«fa fa-refresh»> </i> </div>

<div class=«datepicker»> </div>


<script type=«text/javascript»>

var dp = $ (». datepicker’).datepicker ({

language: «ru-RU»

});

$ (".refresh» ).click (function () {

dp. datepicker (’update’);

});

dp. on (’changeDate’, function (ev) {


});

</script>


</div>

<div class=«clearfix»> </div>

</div>


<div class=«span_11»>

<div class=«col-md-12»>

<div class=’row’>

<div class=’col-sm-4»>

<button type=’button’ class=’btn btn-primary btn-mapUpdate’> Обновить карту </button>

</div>

</div>

<div id=«map» style=«height:500px;"> </div>


<script>

var map;

function initMap () {

map = new google.maps.Map(document.getElementById (’map’), {

zoom: 15

});

var infoWindow = new google.maps.InfoWindow ({map: map});


if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition (function (position) {

var pos = {

lat: position.coords.latitude,

lng: position.coords. longitude

};

infoWindow.setPosition (pos);

map.setCenter (pos);

}, function () {

handleLocationError (true, infoWindow, map.getCenter ());

});

} else {

// Browser doesn’t support Geolocation

handleLocationError (false, infoWindow, map.getCenter ());

}


}


function handleLocationError (browserHasGeolocation, infoWindow, pos) {

infoWindow.setPosition (pos);

infoWindow.setContent (browserHasGeolocation?

«Error: The Geolocation service failed.» :

«Error: Your browser doesn’t support geolocation.»);

}


</script>


<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCb9Iir38HyF_E3_hmf3mHHum_tJbgvjXs&callback=initMap"

async defer> </script>


<script>

var url = 'http://buisness-control.appspot.com/descs/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

state:’old’

},

async: true,

jsonpCallback: ’getNewDescs’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

var items = [];

$.each (json.descs, function (key, val) {


items. push (» <a href=«#» class=’list-group-item’ data-toggle=’collapse’ data-target=«#» + val.date.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «»>" + val. date + «</a> <div id=„“ + val.date.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «» class='collapse'>»+val.desc+"<div class=’row’> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-primary btn-ed’ data-date=«»+val. date+«» data-desc='"+val.desc+«»> Редактировать </button> </div> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-primary btn-state’ data-date=«»+val. date+«»> Новое описание </button> </div> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-danger btn-del’ data-date=«»+val. date+«»> Удалить </button> </div> </div> </div>»);


});


$ (» <div/>», {

«class»: «list-group»,

html: items.join (»»)

}).prependTo (".col_3»);


$ (".btn-ed» ).click (function () {

var desc = $(this).attr (’data-desc’);

tinyMCE.get('editor').setContent (desc);

});


$ (".btn-state» ).click (function () {

var date = $(this).attr (’data-date’);


var url = 'http://buisness-control.appspot.com/putdescstate/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

state:’new’,

date: date

},

async: false,

jsonpCallback: ’putDescState’,

contentType: ’application/json’,

dataType: ’jsonp’,

success: function (json) {

location.reload ();

}

});


});


$ (".btn-del» ).click (function () {

var date = $(this).attr (’data-date’);


var url = 'http://buisness-control.appspot.com/deletedesc/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

date: date

},

async: false,

jsonpCallback: ’deleteDesc’,

contentType: ’application/json’,

dataType: ’jsonp’,

success: function (json) {

location.reload ();

}

});


});

}

});

</script>


</div>

<div class=«clearfix»> </div>

</div>


<script>

var url = 'http://buisness-control.appspot.com/tracks/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {


},

async: true,

jsonpCallback: ’getTracks’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

$.each (json.tracks, function (key, val) {

var name = val.name;

var track = val.track;

$.each (track, function (key, val) {

var account=val.account;

var latLng =new google.maps.LatLng(val.lat, val. lng);

var marker = new google.maps.Marker ({

position: latLng,

title: name+" "+account,

map: map

});

map.setCenter (latLng);

map.setZoom (15);

});


});


}

});


$ (".btn-mapUpdate» ).click (function () {

$.ajax ({

type: «GET»,

url: url,

data: {


},

async: true,

jsonpCallback: ’getTracks’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

$.each (json.tracks, function (key, val) {

var name = val.name;

var track = val.track;

$.each (track, function (key, val) {

var account=val.account;

var latLng =new google.maps.LatLng(val.lat, val. lng);

var marker = new google.maps.Marker ({

position: latLng,

title: name+" "+account,

map: map

});

map.setCenter (latLng);

map.setZoom (15);

});


});


}

});

});

</script>


<div class=«copy»>

<p> Copyright &copy; 2015 TM SoftStudio </p>

</div>

</div>

</div>

<! – /#page-wrapper – >

</div>

<! – /#wrapper – >

<! – Bootstrap Core JavaScript – >

<script src=«js/bootstrap. min. js»> </script>

</body>

</html>



Страница «Новое Задание» позволяет скопмоновать задание из текстового описания и маршрута, прикрепив к нему сотрудников.

<!DOCTYPE HTML>

<html>

<head>

<title> Business Control </title>

<meta name=«viewport» content=«width=device-width, initial-scale=1»>

<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8» />

<script type=«application/x-javascript»> addEventListener («load», function () {setTimeout (hideURLbar, 0);}, false); function hideURLbar () {window.scrollTo (0,1);} </script>

<! – Bootstrap Core CSS – >

<link href=«css/bootstrap. min. css» rel=’stylesheet’ type=’text/css’ />

<! – Custom CSS – >

<link href=«css/style. css» rel=’stylesheet’ type=’text/css’ />

<link href=«css/font-awesome. css» rel=«stylesheet»>

<! – jQuery – >

<script src=«js/jquery. min. js»> </script>

<! – – webfonts – ->

<link href='//fonts.googleapis.com/css? family=Roboto:400,100,300,500,700,900» rel=’stylesheet’ type=’text/css’>

<! – Nav CSS – >

<link href=«css/custom. css» rel=«stylesheet»>

<! – Metis Menu Plugin JavaScript – >

<script src=«js/metisMenu. min. js»> </script>

<script src=«js/custom. js»> </script>

<! – Calendar – >

<script type=«text/javascript» src=«js/bootstrap-datepicker. js»> </script>

<script type=«text/javascript» src="js/bootstrap-datepicker.ru.js» charset=«UTF-8»> </script>

<link href=«css/datepicker. css» rel=«stylesheet»>


</head>

<body>

<div id=«wrapper»>

<! – Navigation – >

<nav class=«top1 navbar navbar-default navbar-static-top» role=«navigation» style=«margin-bottom: 0»>

<div class=«navbar-header»>

<button type=«button» class=«navbar-toggle» data-toggle=«collapse» data-target=".navbar-collapse»>

<span class=«sr-only»> Toggle navigation </span>

<span class=«icon-bar»> </span>

<span class=«icon-bar»> </span>

<span class=«icon-bar»> </span>

</button>

<a class=«navbar-brand» href=«»> Новое задание </a>

</div>

<! – /.navbar-header – >


<div class=«navbar-default sidebar» role=«navigation»>

<div class=«sidebar-nav navbar-collapse»>

<img src="img/logo.png» />

<ul class=«nav» id=«side-menu»>

<li>

<a href="index.html»> <i class=«fa fa-dashboard fa-fw nav_icon»> </i> Dashboard </a>

</li>

<li>

<a href=«#»> <i class=«fa fa-users»> </i> Сотрудники <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="groups-list.html»> Группы </a>

</li>

<li>

<a href="users-list.html»> Общий список </a>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-truck»> </i> Маршрут <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="route.html»> Выбрать маршрут </a>

</li>

<li>

<a href=«#»> Маршруты <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-routes.html»> Новые </a>

</li>

<li>

<a href="old-routes.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-file»> </i> Задание <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="task.html»> Создать задание </a>

</li>

<li>

<a href=«#»> Задания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-tasks.html»> Новые </a>

</li>

<li>

<a href="old-tasks.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-file-text»> </i> Текст задания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="desc.html»> Создать описание </a>

</li>

<li>

<a href=«#»> Описания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-descs.html»> Новые </a>

</li>

<li>

<a href="old-descs.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-android»> </i> Мобильные приложения </a>


</li>


</ul>

</div>

<! – /.sidebar-collapse – >

</div>

<! – /.navbar-static-side – >

</nav>

<div id=«page-wrapper»>

<div class=«graphs»>


<div class = «col_3»>


<style type=«text/css»>

input {

outline: 1px solid lightgreen;

}

</style>


<! – Task – >

<form role=«form»>

<div class=«form-group»>

<label for=«task-name»> <h3> <span class=«label label-success»> Название: </span> </h3> </label>

<input type=«text» class=«form-control» id=«task-name»>

</div>

<div class=«form-group»>

<label for=«task-date»> <h3> <span class=«label label-success»> Дата: </span> </h3> </label>

<input type=«text» class=«form-control» id=«task-date»>

</div>

<div class=«form-group»>

<div class=«refresh» style=«cursor: pointer; margin-left:22%"> <i class=«fa fa-refresh»> </i> </div>

<div class=«datepicker»> </div>


<script type=«text/javascript»>

var dp = $ (». datepicker’).datepicker ({

language: «ru-RU»

});

$ (".refresh» ).click (function () {

dp. datepicker (’update’);

});

dp. on (’changeDate’, function (ev) {

$('#task-date').val(ev.date.toISOString().substring (0, 10));

});

</script>


</div>

<div class=«form-group»>

<label for=«task-user»> <h3> <span class=«label label-success»> Выбрать группу или сотрудника: </span> </h3> </label>


<div id=«task-user» class=«col_1»>


<div class=«clearfix»> </div>

</div>


</div>


<div class=«form-group»>

<label for=«task-desc»> <h3> <span class=«label label-success»> Выбрать описание задания: </span> </h3> </label>


<div id=«task-desc» class=«col_1»>


<div class=«clearfix»> </div>

</div>


</div>


<div class=«form-group»>

<label for=«task-route»> <h3> <span class=«label label-success»> Выбрать маршрут: </span> </h3> </label>


<div id=«task-route» class=«col_1»>


<div class=«clearfix»> </div>

</div>


</div>


<button id=«task-submit» class=«btn btn-primary»> Сохранить </button>


</form>


<script type=«text/javascript»>

$ (document ).ready (function () {


var url = 'http://buisness-control.appspot.com/groupslist/?callback=?';


$.ajax ({

type: «GET»,

url: url,

async: true,

jsonpCallback: ’getGroups’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

var items = [];

$.each (json.groups, function (key, val) {


var arrayName=Object.keys(json.groups[key]).toString ();


var subitems = [];


$.each (val [arrayName], function (subkey, subval) {

subitems. push (» <a href=«#task-user’ class=’list-group-item’ data-toggle=’collapse’ data-target=«#» + subval.account.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «»> <input type=’checkbox’ value=«» class=’task-checkbox task-checkbox-user’ data-user='"+subval.account+«»> " + subval.account + "</a> <div id=«» + subval.account.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «» class=’collapse’> <div class=’row’> <div class=’col-sm-6»> Имя </div> <div class='col-sm-6'>"+subval.firstName+"</div> </div> <div class=’row’> <div class=’col-sm-6»> Фамилия </div> <div class='col-sm-6'>"+subval.secondName+"</div> </div> <div class=’row’> <div class=’col-sm-6»> Телефон </div> <div class='col-sm-6'>"+subval.phone+"</div> </div> <div class=’row’> <div class=’col-sm-6»> Должность </div> <div class=’col-sm-6»>"+subval. position+"</div> </div> </div>»);

});


items. push (» <div> <a href=«#task-user’ class=’list-group-item’ data-toggle=’collapse’ data-target=„#“ + arrayName.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «»> <input type=’checkbox’ value=«» class=’task-checkbox task-checkbox-group’> Группа: « + Object.keys(json.groups [key]) + „</a> <div id=„“ + arrayName.replace (/ [.,:,/,, (,),=,?, -,@] /g,“») + «» class='collapse'>»+subitems.join (»») +»</div> </div>»);

});


$ (» <div/>», {

«class»: «list-group»,

html: items.join (»»)

}).appendTo («#task-user»);


$('.task-checkbox-group').change (function () {

if ($(this).is (»: checked’)) {

$(this).parent().closest('div').find(".task-checkbox-user").prop (’checked’, true);

} else {

$(this).parent().closest('div').find(".task-checkbox-user").prop (’checked’, false);

}

});


}

});


$ («#task-submit» ).click (function () {


var name=$('#task-name').val ();

var date=$('#task-date').val ();


var users = [];


$ (». task-checkbox-user’).each (function () {

if ($(this).is (»: checked’)) {

users.push($(this).attr (’data-user’));

}

});


var descs = [];


$ (». task-checkbox-desc’).each (function () {

if ($(this).is (»: checked’)) {

descs.push($(this).attr (’data-desc’));

}

});


var routes = [];


$ (». task-checkbox-route’).each (function () {

if ($(this).is (»: checked’)) {

var route = jQuery.parseJSON($(this).attr (’data-route’));

routes. push (route);

}

});


if (!confirm («Название „+name+“nДата „+date+“nСотрудники „+users+“nОписание „+descs+“nМаршрут "+JSON.stringify (routes) +„“)) {

return false;

}


var url = 'http://buisness-control.appspot.com/puttask/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

«name»: name,

«date»: date,

«users»: JSON.stringify (users),

«descs»: JSON.stringify (descs),

«routes»: JSON.stringify (routes)

},

async: false,

jsonpCallback: ’putTask’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

$("#profile").modal («hide»);

location.reload ();

}

});


});


});


</script>


<script>

var url = 'http://buisness-control.appspot.com/descs/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

state:’new’

},

async: true,

jsonpCallback: ’getNewDescs’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

var items = [];

$.each (json.descs, function (key, val) {


items. push (» <a href=«#task-desc’ class=’list-group-item’ data-toggle=’collapse’ data-target=„#“ + val.date.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «»> <input type=’checkbox’ value=«» class=’task-checkbox task-checkbox-desc’ data-desc='"+val.desc+«»> « + val. date + „</a> <div id=„“ + val.date.replace (/ [.,:,/,, (,),=,?, -,@] /g,“») + «» class='collapse'>»+val.desc+»</div>»);


});


$ (» <div/>», {

«class»: «list-group»,

html: items.join (»»)

}).appendTo («#task-desc»);


}

});

</script>


<div class=«clearfix»> </div>

</div>


<div class=«col_1»>


<div class=«clearfix»> </div>

</div>


<div class=«span_11»>

<div class=«col-md-12»>

<div id=«map» style=«height:500px;"> </div>


<script>

var map;

function initMap () {

map = new google.maps.Map(document.getElementById (’map’), {

zoom: 15

});

var infoWindow = new google.maps.InfoWindow ({map: map});


if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition (function (position) {

var pos = {

lat: position.coords.latitude,

lng: position.coords. longitude

};

infoWindow.setPosition (pos);

map.setCenter (pos);

}, function () {

handleLocationError (true, infoWindow, map.getCenter ());

});

} else {

// Browser doesn’t support Geolocation

handleLocationError (false, infoWindow, map.getCenter ());

}

}


function handleLocationError (browserHasGeolocation, infoWindow, pos) {

infoWindow.setPosition (pos);

infoWindow.setContent (browserHasGeolocation?

«Error: The Geolocation service failed.» :

«Error: Your browser doesn’t support geolocation.»);

}


</script>


<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCb9Iir38HyF_E3_hmf3mHHum_tJbgvjXs&callback=initMap"

async defer> </script>


<script>

var url = 'http://buisness-control.appspot.com/routes/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

state:’new’

},

async: true,

jsonpCallback: ’getNewRoutes’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

var items = [];

$.each (json.routes, function (key, val) {


var subitems = [];


$.each (val.route, function (subkey, subval) {

subitems. push (» <div class=’row’> <div class=’col-sm-3»> Широта </div> <div class='col-sm-3'>"+subval.lat+"</div> <div class=’col-sm-3»> Долгота </div> <div class=’col-sm-3»>"+subval. lng+"</div> </div>»);

});


items. push (» <a href=«#task-route’ class=’list-group-item’ data-toggle=’collapse’ data-target=„#“ + val.date.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «»> <input type=’checkbox’ value=«» class=’task-checkbox task-checkbox-route’ data-route='"+JSON.stringify(val.route) +«»> « + val. date + „</a> <div id=„“ + val.date.replace (/ [.,:,/,, (,),=,?, -,@] /g,“») + «» class='collapse'>»+subitems.join (»») +»<div class=’row’> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-primary btn-map’ data-date=«»+val. date+«» data-route='"+JSON.stringify(val.route) +«»> Показать на карте </button> </div> </div> </div>»);


});


$ (» <div/>», {

«class»: «list-group»,

html: items.join (»»)

}).appendTo («#task-route»);


$ (".btn-map» ).click (function () {

var route = jQuery.parseJSON($(this).attr (’data-route’));

var date = $(this).attr (’data-date’);


$.each (route, function (key, val) {


var latLng =new google.maps.LatLng(val.lat, val. lng);


var marker = new google.maps.Marker ({

position: latLng,

title: date,

map: map

});


map.setCenter (latLng);


});

});


}

});

</script>

</div>

<div class=«clearfix»> </div>

</div>


<div class=«copy»>

<p> Copyright &copy; 2015 TM SoftStudio </p>

</div>

</div>

</div>

<! – /#page-wrapper – >

</div>

<! – /#wrapper – >

<! – Bootstrap Core JavaScript – >

<script src=«js/bootstrap. min. js»> </script>

</body>

</html>



Страница «Новые Задания» позволяет просмотреть задания со статусом «new», включая трекинги и отчеты о его выполнении, присланные сотрудниками.

<!DOCTYPE HTML>

<html>

<head>

<title> Business Control </title>

<meta name=«viewport» content=«width=device-width, initial-scale=1»>

<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8» />

<script type=«application/x-javascript»> addEventListener («load», function () {setTimeout (hideURLbar, 0);}, false); function hideURLbar () {window.scrollTo (0,1);} </script>

<! – Bootstrap Core CSS – >

<link href=«css/bootstrap. min. css» rel=’stylesheet’ type=’text/css’ />

<! – Custom CSS – >

<link href=«css/style. css» rel=’stylesheet’ type=’text/css’ />

<link href=«css/font-awesome. css» rel=«stylesheet»>

<! – jQuery – >

<script src=«js/jquery. min. js»> </script>

<! – – webfonts – ->

<link href='//fonts.googleapis.com/css? family=Roboto:400,100,300,500,700,900» rel=’stylesheet’ type=’text/css’>

<! – Nav CSS – >

<link href=«css/custom. css» rel=«stylesheet»>

<! – Metis Menu Plugin JavaScript – >

<script src=«js/metisMenu. min. js»> </script>

<script src=«js/custom. js»> </script>

<! – Calendar – >

<script type=«text/javascript» src=«js/bootstrap-datepicker. js»> </script>

<script type=«text/javascript» src="js/bootstrap-datepicker.ru.js» charset=«UTF-8»> </script>

<link href=«css/datepicker. css» rel=«stylesheet»>

<! – Editor – >

<script src="//cdn.tinymce.com/4/tinymce. min. js»> </script>

<script>tinymce.init ({selector: «#editor’}); </script>


</head>

<body>

<div id=«wrapper»>

<! – Navigation – >

<nav class=«top1 navbar navbar-default navbar-static-top» role=«navigation» style=«margin-bottom: 0»>

<div class=«navbar-header»>

<button type=«button» class=«navbar-toggle» data-toggle=«collapse» data-target=".navbar-collapse»>

<span class=«sr-only»> Toggle navigation </span>

<span class=«icon-bar»> </span>

<span class=«icon-bar»> </span>

<span class=«icon-bar»> </span>

</button>

<a class=«navbar-brand» href=«#»> Новые Задания </a>

</div>

<! – /.navbar-header – >


<div class=«navbar-default sidebar» role=«navigation»>

<div class=«sidebar-nav navbar-collapse»>

<img src="img/logo.png» />

<ul class=«nav» id=«side-menu»>

<li>

<a href="index.html»> <i class=«fa fa-dashboard fa-fw nav_icon»> </i> Dashboard </a>

</li>

<li>

<a href=«#»> <i class=«fa fa-users»> </i> Сотрудники <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="groups-list.html»> Группы </a>

</li>

<li>

<a href="users-list.html»> Общий список </a>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-truck»> </i> Маршрут <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="route.html»> Выбрать маршрут </a>

</li>

<li>

<a href=«#»> Маршруты <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-routes.html»> Новые </a>

</li>

<li>

<a href="old-routes.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-file»> </i> Задание <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="task.html»> Создать задание </a>

</li>

<li>

<a href=«#»> Задания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-tasks.html»> Новые </a>

</li>

<li>

<a href="old-tasks.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-file-text»> </i> Текст задания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="desc.html»> Создать описание </a>

</li>

<li>

<a href=«#»> Описания <span class=«fa arrow»> </span> </a>

<ul class=«nav nav-second-level»>

<li>

<a href="new-descs.html»> Новые </a>

</li>

<li>

<a href="old-descs.html»> Архив </a>

</li>

</ul>

</li>

</ul>

<! – /.nav-second-level – >

</li>

<li>

<a href=«#»> <i class=«fa fa-android»> </i> Мобильные приложения </a>


</li>


</ul>

</div>

<! – /.sidebar-collapse – >

</div>

<! – /.navbar-static-side – >

</nav>

<div id=«page-wrapper»>

<div class=«graphs»>

<div class = «col_3»>


<div class=«clearfix»> </div>

</div>


<div class=«col_1»>

<div class=«col-md-6»>

<div class=«refresh» style=«cursor: pointer; margin-left:22%"> <i class=«fa fa-refresh»> </i> </div>

<div class=«datepicker»> </div>


<script type=«text/javascript»>

var dp = $ (». datepicker’).datepicker ({

language: «ru-RU»

});

$ (".refresh» ).click (function () {

dp. datepicker (’update’);

});

dp. on (’changeDate’, function (ev) {


});

</script>


</div>

<div class=«clearfix»> </div>

</div>


<div class=«span_11»>

<div class=«col-md-12»>

<div id=«map» style=«height:500px;"> </div>


<script>

var map;

function initMap () {

map = new google.maps.Map(document.getElementById (’map’), {

zoom: 15

});

var infoWindow = new google.maps.InfoWindow ({map: map});


if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition (function (position) {

var pos = {

lat: position.coords.latitude,

lng: position.coords. longitude

};

infoWindow.setPosition (pos);

map.setCenter (pos);

}, function () {

handleLocationError (true, infoWindow, map.getCenter ());

});

} else {

// Browser doesn’t support Geolocation

handleLocationError (false, infoWindow, map.getCenter ());

}


}


function handleLocationError (browserHasGeolocation, infoWindow, pos) {

infoWindow.setPosition (pos);

infoWindow.setContent (browserHasGeolocation?

«Error: The Geolocation service failed.» :

«Error: Your browser doesn’t support geolocation.»);

}


</script>


<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCb9Iir38HyF_E3_hmf3mHHum_tJbgvjXs&callback=initMap"

async defer> </script>


<script>

var url = 'http://buisness-control.appspot.com/tasks/?callback=?';


$.ajax ({

type: «GET»,

url: url,

data: {

state:’new’

},

async: true,

jsonpCallback: ’getNewTasks’,

contentType: «application/json»,

dataType: ’jsonp’,

success: function (json) {

var items = [];

$.each (json. tasks, function (key, val) {


var track=«»;

var trackRoute=«»;

var trackAccount=«»;


if (val.track===undefined) {

track=«»;

trackRoute=«»;

trackAccount=«»;

} else {

$.each (val.track, function (key, subval) {

track=track+"n"+subval.account+" Дата: "+subval. date+" Координаты: "+subval.lat+" "+subval. lng;

if(trackRoute=="")trackRoute=subval.lat+»,»+subval. lng;

trackRoute=trackRoute+","+subval.lat+»,»+subval. lng;

if(trackAccount=="")trackAccount=subval.account;

trackAccount=trackAccount+","+subval.account;

});

}


var subitems= [];

if (val.reports!==undefined) {

$.each (val.reports, function (key, subval) {

var reportAccount=subval.account;

var reportText=subval.report;

var reportPhotos=subval.photos;


var subsubitems= [];

if (reportPhotos!==undefined) {

$.each (reportPhotos, function (key, subsubval) {

var url=subsubval.servingUrl;

var key=subsubval. blobKey;

subsubitems. push (» <br/> <image class=’img-responsive’ src="+url+" alt=«»> <br/>»);

});

}


subitems. push (» <div class=’row’> <div class=’col-sm-12»> <br/> <p class=’label label-success’> Отчет: </p> <p>"+reportAccount+"</p> <p> <textarea class='form-control'>"+reportText+"</textarea></p><p>"+subsubitems.join (»») +"</p> </div> </div>»);


});

}


items. push (» <br/> <a href=«#» class=’list-group-item’ data-toggle=’collapse’ data-target=«#» + val.name.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «»>" + val.name + «</a> <div id=„“ + val.name.replace (/ [.,:,/,, (,),=,?, -,@] /g,»») + «» class=’collapse’> <div class=’col-sm-12»>»+val. date+"</div> <div class=’col-sm-12»> <br/> <p class=’label label-success’> Описание: </p> <textarea class='form-control'>"+JSON.stringify(val.descs).replace (/ [" []] /g,»») +"</textarea> </div> <div class=’col-sm-12»> <br/> <p class=’label label-success’> Сотрудники: </p> <textarea class='form-control'>"+JSON.stringify(val.users).replace (/ [" []] /g,»») +"</textarea> </div> <div class=’col-sm-12»> <br/> <p class=’label label-success’> Маршрут: </p> <textarea class='form-control'>"+JSON.stringify(val.routes).replace (/ [" [] {}] /g,»») +"</textarea> </div> <div class=’row’> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-primary btn-map’ data-title=«»+val. date+«» data-route='"+JSON.stringify(val.routes).replace (/ [" [] {}] /g,»») +«»> Показать на карте </button> </div> </div> <br/> <div class=’col-sm-12»> <br/> <p class=’label label-success’> Отслеживание: </p> <textarea class=’form-control’>"+track+"</textarea> </div> <br/> <div class=’row’> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-primary btn-mapTrack’ data-title=«»+trackAccount+«» data-route=«»+trackRoute+«»> Показать на карте</button></div></div><br/>"+subitems.join (»») +"<br/> <div class=’row’> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-primary btn-state’ data-name='"+val.name+«»> Отправить в архив </button> </div> <div class=’col-sm-4»> <button type=’button’ class=’btn btn-danger btn-del-task’ data-name='"+val.name+«»> Удалить задачу </button> </div> </div> </div>»);


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации