Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аникин.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
763.91 Кб
Скачать

Приложение г

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);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]