
- •Содержание
- •Введение
- •1 Теоретическая часть
- •Постановка задачи
- •1.2 Анализ предметной области
- •Требования к программному продукту
- •1.4. Средства реализации
- •1.5. Сравнительный анализ имеющихся средств
- •1.6. Критерии выбора
- •1.7. Выбор инструментальных средств
- •2 Практическая часть.
- •2.1 Моделирование предметной области
- •2.2 Технология создания программного продукта
- •2.3. Техническая реализация программного продукта, алгоритмы и коды
- •2.4. Внедрение и апробация программного продукта
- •2.5. Перспективы развития
- •3 Охрана труда
- •4 Инструкция пользователя
- •5 Организационно-экономическая часть
- •5.1 Расчёт затрат на внедрение ресурса
- •5.1.1 Расчёт себестоимости ресурса
- •5.1.2 Расчёт статьи «Материалы и комплектующие изделия»
- •5.1.3 Расчёт фонда заработной платы
- •5.1.4 Расчёт затрат на содержание и эксплуатацию оборудования
- •5.1.5 Расчёт накладных расходов
- •5.2 Экономическая эффективность разработки
- •Заключение
- •Список использованных источников (литературы)
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
Приложение г
core = {
init: function() {
core.navBar();
core.constructor.init();
core.storage.init();
},
_request: {
url: window.location.href,
getUrl: function() {
return this.url.split('/');
}
},
storage: {
init: function() {
self = this;
core.temp = {}
},
check: function() {
if (!core[self.obj.store].constructor.title) $('#title').addClass('error');
if (!core[self.obj.store].constructor.uid) $('#uid').addClass('error');
if (!core[self.obj.store].constructor.description) $('#description').addClass('error');
if (!core[self.obj.store].constructor.time) $('#time').addClass('error');
return true;
},
save: function() {
core[self.obj.store] = {};
core[self.obj.store].storage = {};
$('ul#lm:first li.dropdown').each(function(i, el) {
var tab = $('div#tab' + (i + 1));
core[self.obj.store].storage[i] = {};
core[self.obj.store].storage[i].settings = {
uid:tab.find('input[name=uid]').attr('value'),
name:tab.find('input[name=title]').attr('value'),
time:tab.find('input[name=time]').attr('value'),
description:$.trim(tab.find('div[name=description]').text())
};
core[self.obj.store].storage[i].questions = {};
$(el).next('ul:first').children('li').each(function(j, e) {
var qtab = $(e).children('a').attr('href');
var div = $(qtab);
core[self.obj.store].storage[i].questions[j] = {
question:$.trim(div.find('div[name=quest]').text()),
type:div.find('select.chosen-type').attr('value'),
level:div.find('select.level').attr('value')
};
core[self.obj.store].storage[i].questions[j].answers = {};
div.find('.input-prepend').each(function(k, e) {
var v = $(e).find('input[name=answer]').attr('checked');
core[self.obj.store].storage[i].questions[j].answers[k] = {
value1: (typeof v == 'undefined') ? false : v,
value2: $(e).find('input[name=prependedInput]').attr('value')
};
});
});
});
return true;
},
obj: {
store: 'temp'
}
},
debug: function(debug) {
console.log(debug);
},
constructor: {
init:function() {
this.addPage();
},
_createTab: function(parent, id, prefix, clone) {
var parent, id, prefix, clone;
$(parent).after(
$('<div/>', {html:$((clone) ? clone : parent).html(), id:prefix + id, class:(id == 1 && !clone) ? 'tab-pane active' : 'tab-pane'})
);
return true;
},
addPage: function() {
this.obj.tabsUid++;
$(this.obj.btnAddPage).before(
$('<li/>', {
html:$('<a/>', {
href:'#tab' + this.obj.tabsUid,
class:'dropdown-toggle',
'data-toggle':'tab',
html:$('<b/>',{class:'caret'}).after($('<span/>', {html:'Введите название теста'}))
}).after(
$('<ul/>', {
class:'dropdown-menu',
html:$('ul#first-dropdown-menu').html()
})
),
class:(this.obj.tabsUid == 1) ? 'dropdown active' : 'dropdown'
})
);
this._createTab(this.obj.firstTab, this.obj.tabsUid, 'tab');
},
addQuestion: function(id) {
var container = $(id).parent().parent().parent(),
children = ($(container).children().attr('href')).substr(1),
id = container.children('a').attr('href');
if (!container.next().is('ul.nav.list')) {
container.after($('<ul/>', {class:'nav list', id:'left-list'}));
this.obj.questions[id] = this.obj.questions[id] || 0;
}
this.obj.questions[id]++;
container.next('ul').append($('<li/>', {
html:$('<a/>', {
'data-toggle':'pill',
href:'#q' + children + this.obj.questions[id],
html:$('<i/>', {class:'minus'}).after($('<span/>', {html:'Вопрос ' + this.obj.questions[id]}))
})}));
this._createTab(this.obj.firstTab, this.obj.questions[id], 'q' + children, '#q-test');
},
obj: {
btnAddPage:'li.addpage',
btnAddQuestion:'li a.add-question',
tabsUid:0,
firstTab:'div#tab-first',
questions:[]
}
},
addEvent: function(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
} else {
elm['on' + evType] = fn;
}
},
navBar: function() {
var params = core._request.getUrl();
var navBar = $('div.navbar ul.nav');
for (var i = 0; i < params.length; i++) {
if (params[i] && $('div.navbar ul.nav').children('li').is('#' + params[i])) {
$('div.navbar ul.nav').children('li').removeClass('active');
$('#' + params[i]).addClass('active');
return true;
} else {
$('#index').addClass('active');
}
}
},
events: [
{
el:'li.addpage',
events:[
['click', function() {
core.constructor.addPage();
}]
]
}
]
}
core.addEvent(window, 'load', core.init, false);