sbis3-node-ws
Version:
Модуль позволяет использовать ядро интерфейсного фреймворка sbis3-ws(`core.js`) и модуль работы с данными (`Source.js`) в приложении на nodejs.
68 lines (64 loc) • 2.14 kB
JavaScript
/**
* Created by Яковлев В.В. on 18.04.14.
*/
define('Core/BackgroundMapper', function() {
"use strict";
/**
* Класс, используемый для выделения классов под изображения
* @class $ws.single.BackgroundMapper
* @singleton
*/
var imageCounter = 0,
imageMapping = {};
/**
* Возвращает класс для изображения
* @param {String} image Путь до изображения.
* @return {String|undefined}
*/
function imageClass(image){
return imageMapping[image];
}
/**
* Добавляет путь в хранилище
* @param {String} image Путь до изображения.
* @return {String}
*/
function addImage(image){
return imageMapping[image] = ('ws-background-' + (imageCounter++));
}
/**
* Возвращает, имеет ли указанное изображение какой-либо сохранённый класс
* @param {String} image Путь до изображения.
*/
function hasImage(image){
return imageMapping[image] !== undefined;
}
/**
* Очищает фон у элемента
* @param {jQuery} element Элемент, у которого нужно очистить фон.
* @returns {jQuery}
*/
function clearBackground(element){
BOOMR.plugins.WS.reportEvent("ws.helpers", "clearBackground");
var attr = element.attr('ws-background');
if(attr){
element.removeClass(attr);
}
return element;
}
function makeBackground(element, image){
BOOMR.plugins.WS.reportEvent("ws.helpers", "makeBackground");
clearBackground(element);
var className = imageClass(image);
if(className === undefined){
className = addImage(image);
$ws.helpers.insertCss('.' + className + '{background-image: url("' + image + '");}');
}
element.addClass(className);
element.attr('ws-background', className);
return element;
}
return {
makeBackground: makeBackground
}
});