diff --git a/Cripi/calendar.html b/Cripi/calendar.html new file mode 100644 index 0000000..7328183 --- /dev/null +++ b/Cripi/calendar.html @@ -0,0 +1,94 @@ + + + + + + +События + + + +

Добро пожаловать в конструктор событий, Username!

+ +
+
+

Создайте своё собственное событие

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Название события
Дата начала
Дата окончания
Описание события
Предшествующие связанные события + +
Участники события
Место проведенияТут будет что-то что позволяет сохранить точку на яндекс картах
ПриватностьОткрытоеПриватное +
Возрастной рейтинг + 0+ + 3+ + 6+ + 12+ + 16+ + 18+ +
Внешняя ссылка
+

Добавить событие

+
+
+ + + +
+
+

Созданные события

+

Двойной щелчок по заголовку - сортировка по выбранному столбцу.

+
+
+ + +
+ + + diff --git a/Cripi/events.js b/Cripi/events.js new file mode 100644 index 0000000..8e3e605 --- /dev/null +++ b/Cripi/events.js @@ -0,0 +1,148 @@ +// JavaScript Document +function inherits(Constructor, SuperConstructor){ +var F = function () {}; +F.prototype = SuperConstructor.prototype; +Constructor.prototype = new F() +}; +function isDate(date){ + if (date === ''){ + return true + } + else { + return false + } +} + +/*var Model = function (data) { + "use strict"; + var keyName; + for (keyName in data) { + if (data.hasOwnProperty(keyName)) { + this[keyName] = data[keyName]; + } + } +}; +/** + * Set - устанавливает аттрибуты и значения атрибутов, в соответсвии с принятым в качестве параметра объектом + * + * @param {Object} attributes + * + * @example + * item.set({title: "March 20", content: "In his eyes she eclipses..."}); + */ +/*Model.prototype.set = function (attributes) { + for (var key in attributes){ + if (attributes.hasOwnProperty(key)) { + this[key] = attributes[key]; + } + } +}; + +/** + * Get возвращает запрашиваемое свойство у объекта + * + * @param {Object} attributes + */ +/*Model.prototype.get = function (attribute) { + if (this.hasOwnProperty(attribute)) { + return this[attribute]; + } + return undefined; +}; +/** + * + * @param {Object} attributes + */ +/*Model.prototype.validate = function (attributes) { + throw new Error('this is Abstract method'); +}; + +*/ +var Event = function(data){ + var keyName; + for (keyName in data) { + if (data.hasOwnProperty(keyName)) { + this[keyName] = data[keyName]; + } + } +}; +Event.prototype.r = function(){ + console.log('tratatatata') +} +Event.prototype.validate = function() { + //'use strict'; + var errorList = [];/* + if (this.name === undefined){ + this.name = 'Новое событие' + } + if (!isDate(this.start)){ + errorList.push('Неверно указана дата начала события.') + } + if (!isDate(this.end)){ + errorList.push('Неверно указана дата окончания события.') + } + /*if (this.start < this.end){ + errorList.push('Время начала события должно быть раньше времени окончания.') + } + */ + /** + return { + "start": DateStart || new Date(), + "end": DateFinish, + "name": Call || "Новое событие", + "description": Description || "Описание события", + "parent": Parent || {}, + "childs": Childs || [], + "comments": Comments || [], + "peoples": Peoples || [], + "location": Location || {}, + "private": Private || False, + "rank": Rank || 0, + "EvRS": EvRS || 18, + "Link": Link || '' + } + */ + return errorList + +}; + + + +var Collection = function(data){ + this.items = []; + var i + for (var i in data){ + this.items.push(data[i]); + } +}; +Collection.prototype.add = function(i){ + this.items.push(i); +} +//Collection.prototype = new Model(); + +var Events = function(){}; +Events.prototype = new Collection() + +Events.prototype.sortByStartTime = function(){} +Events.prototype.sortByEndTime = function(){} +Events.prototype.previos = function(){} +Events.prototype.futures = function(){} +Events.prototype.filterByField = function(){} +Events.prototype.myEvents = function(){} +Events.prototype.eventsWhithMe = function(){} + +///////////////////////////////////////////////////////////////////////// +e = new Event({"start": new Date(2012, 9, 3, 19, 00, 00), + "end": new Date(2012, 9, 3, 20, 00, 00), + "name": "1 лекция по JavaScript", + "description": "Обзор языка", + "parent": {}, + "childs": [], + "comments": ['Красивенько', 'А мы могли бы...'], + "people": [], + "location": {}, + "private": true, + "rank": 4, + "EvRS": 16, + "Link": 'http://cripi.ru/#javascript'}); + diff --git a/Cripi/main.css b/Cripi/main.css new file mode 100644 index 0000000..ae931b4 --- /dev/null +++ b/Cripi/main.css @@ -0,0 +1,23 @@ +@charset "utf-8"; +/* CSS Document */ + +#username {border-bottom:dotted thin;} +#createButton{padding: 10px 20px; + background:#0CF; + color:#FFF;} +/*#tableOfEvents {}*/ +#tableOfEvents tr td.nodata {border:#000 thin solid; + background:#FDD; + padding:5px; + } +#tableOfEvents tr td{border:#000 thin solid; + background:#DFFFED; + padding:5px; + min-width:100px; + max-width:250px;} +#tableOfEvents tr th{border:#000 thin solid; + background:#CFC; + padding:5px; + min-width:100px; + max-width:250px;} + diff --git a/Cripi/move.js b/Cripi/move.js new file mode 100644 index 0000000..0df14c2 --- /dev/null +++ b/Cripi/move.js @@ -0,0 +1,155 @@ +// JavaScript Document +var index=0; +var eventFields = {'user':'Пользователь', +'call':'Название события', +'dateStart':'Дата начала', +'dateFinish':'Дата окончания', +'description':'Описание', +'location':'Место проведения', +'parent':'Предшествующие события', +'people':'Участники', +'url':'Ссылка на событие в сети', +'private':'Приватность события', +'EvRS':'Возрастные ограничения'}; +var constructorFormFields = ['call', 'dateStart', 'dateFinish', 'description', 'people', 'url']; +var headSotrEventFlag = false; + +var ourEvents = new Events(); + +/////////////////////Поле username////////////////////////////////////// +var userinput = document.getElementById("userinput"); +var userspan= document.getElementById('username'); +userinput.style.display="none"; +userinput.value = userspan.innerHTML; +userinput.addEventListener('blur', function(event){ + userinput.style.display ="none"; + userspan.innerHTML=userinput.value; + userspan.style.display=""; +},true); +userspan.addEventListener('click', function(event){ + userspan.style.display="none"; + userinput.value = userspan.innerHTML; + userinput.style.display=""; + userinput.focus(); +},true); +///////////////////////////////////////////////////////////////////////// +function tableConstructor(obj,row){ + /* + Создаёт строки в таблице. + Параметры объект добавляемый в талицу + Тип ячейки заголовок/простая. + */ + tr = document.createElement('tr') + for (var i in eventFields){ + td = document.createElement(row); + if (typeof obj[i] === "undefined" || obj[i]==''){ + td.innerHTML = ''; + td.setAttribute('class','nodata '+i); + } + else { + td.innerHTML = obj[i]; + td.setAttribute('class',i); + }; + tr.appendChild(td) + } + return tr +} +function addData(fieldId){ + var formfield=document.getElementById(fieldId); + var result = formfield.value; + formfield.value = ''; + return result; +} +var tab = document.getElementById('tableOfEvents'); + +/////////////////Описание обработчика добавления события//////////////// +addButton = document.getElementById('createButton'); +addButton.addEventListener('click', function(event){ + if (ourEvents.items.length==0){ + tab.appendChild(tableConstructor(eventFields,'th')); + thList = document.getElementsByTagName('th'); + for (var i=0; ib[sortedField]){ + return -1}; + if (a[sortedField] 0){ + errorBlock = document.getElementById('errors') + for (var error in errors){ + var li = document.createElement('li'); + li.innerHTML = errors[error]; + errorBlock.appendChild(li) + } + } + else { + for (var field in constructorFormFields){ + document.getElementById(constructorFormFields[field]).value = ""; + }; + ourEvents.add(Item); + }; + + + var option = document.createElement('option'); + option.innerHTML=Item['call']; + option.setAttribute('value',Item['call']); + parentSelect.appendChild(option); + index+=1; + ////////////////////////////////////////////////////////////// + + tab.appendChild(tableConstructor(Item,'td')); + +}, true); +/////////Окончание обработчика добавления события///////////////// + +/*keyDown +keyUp +KeyPressed*/ +/*event.keyCode +event.CharCode*/ \ No newline at end of file