From 563bd5cdfdfeb6bf4b6301e247aa793ed8388650 Mon Sep 17 00:00:00 2001 From: yunnii Date: Wed, 17 Oct 2012 13:12:49 +0600 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=972?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сделано --- calendar.js | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++ mainpage.html | 10 +++++ 2 files changed, 117 insertions(+) create mode 100644 calendar.js create mode 100644 mainpage.html diff --git a/calendar.js b/calendar.js new file mode 100644 index 0000000..9ebe94c --- /dev/null +++ b/calendar.js @@ -0,0 +1,107 @@ +/*global alert: true*/ + +function isDate(date) { + "use strict"; + + if (typeof date === 'undefined') { + return false; + } + if (typeof date.getMonth !== 'function') { + return false; + } + return true; +} + +/** + * Возвращает объект event, либо undefined, если в объекте отсутвуют обязательные поля + * eventObject{ + * name - название события + * start - начало + * end - окончание + * location - место + * remindTime - за сколько минут до события напомнить + * description - описание + * } + + * @param {object} obj Объект + * @example + * Event({ + * name: "Пара по веб-технологиям", + * start: new Date("2012-10-20 10:00:00"), + * end: new Date("2012-10-20 12:50:00"), + * location: "5 этаж", + * remindTime: 10, + * description: "Взять бумагу и ручку, не брать бук!" + * }) + * + * @return {Object} + */ +function event(obj) { + "use strict"; + + + var remindTime = obj.remindTime || 0; + + if (!isDate(obj.start)) { + alert("Error! Not event object!"); + return; + } + + if (!isDate(obj.end)) { + alert("Error! Not event object!"); + return; + } + + return { + "name": obj.name || "(Нет темы)", + "start": obj.start, + "end": obj.end, + "location": obj.location || "", + "remindTime": remindTime, + "description": obj.description || "(отсутствует)" + }; +} + +function show(events) { + "use strict"; + + return events.name + " начало: " + events.start + + " конец: " + events.end + + " место события: " + events.location + " напомнить за " + events.remindTime + " минут" + + " описание: " + events.description; +} + +function test(obj) { + "use strict"; + + var result = event(obj); + if (typeof result !== 'undefined') { + alert(show(result)); + } +} + +function runTestsCalendar() { + "use strict"; + + test({}); + + test({ + name: "hello", + start: new Date("2012-10-20 10:00:00") + }); + + test({ + name: "hello", + start: new Date("2012-10-20 10:00:00"), + end: new Date("2012-10-20 12:50:00") + }); + + test({ + name: "Пара по веб-технологиям", + start: new Date("2012-10-20 10:00:00"), + end: new Date("2012-10-20 12:50:00"), + location: "5 этаж", + remindTime: 10, + description: "Взять бумагу и ручку, не брать бук!" + }); +} \ No newline at end of file diff --git a/mainpage.html b/mainpage.html new file mode 100644 index 0000000..580bab1 --- /dev/null +++ b/mainpage.html @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file From 410db1b171c9f7779266a3993cf1ffed0884dccf Mon Sep 17 00:00:00 2001 From: yunnii Date: Tue, 23 Oct 2012 17:45:46 +0600 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calendar.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/calendar.js b/calendar.js index 9ebe94c..f6b2397 100644 --- a/calendar.js +++ b/calendar.js @@ -48,8 +48,11 @@ function event(obj) { } if (!isDate(obj.end)) { - alert("Error! Not event object!"); - return; + obj.end = obj.start; + } + + if (obj.end < obj.start) { + obj.end = obj.start; } return { @@ -62,13 +65,20 @@ function event(obj) { }; } -function show(events) { +/** + * Возвращает строковое представление объекта типа event + * @param {events} - объект типа event + * @return строковое представление event +*/ +event.show = function (events) { "use strict"; - return events.name + " начало: " + events.start - + " конец: " + events.end - + " место события: " + events.location + " напомнить за " + events.remindTime + " минут" - + " описание: " + events.description; + if (typeof events === "undefined") return; + + return events.name + "\n" +" начало: " + events.start + "\n" + + " конец: " + events.end + "\n" + + " место события: " + events.location + " напомнить за " + events.remindTime + " минут" + "\n" + + " описание: " + events.description + "\n"; } function test(obj) { @@ -76,7 +86,7 @@ function test(obj) { var result = event(obj); if (typeof result !== 'undefined') { - alert(show(result)); + alert(event.show(result)); } }