Removed the unused application code (a new project PetitTetonMeteor now contains all this code reformulated into a Meteor app); Updated the sales sheet.

This commit is contained in:
Wynne Crisman
2017-05-09 13:52:01 -07:00
parent 00f2be30ce
commit 06bdbe336d
232 changed files with 304 additions and 99998 deletions

View File

@@ -1,7 +0,0 @@
var path=require('path');
//'migrations-path': 'migrations'
module.exports = {
'config': path.resolve('config', 'db.js')
}

View File

@@ -3,14 +3,14 @@ var fs = require('fs');
var path = require('path'); var path = require('path');
var adminPath; var adminPath;
var PRODUCT_LIST_PATH = "VAP_Availability_List_Nov2016.pdf"; var PRODUCT_LIST_PATH = "VAP_Availability_List_05_2017.pdf";
//Notes: //Notes:
//Use res.send or res.sendFile for static resources (like images or html) //Use res.send or res.sendFile for static resources (like images or html)
//Use res.send(ejs.render(htmlStr, viewArgs)) to manually render EJS files //Use res.send(ejs.render(htmlStr, viewArgs)) to manually render EJS files
//Use res.render("my.ejs", {root: adminPath}) to render EJS files (if you have setup the ejs renderer //Use res.render("my.ejs", {root: adminPath}) to render EJS files (if you have setup the ejs renderer
module.exports = function(app, rootPath, passport, smtpTransport, sequelize) { module.exports = function(app, rootPath, smtpTransport) {
adminPath = path.join(rootPath, 'admin'); adminPath = path.join(rootPath, 'admin');
// ===================================== // =====================================
@@ -63,45 +63,45 @@ module.exports = function(app, rootPath, passport, smtpTransport, sequelize) {
} }
}); });
app.get('/admin', isLoggedIn, function(req, res) { //app.get('/admin', isLoggedIn, function(req, res) {
try { // try {
//Note: This is for search engines. // //Note: This is for search engines.
if(typeof(req.query._escaped_fragment_) !== "undefined") { // if(typeof(req.query._escaped_fragment_) !== "undefined") {
var viewArgs = {}; //What args to use for a search engine? // var viewArgs = {}; //What args to use for a search engine?
//
//The DIY method which is somewhat brittle since it relies on <!--CONTENT--> existing in the index file, and it replaces that with the contents of the passed parameter (what is after the #!) for the content html which is inserted into the index file in place of <!--CONTENT-->. // //The DIY method which is somewhat brittle since it relies on <!--CONTENT--> existing in the index file, and it replaces that with the contents of the passed parameter (what is after the #!) for the content html which is inserted into the index file in place of <!--CONTENT-->.
fs.readFile(adminPath + '/index.ejs', {encoding: "UTF8"}, function(err, indexContent) { // fs.readFile(adminPath + '/index.ejs', {encoding: "UTF8"}, function(err, indexContent) {
if(!err) { // if(!err) {
var file = adminPath + '/' + req.query._escaped_fragment_ + '.ejs'; // var file = adminPath + '/' + req.query._escaped_fragment_ + '.ejs';
//
fs.readFile(file, {encoding: "UTF8"}, function(err, content) { // fs.readFile(file, {encoding: "UTF8"}, function(err, content) {
if(!err) { // if(!err) {
//Non-regex method.// // //Non-regex method.//
if(content.indexOf("<runonce>") != -1 && content.indexOf("</runonce>") != -1) { // if(content.indexOf("<runonce>") != -1 && content.indexOf("</runonce>") != -1) {
content = content.substr(0, content.indexOf("<runonce>")) + content.substr(content.indexOf("</runonce>") + 10, -1); // content = content.substr(0, content.indexOf("<runonce>")) + content.substr(content.indexOf("</runonce>") + 10, -1);
} // }
//Doesn't work? Not sure why. Works in the regex test tools.// // //Doesn't work? Not sure why. Works in the regex test tools.//
//content = content.replace(/<runonce>(.|\n)*?<\x2frunonce>/, " "); // //content = content.replace(/<runonce>(.|\n)*?<\x2frunonce>/, " ");
//
//Doesn't work? Based on the regex failure above, I think that replace is failing.// // //Doesn't work? Based on the regex failure above, I think that replace is failing.//
var html = indexContent.replace(/<!--CONTENT-->/g, content); // var html = indexContent.replace(/<!--CONTENT-->/g, content);
//
//console.log(html); // //console.log(html);
res.send(ejs.render(html, viewArgs)); // res.send(ejs.render(html, viewArgs));
} // }
else console.log("Error reading the content file '" + file + "'. " + err); // else console.log("Error reading the content file '" + file + "'. " + err);
}); // });
} // }
else console.log("Error reading the index.ejs file. " + err); // else console.log("Error reading the index.ejs file. " + err);
}); // });
} // }
else { // else {
//console.log("Looking for index.ejs in " + adminPath); // //console.log("Looking for index.ejs in " + adminPath);
//res.render("index.ejs", {root: adminPath}); // //res.render("index.ejs", {root: adminPath});
res.render(path.join(adminPath, req.baseUrl, "index")); // res.render(path.join(adminPath, req.baseUrl, "index"));
} // }
} catch(e) {console.log(e);} // } catch(e) {console.log(e);}
}); //});
app.use('/ContactUs', function(req, res) { app.use('/ContactUs', function(req, res) {
try { try {
@@ -128,13 +128,13 @@ module.exports = function(app, rootPath, passport, smtpTransport, sequelize) {
// LOGIN // LOGIN
// ===================================== // =====================================
// show the login form // show the login form
app.get('/admin/login', function(req, res) { //app.get('/admin/login', function(req, res) {
// render the page and pass in any flash data if it exists // // render the page and pass in any flash data if it exists
res.render(path.join(adminPath, req.baseUrl, 'login.ejs'), { message: req.flash('loginMessage') }); // res.render(path.join(adminPath, req.baseUrl, 'login.ejs'), { message: req.flash('loginMessage') });
}); //});
// process the login form // process the login form
app.post('/admin/login', passport.authenticate('local-login', {successRedirect: '/admin', failureRedirect: '/admin/login', failureFlash: true})); //app.post('/admin/login', passport.authenticate('local-login', {successRedirect: '/admin', failureRedirect: '/admin/login', failureFlash: true}));
// ===================================== // =====================================
// SIGNUP // SIGNUP
@@ -154,36 +154,36 @@ module.exports = function(app, rootPath, passport, smtpTransport, sequelize) {
// ===================================== // =====================================
// we will want this protected so you have to be logged in to visit // we will want this protected so you have to be logged in to visit
// we will use route middleware to verify this (the isLoggedIn function) // we will use route middleware to verify this (the isLoggedIn function)
app.get('/admin/profile', isLoggedIn, function(req, res) { //app.get('/admin/profile', isLoggedIn, function(req, res) {
res.render(path.join(adminPath, req.baseUrl, 'profile.ejs'), { //res.render(path.join(adminPath, req.baseUrl, 'profile.ejs'), {
user : req.user // get the user out of session and pass to template // user : req.user // get the user out of session and pass to template
}); //});
}); //});
// ===================================== // =====================================
// LOGOUT // LOGOUT
// ===================================== // =====================================
app.get('/admin/logout', function(req, res) { //app.get('/admin/logout', function(req, res) {
req.logout(); // req.logout();
res.redirect('/'); // res.redirect('/');
}); //});
// Check for an ejs first even if an html is requested. // Check for an ejs first even if an html is requested.
app.get('/admin/*.html', isLoggedIn, function(req, res) { //app.get('/admin/*.html', isLoggedIn, function(req, res) {
var ejs = req.path.substring(0, req.path.length - 4) + "ejs"; // var ejs = req.path.substring(0, req.path.length - 4) + "ejs";
//
//console.log("Checking for an ejs: " + ejs); // //console.log("Checking for an ejs: " + ejs);
//
fs.stat(path.join(rootPath, ejs), function(err, stats) { // fs.stat(path.join(rootPath, ejs), function(err, stats) {
if(!err) { // if(!err) {
res.render(path.join(rootPath, ejs)); // res.render(path.join(rootPath, ejs));
} // }
else { // else {
res.sendFile(path.join(rootPath, req.path)); // res.sendFile(path.join(rootPath, req.path));
//res.sendFile(req.path); // //res.sendFile(req.path);
} // }
}); // });
}); //});
/* Test code to find all Categories and Subcategories. /* Test code to find all Categories and Subcategories.
sequelize.models.Category.findAll({ sequelize.models.Category.findAll({
@@ -209,238 +209,187 @@ module.exports = function(app, rootPath, passport, smtpTransport, sequelize) {
}); });
//Allows the client to query using the models defined by the application. Returns status codes or the results of the queries. //Allows the client to query using the models defined by the application. Returns status codes or the results of the queries.
app.use('/admin/data/:cls/:query', isLoggedIn, function(req, res) { //app.use('/admin/data/:cls/:query', isLoggedIn, function(req, res) {
try { // try {
if(req.user.admin) { // if(req.user.admin) {
//var params = Object.keys(req.body).length == 0 ? req.query : req.body; //Use the Request.query if Request.body is empty. // //var params = Object.keys(req.body).length == 0 ? req.query : req.body; //Use the Request.query if Request.body is empty.
var params = req.query; // var params = req.query;
var cls = req.params.cls; // var cls = req.params.cls;
var query = req.params.query; // var query = req.params.query;
var model = sequelize.models[cls]; // var model = sequelize.models[cls];
//
//Merge the Request.body parameters into the params object. // //Merge the Request.body parameters into the params object.
//TODO: Can we just use extend? // //TODO: Can we just use extend?
Object.keys(req.body).forEach(function(key) {params[key] = req.body[key]}); // Object.keys(req.body).forEach(function(key) {params[key] = req.body[key]});
//
//The client must wrapper any JSON it wants to send into another JSON object whose sole attribute is 'request' and whose value is the actual parameter JSON stringified. // //The client must wrapper any JSON it wants to send into another JSON object whose sole attribute is 'request' and whose value is the actual parameter JSON stringified.
//This is because for some unknown reason, jquery.ajax (or derivative methods) does not stringify the JSON correctly (converts bool, int, etc, into strings), and the server cannot convert the strings back into native types. // //This is because for some unknown reason, jquery.ajax (or derivative methods) does not stringify the JSON correctly (converts bool, int, etc, into strings), and the server cannot convert the strings back into native types.
params = params.request ? JSON.parse(params.request) : params; // params = params.request ? JSON.parse(params.request) : params;
//
if(!model) { // if(!model) {
res.status(400).end(); // res.status(400).end();
} // }
else { // else {
res.header("Cache-Control", "no-cache, no-store, must-revalidate"); // res.header("Cache-Control", "no-cache, no-store, must-revalidate");
res.header("Pragma", "no-cache"); // res.header("Pragma", "no-cache");
res.header("Expires", 0); // res.header("Expires", 0);
//
switch(query) { // switch(query) {
case 'readAll': // case 'readAll':
case 'findAll': // case 'findAll':
case 'getAll': { // case 'getAll': {
//Check the params for model references that need to be linked to the correct class. Example: // //Check the params for model references that need to be linked to the correct class. Example:
//{include: [{model: 'Subcategory', paranoid: true, as: 'subcategories'}], order: ['name', ['name']]} // //{include: [{model: 'Subcategory', paranoid: true, as: 'subcategories'}], order: ['name', ['name']]}
if(params.include) { // if(params.include) {
var include = params.include; // var include = params.include;
//
for(var includeIndex = 0; includeIndex < include.length; includeIndex++) { // for(var includeIndex = 0; includeIndex < include.length; includeIndex++) {
var nextInclude = include[includeIndex]; // var nextInclude = include[includeIndex];
//
if(nextInclude.model) { // if(nextInclude.model) {
nextInclude.model = sequelize.models[nextInclude.model]; // nextInclude.model = sequelize.models[nextInclude.model];
} // }
} // }
} // }
//
model.findAll(params).then(function(values) { // model.findAll(params).then(function(values) {
res.json(values); // res.json(values);
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
res.status(400).end(); // res.status(400).end();
}); // });
break; // break;
} // }
case 'read': // case 'read':
case 'readOne': // case 'readOne':
case 'readFirst': // case 'readFirst':
case 'find': // case 'find':
case 'findOne': // case 'findOne':
case 'findFirst': // case 'findFirst':
case 'get': // case 'get':
case 'getFirst': // case 'getFirst':
case 'getOne': { // case 'getOne': {
//Check the params for model references that need to be linked to the correct class. Example: // //Check the params for model references that need to be linked to the correct class. Example:
//{include: [{model: 'Subcategory', paranoid: true, as: 'subcategories'}], order: ['name', ['name']]} // //{include: [{model: 'Subcategory', paranoid: true, as: 'subcategories'}], order: ['name', ['name']]}
if(params.include) { // if(params.include) {
var include = params.include; // var include = params.include;
//
for(var includeIndex = 0; includeIndex < include.length; includeIndex++) { // for(var includeIndex = 0; includeIndex < include.length; includeIndex++) {
var nextInclude = include[includeIndex]; // var nextInclude = include[includeIndex];
//
if(nextInclude.model) { // if(nextInclude.model) {
nextInclude.model = sequelize.models[nextInclude.model]; // nextInclude.model = sequelize.models[nextInclude.model];
} // }
} // }
} // }
//
model.find(params).then(function(value) { // model.find(params).then(function(value) {
res.json(value); // res.json(value);
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
res.status(400).end(); // res.status(400).end();
}); // });
break; // break;
} // }
case 'create': // case 'create':
case 'insert': // case 'insert':
case 'new': { // case 'new': {
model.create(params).then(function(user) { // model.create(params).then(function(user) {
//res.json({result: 'success'}); // //res.json({result: 'success'});
res.status(200).end(); // res.status(200).end();
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
//res.json({result: 'duplicate'}); // //res.json({result: 'duplicate'});
res.status(400).end(); // res.status(400).end();
}); // });
break; // break;
} // }
case 'delete': // case 'delete':
case 'remove': // case 'remove':
case 'destroy': { // case 'destroy': {
//params: {where: {id: myId}} // //params: {where: {id: myId}}
model.destroy(params).then(function(count) { // model.destroy(params).then(function(count) {
if(count == 1) { // if(count == 1) {
//res.json({result: 'success'}); // //res.json({result: 'success'});
res.status(200).end(); // res.status(200).end();
} // }
else { // else {
//res.json({result: 'failure'}); // //res.json({result: 'failure'});
res.status(400).end(); // res.status(400).end();
} // }
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
//res.json({result: 'failure'}); // //res.json({result: 'failure'});
res.status(400).end(); // res.status(400).end();
}); // });
break; // break;
} // }
case 'restore': { // case 'restore': {
params.paranoid = false; // params.paranoid = false;
model.find(params).then(function(value) { // model.find(params).then(function(value) {
if(value) { // if(value) {
value.setDataValue('deletedAt', null); // value.setDataValue('deletedAt', null);
value.save({paranoid: false}).then(function() { // value.save({paranoid: false}).then(function() {
res.status(200).end(); // res.status(200).end();
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
res.status(400).end(); // res.status(400).end();
}); // });
} // }
else { // else {
res.status(400).end(); // res.status(400).end();
} // }
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
res.status(400).end(); // res.status(400).end();
}); // });
break; // break;
} // }
case 'update': // case 'update':
case 'change': // case 'change':
case 'edit': // case 'edit':
case 'modify': { // case 'modify': {
model.findById(params.id, {}).then(function(myModel) { // model.findById(params.id, {}).then(function(myModel) {
for(var key in params) { // for(var key in params) {
if(key != 'id') { // if(key != 'id') {
myModel[key] = params[key]; // myModel[key] = params[key];
} // }
} // }
//
return myModel.save(); // return myModel.save();
}).then(function() { // }).then(function() {
//res.json({result: 'success'}); // //res.json({result: 'success'});
res.status(200).end(); // res.status(200).end();
}).catch(function(err) { // }).catch(function(err) {
console.log(err); // console.log(err);
//res.json({result: 'failure'}); // //res.json({result: 'failure'});
res.status(400).end(); // res.status(400).end();
}); // });
break; // break;
} // }
default: { // default: {
res.status(400).end(); // res.status(400).end();
break; // break;
} // }
} // }
} // }
} // }
else { // else {
//TODO: Return some kind of error. // //TODO: Return some kind of error.
res.status(400).end(); // res.status(400).end();
} // }
} // }
catch(e) { // catch(e) {
console.log(e); // console.log(e);
res.status(400).end(); // res.status(400).end();
} // }
}); //});
/*
app.get('/admin/getCategories', isLoggedIn, function(req, res) {
sequelize.models.Category.findAll({attributes: ['id', 'name', 'visible'], order: [['name', 'DESC'], ['visible', 'DESC']]}).then(function(values) {
res.json(values);
});
});
app.get('/admin/getSubcategories', isLoggedIn, function(req, res) {
sequelize.models.Subcategory.findAll({where: {categoryId: req.query.id}, attributes: ['id', 'name', 'visible'], order: [['name', 'DESC'], ['visible', 'DESC']]}).then(function(values) {
res.json(values);
}).catch(function(error) {
console.log(error);
res.json("[]");
});
});
app.get('/admin/getItems', isLoggedIn, function(req, res) {
sequelize.models.Item.findAll({where: {subcategoryId: req.query.id}, attributes: ['id', 'name', 'counts', 'visible', 'subcategoryId'], order: [['name', 'DESC'], ['visible', 'DESC']]}).then(function(values) {
res.json(values);
});
});
app.get('/admin/getMeasures', isLoggedIn, function(req, res) {
sequelize.models.Measure.findAll({attributes: ['id', 'name', "image", 'postfix', 'visible'], order: [['name', 'DESC'], ['visible', 'DESC']]}).then(function(values) {
res.json(values);
});
});
app.get('/admin/getVenues', isLoggedIn, function(req, res) {
sequelize.models.Venue.findAll({attributes: ['id', 'name', 'visible'], order: [['name', 'DESC'], ['visible', 'DESC']]}).then(function(values) {
res.json(values);
});
});
app.get('/admin/toggleVenueVisibility', isLoggedIn, function(req, res) {
sequelize.models.Venue.find({where: {id: req.query.id}, attributes: ['id', 'name', 'visible']}).then(function(venue) {
if(venue) {
venue.visible = venue.visible ? false : true;
venue.save().then(function() {
res.json({visible: venue.visible});
}).catch(function(error) {
res.json({error: error});
});
}
else {
res.json({error: "Can't find the venue!"});
}
});
});
*/
}; };
// route middleware to make sure a user is logged in // route middleware to make sure a user is logged in
function isLoggedIn(req, res, next) { //function isLoggedIn(req, res, next) {
if(req.isAuthenticated()) return next(); // if(req.isAuthenticated()) return next();
//
//Redirect if the user isn't logged in. // //Redirect if the user isn't logged in.
res.redirect('/admin/login'); // res.redirect('/admin/login');
} //}

View File

@@ -1,29 +0,0 @@
//Server side brainstorm.
module.exports = function(server, sequelize) {
var io = require('socket.io')(server);
io.on('connection', function(socket) {
//TODO: Handle new connections.
//socket.emit("name", {param: 'value'});
//socket.on("name", function(data) {});
socket.on("query", function(params) {
var model = sequelize.models[params.class];
if(model) {
model.findAll().then(function(values) {
});
}
else {
}
});
socket.on('disconnect', function() {
//TODO: ?
});
});
};

View File

@@ -1,14 +0,0 @@
module.exports = {
'url' : 'postgres://PetitTeton:1qaz2wsx@localhost:5432/PetitTeton'
/*
"development": {
"url": "xxxxxxxxxxxxxxxx",
"dialect": "mysql"
},
"production": {
"url": "xxxxxxxxxxxxxxxx",
"dialect": "postgres"
}
*/
};

15
csv.js
View File

@@ -1,15 +0,0 @@
var fs = require("fs");
var csv = require('csv-parse');
module.exports = {
read: function(csvFilePath, callback) {
var parser = csv({delimiter: '\t'}, function(error, data) {
if(error) callback(error);
else callback(null, data);
});
fs.createReadStream(csvFilePath).pipe(parser);
}
};

View File

@@ -1 +0,0 @@
cmd /k "node-debug bin/www"

View File

@@ -1,88 +0,0 @@
var Promise = require('bluebird');
var models = require("./models");
var fm = 0;
var res = 0;
var rt = 0;
var mail = 0;
//First get the basics, then load the items. Finally load sales and production data.
//Create the venue types.
Promise.each([
models.VenueType.findOrCreate({where: {name: 'Farmers Market'}, defaults: {name: 'Farmers Market'}}),
models.VenueType.findOrCreate({where: {name: 'Restaurant'}, defaults: {name: 'Restaurant'}}),
models.VenueType.findOrCreate({where: {name: 'Retail'}, defaults: {name: 'Retail'}}),
models.VenueType.findOrCreate({where: {name: 'Mail'}, defaults: {name: 'Mail'}})
], function(value, index, length) {
switch(index) {
case 0:
fm = value[0].id;
break;
case 1:
res = value[0].id;
break;
case 2:
rt = value[0].id;
break;
case 3:
mail = value[0].id;
break;
}
}).then(function() {
//Create the measures and venues.
Promise.each([
//Initialize the users.
models.User.findOrCreate({where: {login: 'wcrisman'}, defaults: {login: 'wcrisman', password: 'landFJ40', admin: true}}),
//Initialize the measures.
models.Measure.findOrCreate({where: {name: 'Jar 4oz'}, defaults: {name: 'Jar 4oz', postfix: '4oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 8oz'}, defaults: {name: 'Jar 8oz', postfix: '8oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 12oz'}, defaults: {name: 'Jar 12oz', postfix: '12oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 16oz'}, defaults: {name: 'Jar 16oz', postfix: '16oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 32oz'}, defaults: {name: 'Jar 32oz', postfix: '32oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 64oz'}, defaults: {name: 'Jar 64oz', postfix: '64oz'}}),
models.Measure.findOrCreate({where: {name: 'Pounds'}, defaults: {name: 'Pounds', postfix: 'lbs'}}),
models.Measure.findOrCreate({where: {name: 'Each'}, defaults: {name: 'Each', postfix: ''}}),
models.Measure.findOrCreate({where: {name: 'Bags'}, defaults: {name: 'Bags', postfix: 'bags'}}),
models.Measure.findOrCreate({where: {name: 'Dozen Large'}, defaults: {name: 'Dozen Large', postfix: '12/lg'}}),
models.Measure.findOrCreate({where: {name: 'Dozen Small'}, defaults: {name: 'Dozen Small', postfix: '12/sm'}}),
models.Measure.findOrCreate({where: {name: 'Half Dozen Large'}, defaults: {name: 'Half Dozen Large', postfix: '6/lg'}}),
models.Measure.findOrCreate({where: {name: 'Half Dozen Small'}, defaults: {name: 'Half Dozen Small', postfix: '6/sm'}}),
//Initialize the venues.
models.Venue.findOrCreate({where: {name: 'Boonville'}, defaults: {name: 'Boonville', typeId: fm}}),
models.Venue.findOrCreate({where: {name: 'Clement St'}, defaults: {name: 'Clement St', typeId: fm}}),
models.Venue.findOrCreate({where: {name: 'Ukiah'}, defaults: {name: 'Ukiah', typeId: fm}}),
models.Venue.findOrCreate({where: {name: 'Mendocino'}, defaults: {name: 'Mendocino', typeId: fm}}),
models.Venue.findOrCreate({where: {name: 'Ft Bragg'}, defaults: {name: 'Ft Bragg', typeId: fm}}),
models.Venue.findOrCreate({where: {name: 'On Farm'}, defaults: {name: 'On Farm', typeId: rt}}),
models.Venue.findOrCreate({where: {name: 'Unknown Restaurant'}, defaults: {name: 'Unknown Restaurant', typeId: res}}),
models.Venue.findOrCreate({where: {name: 'Yorkville Market'}, defaults: {name: 'Yorkville Market', typeId: rt}}),
models.Venue.findOrCreate({where: {name: 'Yorkville Cellars'}, defaults: {name: 'Yorkville Cellars', typeId: rt}}),
models.Venue.findOrCreate({where: {name: 'Mail Order'}, defaults: {name: 'Mail Order', typeId: mail}}),
models.Venue.findOrCreate({where: {name: 'Website Order'}, defaults: {name: 'Website Order', typeId: mail}})
], function(value, index, length) {
//Ignore results for now.
}).then(function() {
// var softErrors = [];
//
// //Read all the Categories, Subcategories, and Items.
// require('./importItems.js')(models, softErrors).then(function() {
// //Read all the sales data.
// require('./importSales.js')(models, softErrors).then(function() {
// //Log all errors at the end so they are easily visible.
// if(softErrors.length) {
// for(var i = 0; i < softErrors.length; i++) {
// console.log(softErrors[i]);
// }
// }
//
// process.exit(0);
// }).catch(function(e) {
// console.log(e);
// process.exit(1);
// });
// }).catch(function(e) {
// console.log(e);
// process.exit(1);
// });
});
});

View File

@@ -1,206 +0,0 @@
Item Subcategory Category 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total
3packs Specialty VAP 75
Adobo Sauce Condiment VAP 14 9 23 70 70 39 1 40 57% 59 59 59 59 100% 26
Apple Butter Jams & Spreads VAP 42 42 36 36 15 16 31 45 45 145% 60 13 73 30 16 46 63%
Apple Jam Jams & Spreads VAP 48 32 80 4 3 7 9%
Apple Jam, French Jams & Spreads VAP 15 15 15 15 100%
Apple Jam, Rum Jams & Spreads VAP 47 14
Apple Pie Jam Jams & Spreads VAP 38 20 58 16 8 24 41% 74 34 108 34 11 45 42%
Apple Raisin Chutney Chutney VAP 36 36 0 21 21 NEG 0 17 17 NEG
Apple Rhubarb Chutney Chutney VAP 27 27 2 2 7%
Apple Walnut Conserve Jams & Spreads VAP 21
Applesauce Honey Side VAP 20 1 21 9 9 43% 13 13 12 12 92%
Applesauce, Blackberry Side VAP 20 20 9 9 45%
Applesauce, Cinnamon Side VAP 8 8 0 2 2 NEG 29 29 10 10 34%
Applesauce, Quince Side VAP 29 29 0 0%
Applesauce, Rhubarb Side VAP 18 18 5 5 28%
Applesauce, Unsweetened Side VAP 7 7 11 11 35 35 8 1 9 26% 47 1 48 33 33 69%
Applesauce. Strawberry Side VAP 36 36 10 10 28%
Artichoke Antipasto Side VAP 15 15 17 17 113% 0
Baba Ganoush Condiment VAP 14 1
Bangkok Peppers Side VAP 53 53 5 5 9%
Bartlett Pear jam Jams & Spreads VAP 69 69 24 10 34 58 6 64 188% 28 21 49 24 12 36 73%
Bartlett Vanilla Jam Jams & Spreads VAP 15 9 24 1 4 5 21% 35 5 40 16 2 18 45%
BBQ Sauce Condiment VAP 18 18 15 7 22 0 1 3 4 NEG 28 28 24 24 86%
Beet Marmalade Jams & Spreads VAP 23 38 61 5 16 21 34% 12 15 27 27 19 46 170% 10 18
Blackberry Chutney Chutney VAP 26
Blackberry Hazelnut Conserve Jams & Spreads VAP 22
Blackberry Jalapeno Jam Jams & Spreads VAP 15 18
Blackberry Jam Jams & Spreads VAP 32 32 24 24 67 25 92 41 23 64 70% 102 51 153 92 25 117 76% 50
Blackberry Jelly Jams & Spreads VAP 20 20 10 10 50% 0 11 1 12 NEG
Blackberry Mint Jam Jams & Spreads VAP 21
Blackberry Peach Jam Jams & Spreads VAP 16 2 18 10 2 12 67% 0 5 5 NEG
Blackberry Syrup Drink Mixes & Syrups VAP 1 17 18 22 22 122%
Blackberry Vanilla Jam Jams & Spreads VAP 65 20 85 38 8 46 54% 28 3
Bloody Mary Mix Drink Mixes & Syrups VAP 9 9 72 72 53 53 74% 167 167 112 112 67%
Bosc Pear Chutney Chutney VAP 15 15 2 2 13% 0 15 15 NEG
Bosc Pear Jam Jams & Spreads VAP 18 18 2 21 23 128% 0 10 10 NEG
Brinjal Eggplant Relish Pickles & Relishes VAP 0 11 11 NEG
Candied Quince Side VAP 0 4 4 NEG
Catsup Condiment VAP 37 28 65 38 13 7 58 55 7 62 38 14 52 84% 49 49 2 40 42 86%
Chili Sauce Condiment VAP 18 18 11 11 61% 0 3 3 NEG
Chow Chow Mild Pickles & Relishes VAP 25 25 5 5 20% 0 12 12 NEG
Chow Chow Spicy Pickles & Relishes VAP 27 27 6 6 22% 0 19 19 NEG
Comice Pear Jam Jams & Spreads VAP 17 7 24 12 5 17 71%
Comice Pear Jam w/ Sherry Jams & Spreads VAP 36 36 27 27 75%
Confetti Relish Pickles & Relishes VAP 0 2 2 NEG
Cowboy Candy Side VAP 38 38 76 13 2 15 20%
Curried Onions Side VAP 11 11 0 0%
D'Anjou Pear Conserve Jams & Spreads VAP 0 2 2 NEG
D'Anjou Pear Jam Jams & Spreads VAP 38 16 54 3 3 6% 14 36 50 42 20 62 124%
Dilly Beans Pickles & Relishes VAP 17 17 34 20 20 11 134 145 15 36 51 35% 11 73 84 6 98 104 124%
Dried, Pear Dried VAP 1
Dried, Strawberry Dried VAP 22
Dried, Tomatillo Dried VAP 2
Dried Tomato Dried VAP 56 18 32%
Eggplant Conserve Jams & Spreads VAP 21 21 10 14 24 22 3 25 104% 18 36 54 9 3 12 22%
Pesto, Eggplant Condiment VAP 12 2 17%
Pesto, Garlic Scape Condiment VAP 13 12 92%
Elderberry Butter Jams & Spreads VAP 23 23 23 23 100% 36 36 36 36 100%
Enchilada Sauce Condiment VAP 3 9 12 9 9 75%
Espelette Peppers Side VAP 36 36 3 3 8% 86 86 60 60 70%
Fava Bean Bisque Soup VAP 9 9 0 0%
Fava Bean Soup Soup VAP 23 7 30 20 7 27 90% 19 1 20 21 21 105%
Fennel Relish Pickles & Relishes VAP 4 4 0 4 4 NEG 22 22 10 10 45%
Fig Jam Jams & Spreads VAP 23 8 31 61 21 82 69 44 113 40 5 45 40% 97 41 138 82 33 115 83%
Ginger Peaches Side VAP 17 17 11 11 65% 0 6 6 NEG
Grape Jam Jams & Spreads VAP 20 12 32 7 3 10 26 12 38 6 5 11 29% 22 13 35 12 10 22 63%
Grape Jam, White Jams & Spreads VAP 36 36 0 0%
Grape Syrup Drink Mixes & Syrups VAP 9 4 13 2 2 15%
Green Gage Jam Jams & Spreads VAP 24 24 48 0 14 8 22 NEG 28 17 45 21 21 47%
Green Gage Jam w/ Ginger Jams & Spreads VAP 40 4 44 10 1 11 25%
Green Gage Jelly Jams & Spreads VAP 0 6 6 NEG
Green Tomato Catsup Condiment VAP 19 19 0 0%
Green Tomato Chutney Chutney VAP 24 24 19 19 42 42 17 17 40% 0 16 16 NEG
Green Tomato Jam Jams & Spreads VAP 12 6 18 58 10 68 38 3 41 60% 15 12 27 17 13 30 111%
Green Tomato Relish Pickles & Relishes VAP 72 72 1 1 1%
Green Tomato Salsa Condiment VAP 42 42 4 4 10%
Jalapeno Salsa Condiment VAP 35 35 19 19 54% 58 12 70 37 37 53%
Jalapeno Carrot Hot Sauce Condiment VAP 12 12 11 11 92%
Jalapenos Side VAP 30 30 8 8 27% 38 38 20 20 53%
Jalapeno Candy Specialty VAP 101 115 114%
Jujube & Ginger Butter Jams & Spreads VAP 4 4 4 4 100% 16 11 27 5 4 9 33%
Jujube Butter Jams & Spreads VAP 13 11 24 13 13 30 19 49 9 10 19 39% 0 22 2 24 NEG
Kadota Figs Side VAP 0 2 2 NEG
Kimchi Fermented VAP 12 23 136 136 52 52 38% 40 40 113 113 283%
Korean Peppers Side VAP 58 58 8 8 14% 0 29 29 NEG
Lard Specialty VAP 38 38 15 15 39% 20 1 21 21 21 100%
Leather, Unspecified Dried VAP 52
Leather, Apple Dried VAP 18 4 22%
Leather, Grape Dried VAP 46 10 22%
Leather, Peach Dried VAP 18 6 33%
Leather, Persimmon Dried VAP 6 0%
Leather, Pumpkin Dried VAP 102 69 68%
Leather, Strawberry Dried VAP 60 56 93%
Leek & Potato Soup Soup VAP 21 4 25 2 2 4 16% 0 2 2 NEG
Marionberry Jam Jams & Spreads VAP 17 6 23 8 4 12 86 42 128 51 32 83 65% 110 41 151 89 28 117 77%
Membrillo Dried VAP 48 66 138%
Membrillo Truffles Specialty VAP 8 NEG
Mint Jelly Jams & Spreads VAP 23 23 3 3 13% 0 13 13 NEG
Mixed Berry Jam Jams & Spreads VAP 5 5 26 12 38 21 11 32 84% 18 33 51 18 25 43 84%
Napa Kraut watercress pepper Fermented VAP 28 28 15 15 54%
Napa Kraut, Onion Fermented VAP 26 26 19 19 73%
Onion Marmalade Jams & Spreads VAP 60 60 27 27 45% 0 27 27 NEG
Pasta sauce Condiment VAP 14 14 14 14 100%
Peach BBQ Condiment VAP 18 18 5 5 28%
Peach Butter Jams & Spreads VAP 30 30 26 26 87% 0 1 1 NEG
Peach Chutney Chutney VAP 13 7 20 58 58 9 32 41 71% 0 23 23 NEG
Peach Jam Jams & Spreads VAP 18 5 23 19 3 22 96%
Peach Jam, Babcobk w/ Ginger Jams & Spreads VAP 36 17 53 9 4 13 25%
Peach Jam, Babcock Jams & Spreads VAP 20 10 30 18 8 26 87% 89 41 130 25 12 37 28%
Peach Jam, Babcock w/ Lavender Jams & Spreads VAP 54 34 88 21 12 33 38%
Peach Jam, Indian Free Jams & Spreads VAP 55 24 79 17 4 21 27%
Peach Jam, Saturn Jams & Spreads VAP 19 19 10 10 53%
Pear Apple Jam Jams & Spreads VAP 30 20 50 0 0% 0 16 13 29 NEG
Pear Chutney Chutney VAP 18 18 6 6 33% 42 42 9 9 21%
Pear Dessert Topping Condiment VAP 14 14 2 2 14% 0 5 5 NEG
Pear Ginger Butter Jams & Spreads VAP 36 17 53 21 21 48 30 78 45 16 61 78% 29 8 37 35 20 55 149%
Pear Jam, Seckel Jams & Spreads VAP 55 55 31 21 52 36 4 40 77% 0 18 4 22 NEG
Pear Syrup Drink Mixes & Syrups VAP 9 2 11 8 2 10 91% 0 11 11 NEG
Pearsauce Side VAP 36 36 1 1 3% 0 15 15 NEG
Pepper Jelly Jams & Spreads VAP 35 32 67 16 1 17 30 12 42 247% 66 44 110 47 27 74 67%
Pesto, Mint Condiment VAP 57 47 82%
Pickle Relish Pickles & Relishes VAP 0 0 0% 0 3 3 NEG
Pickled Asparagus Pickles & Relishes VAP 50 50 47 47 94% 105 105 73 73 70%
Pickled Beets Pickles & Relishes VAP 8 8 44 44 31 31 70% 39 39 47 47 121%
Pickled Eggs Pickles & Relishes VAP 10 10 26 26 50 50 49 49 98% 53 53 37 37 70%
Pickled Eggplant Pickles & Relishes VAP 0 4 4 NEG
Pickled Fennel Pickles & Relishes VAP 22 4 26 4 27 31 3 7 10 32% 17 17 6 6 35%
Pickled Okra Pickles & Relishes VAP 7 7 9 1 7 5 22 59 4 63 6 28 3 37 59% 4 65 1 70 52 52 74%
Pickled Onions (sweet) Pickles & Relishes VAP 1 11 12 1 5 6 50% 0 2 2 NEG
Pickled Onion Dill w/Espelette Pickles & Relishes VAP 13 13 4 4 31%
Pickled Onion Dill w/Sweet Pep. Pickles & Relishes VAP 15 15 8 8 53%
Pickled Onions Fennel Pickles & Relishes VAP 42 42 23 23 55%
Pickled Onions, Dill Pickles & Relishes VAP 2 2 0 0%
Pickled Peas Pickles & Relishes VAP 0 3 3 NEG
Pickled Scapes Pickles & Relishes VAP 24 24 18 18 75% 0 5 5 NEG
Pickled Summer Squash Pickles & Relishes VAP 9 9 76 76 10 10 13% 0 59 59 NEG
Pickles, Bread Butter Pickles & Relishes VAP 22 22 20 20 18 18 23 3 26 144% 96 96 67 67 70%
Pickles, Dill Pickles & Relishes VAP 40 7 47 66 21 87 87 26 113 75 22 97 86% 165 165 75 75 45%
Pickles, Fennel Pickles & Relishes VAP 21 21 17 17 81% 109 109 47 47 43%
Pickles, Ginger Garlic Pickles & Relishes VAP 13 13 2 33 35 27 27 77% 49 49 48 48 98%
Pickles, Green Tomato Pickles & Relishes VAP 0 4 4 NEG 24 24 2 2 8%
Pippin Apple Chutney Chutney VAP 41 41 15 15 37%
Plum BBQ Condiment VAP 0 1 1 NEG
Plum Jam Jams & Spreads VAP 21 21 49 12 61 21 8 29 48% 16 7 23 38 10 48 209%
Plum Jam, Spiced Jams & Spreads VAP 25 6 31 3 4 7 23% 0 2 1 3 NEG
Plum Jam, Santa Rosa Jams & Spreads VAP 13 11 24 66 9 75 31 9 40 53%
Plum Sauce Condiment VAP 0 14 14 NEG
Plum Syrup Drink Mixes & Syrups VAP 3 3 4 4 133%
Popsicles Specialty VAP 249 205 82%
Prickly Pear Jelly Jams & Spreads VAP 46 24 70 4 4 6% 0 22 3 25 NEG
Prickly Pear Syrup Drink Mixes & Syrups VAP 20 21 8 49 11 11 22%
Pumpkin Chutney Chutney VAP 11 11 11 11 100% 0
Quince Chutney Chutney VAP 65 65 0 35 35 NEG 0
Quince Butter Jams & Spreads VAP 29 12 41 19 8 27 66% 0 7 7 NEG
Quince Fennel Butter Jams & Spreads VAP 69 51 120 33 21 54 45% 49 7 56 30 12 42 75%
Quince Jam Jams & Spreads VAP 51 11 62 44 25 69 50 17 67 97% 68 33 101 52 25 77 76%
Quince Jam w/ Cinnamon Jams & Spreads VAP 14 14 1 1 7%
Quince Plum Jam Jams & Spreads VAP 55 55 23 23 42% 0 17 17 NEG
Quince Syrup Drink Mixes & Syrups VAP 23 23 7 7 30% 0 21 21 NEG
Raspberry Jam Jams & Spreads VAP 25 12 37 15 6 21 57% 7 31 38 19 24 43 113%
Ratatouille Relish Pickles & Relishes VAP 43 43 5 5 12%
Rhubarb Jam Jams & Spreads VAP 38 14 52 31 14 45 87% 0 1 1 NEG
Salsa Verde Condiment VAP 6 39 11 56 94 94 38 38 40% 53 53 74 74 140%
Sauerkraut Fermented VAP 108 108 34 34 31% 99 99
Sauerkraut, Red Fermented VAP 15 15 71 71 47 47 66% 67 67 35 35 52%
Shrubs Specialty VAP 1 2 46 49 1 25 26 53%
Sorrel Soup Soup VAP 7 3 10 4 3 7 70% 0 1 1 2 NEG
Spices, Unspecified Dried VAP 14
Spices, Basil/Corriander Dried VAP 4
Spices, Fennel Dried VAP 1
Spices, Pepper Dried VAP 8
Spices, Smoked Pepper Dried VAP 20
Spicy Pepper Relish Pickles & Relishes VAP 73 1 74 31 1 32 43% 20 20 33 33 165%
Spicy Pepper Syrup Drink Mixes & Syrups VAP 12 12 1 1 8% 14 9 23 6 6 26%
Spicy Walla Walla w/ Bangkok Side VAP 7 7 0 0%
Spring Onion Relish Pickles & Relishes VAP 12 12 8 8 67% 0 3 3 NEG
Spring Onion Soup Soup VAP 19 5 24 5 5 21% 0 4 7 11 NEG
Strawberry Espelette Jam Jams & Spreads VAP 21 21 100 100 52 52 52% 0 25 25 NEG
Strawberry Jam Jams & Spreads VAP 20 10 30 179 51 230 105 34 139 60% 100 28 128 125 34 159 124%
Strawberry Balsamic Jam Jams & Spreads VAP 12 12 10 10 83% 8 8 0%
Strawberry Lavender Jam Jams & Spreads VAP 59 38 97 52 27 79 81% 100 49 149 92 40 132 89%
Strawberry Peach Jam Jams & Spreads VAP 55 19 74 35 8 43 58% 104 40 144 56 12 68 47%
Strawberry Pear Jam Jams & Spreads VAP 72 25 97 19 6 25 26% 0 46 16 62 NEG
Strawberry Quince Jam Jams & Spreads VAP 8 8 6 6 75%
Strawberry Rhubarb Jam Jams & Spreads VAP 48 23 71 34 7 41 58% 96 38 134 104 20 124 93%
Strawberry Syrup Drink Mixes & Syrups VAP 0 4 4 NEG 1 23 24 14 14 58%
Strawberry Vanilla Jam Jams & Spreads VAP 20 6 26 52 9 61 63 42 105 66 37 103 98% 86 27 113 80 23 103 91%
Strawberry Vanilla Syrup Drink Mixes & Syrups VAP 5 5 0 0%
Sweet Pepper Relish Pickles & Relishes VAP 26 26 12 12 46%
Sweet Peppers Condiment VAP 18 18 27 14 41 12 12 29% 0 16 4 20 NEG
Sweet Sour Red Cabbage Side VAP 43 43 16 16 37% 0 20 20 NEG
Szechuan Broccoli Pickles & Relishes VAP 0 1 2 3 NEG
Tayberry Jam Jams & Spreads VAP 12 12 11 10 21 175% 38 12 50 36 8 44 88%
Tomatillo Chutney Chutney VAP 19 19 5 5 72 72 10 3 13 18% 0 19 19 NEG
Tomatillo Jam Jams & Spreads VAP 6 27 33 4 4 12% 37 6 43 41 12 53 123%
Tomato Basil Soup Soup VAP 42 6 48 36 4 40 83% 31 1 32 26 5 31 97%
Tomato Juice Cocktail Drink Mixes & Syrups VAP 9 9 0 0% 0 9 9 NEG
Tomato Sauce, Basil Condiment VAP 29 29 24 24 4 16 20 83% 35 35 30 30 86%
Tomato Sauce, Fennel Condiment VAP 8 8 2 2 25% 0 9 9 NEG
Tomato Sauce, Oregano Condiment VAP 28 28 2 2 7% 23 23 19 19 83%
Tokyo Turnips Pickles & Relishes VAP 17 17 18 18 0 6 6 NEG
White Peach Chutney Chutney VAP 0 18 8 26 NEG 15 15 6 6 40%
Wild Plum Jam Jams & Spreads VAP 35 35 15 15 43%
Wild Plum Syrup Drink Mixes & Syrups VAP 13 1 14 8 8 57%
Winter Squash Soup Soup VAP 21 21 7 7 12 1 13 186% 22 22 8 1 9 41%
1 Item Subcategory Category 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total 32 oz 16 oz 12 oz 8 oz 4 oz Total
2 3packs Specialty VAP 75
3 Adobo Sauce Condiment VAP 14 9 23 70 70 39 1 40 57% 59 59 59 59 100% 26
4 Apple Butter Jams & Spreads VAP 42 42 36 36 15 16 31 45 45 145% 60 13 73 30 16 46 63%
5 Apple Jam Jams & Spreads VAP 48 32 80 4 3 7 9%
6 Apple Jam, French Jams & Spreads VAP 15 15 15 15 100%
7 Apple Jam, Rum Jams & Spreads VAP 47 14
8 Apple Pie Jam Jams & Spreads VAP 38 20 58 16 8 24 41% 74 34 108 34 11 45 42%
9 Apple Raisin Chutney Chutney VAP 36 36 0 21 21 NEG 0 17 17 NEG
10 Apple Rhubarb Chutney Chutney VAP 27 27 2 2 7%
11 Apple Walnut Conserve Jams & Spreads VAP 21
12 Applesauce Honey Side VAP 20 1 21 9 9 43% 13 13 12 12 92%
13 Applesauce, Blackberry Side VAP 20 20 9 9 45%
14 Applesauce, Cinnamon Side VAP 8 8 0 2 2 NEG 29 29 10 10 34%
15 Applesauce, Quince Side VAP 29 29 0 0%
16 Applesauce, Rhubarb Side VAP 18 18 5 5 28%
17 Applesauce, Unsweetened Side VAP 7 7 11 11 35 35 8 1 9 26% 47 1 48 33 33 69%
18 Applesauce. Strawberry Side VAP 36 36 10 10 28%
19 Artichoke Antipasto Side VAP 15 15 17 17 113% 0
20 Baba Ganoush Condiment VAP 14 1
21 Bangkok Peppers Side VAP 53 53 5 5 9%
22 Bartlett Pear jam Jams & Spreads VAP 69 69 24 10 34 58 6 64 188% 28 21 49 24 12 36 73%
23 Bartlett Vanilla Jam Jams & Spreads VAP 15 9 24 1 4 5 21% 35 5 40 16 2 18 45%
24 BBQ Sauce Condiment VAP 18 18 15 7 22 0 1 3 4 NEG 28 28 24 24 86%
25 Beet Marmalade Jams & Spreads VAP 23 38 61 5 16 21 34% 12 15 27 27 19 46 170% 10 18
26 Blackberry Chutney Chutney VAP 26
27 Blackberry Hazelnut Conserve Jams & Spreads VAP 22
28 Blackberry Jalapeno Jam Jams & Spreads VAP 15 18
29 Blackberry Jam Jams & Spreads VAP 32 32 24 24 67 25 92 41 23 64 70% 102 51 153 92 25 117 76% 50
30 Blackberry Jelly Jams & Spreads VAP 20 20 10 10 50% 0 11 1 12 NEG
31 Blackberry Mint Jam Jams & Spreads VAP 21
32 Blackberry Peach Jam Jams & Spreads VAP 16 2 18 10 2 12 67% 0 5 5 NEG
33 Blackberry Syrup Drink Mixes & Syrups VAP 1 17 18 22 22 122%
34 Blackberry Vanilla Jam Jams & Spreads VAP 65 20 85 38 8 46 54% 28 3
35 Bloody Mary Mix Drink Mixes & Syrups VAP 9 9 72 72 53 53 74% 167 167 112 112 67%
36 Bosc Pear Chutney Chutney VAP 15 15 2 2 13% 0 15 15 NEG
37 Bosc Pear Jam Jams & Spreads VAP 18 18 2 21 23 128% 0 10 10 NEG
38 Brinjal Eggplant Relish Pickles & Relishes VAP 0 11 11 NEG
39 Candied Quince Side VAP 0 4 4 NEG
40 Catsup Condiment VAP 37 28 65 38 13 7 58 55 7 62 38 14 52 84% 49 49 2 40 42 86%
41 Chili Sauce Condiment VAP 18 18 11 11 61% 0 3 3 NEG
42 Chow Chow Mild Pickles & Relishes VAP 25 25 5 5 20% 0 12 12 NEG
43 Chow Chow Spicy Pickles & Relishes VAP 27 27 6 6 22% 0 19 19 NEG
44 Comice Pear Jam Jams & Spreads VAP 17 7 24 12 5 17 71%
45 Comice Pear Jam w/ Sherry Jams & Spreads VAP 36 36 27 27 75%
46 Confetti Relish Pickles & Relishes VAP 0 2 2 NEG
47 Cowboy Candy Side VAP 38 38 76 13 2 15 20%
48 Curried Onions Side VAP 11 11 0 0%
49 D'Anjou Pear Conserve Jams & Spreads VAP 0 2 2 NEG
50 D'Anjou Pear Jam Jams & Spreads VAP 38 16 54 3 3 6% 14 36 50 42 20 62 124%
51 Dilly Beans Pickles & Relishes VAP 17 17 34 20 20 11 134 145 15 36 51 35% 11 73 84 6 98 104 124%
52 Dried, Pear Dried VAP 1
53 Dried, Strawberry Dried VAP 22
54 Dried, Tomatillo Dried VAP 2
55 Dried Tomato Dried VAP 56 18 32%
56 Eggplant Conserve Jams & Spreads VAP 21 21 10 14 24 22 3 25 104% 18 36 54 9 3 12 22%
57 Pesto, Eggplant Condiment VAP 12 2 17%
58 Pesto, Garlic Scape Condiment VAP 13 12 92%
59 Elderberry Butter Jams & Spreads VAP 23 23 23 23 100% 36 36 36 36 100%
60 Enchilada Sauce Condiment VAP 3 9 12 9 9 75%
61 Espelette Peppers Side VAP 36 36 3 3 8% 86 86 60 60 70%
62 Fava Bean Bisque Soup VAP 9 9 0 0%
63 Fava Bean Soup Soup VAP 23 7 30 20 7 27 90% 19 1 20 21 21 105%
64 Fennel Relish Pickles & Relishes VAP 4 4 0 4 4 NEG 22 22 10 10 45%
65 Fig Jam Jams & Spreads VAP 23 8 31 61 21 82 69 44 113 40 5 45 40% 97 41 138 82 33 115 83%
66 Ginger Peaches Side VAP 17 17 11 11 65% 0 6 6 NEG
67 Grape Jam Jams & Spreads VAP 20 12 32 7 3 10 26 12 38 6 5 11 29% 22 13 35 12 10 22 63%
68 Grape Jam, White Jams & Spreads VAP 36 36 0 0%
69 Grape Syrup Drink Mixes & Syrups VAP 9 4 13 2 2 15%
70 Green Gage Jam Jams & Spreads VAP 24 24 48 0 14 8 22 NEG 28 17 45 21 21 47%
71 Green Gage Jam w/ Ginger Jams & Spreads VAP 40 4 44 10 1 11 25%
72 Green Gage Jelly Jams & Spreads VAP 0 6 6 NEG
73 Green Tomato Catsup Condiment VAP 19 19 0 0%
74 Green Tomato Chutney Chutney VAP 24 24 19 19 42 42 17 17 40% 0 16 16 NEG
75 Green Tomato Jam Jams & Spreads VAP 12 6 18 58 10 68 38 3 41 60% 15 12 27 17 13 30 111%
76 Green Tomato Relish Pickles & Relishes VAP 72 72 1 1 1%
77 Green Tomato Salsa Condiment VAP 42 42 4 4 10%
78 Jalapeno Salsa Condiment VAP 35 35 19 19 54% 58 12 70 37 37 53%
79 Jalapeno Carrot Hot Sauce Condiment VAP 12 12 11 11 92%
80 Jalapenos Side VAP 30 30 8 8 27% 38 38 20 20 53%
81 Jalapeno Candy Specialty VAP 101 115 114%
82 Jujube & Ginger Butter Jams & Spreads VAP 4 4 4 4 100% 16 11 27 5 4 9 33%
83 Jujube Butter Jams & Spreads VAP 13 11 24 13 13 30 19 49 9 10 19 39% 0 22 2 24 NEG
84 Kadota Figs Side VAP 0 2 2 NEG
85 Kimchi Fermented VAP 12 23 136 136 52 52 38% 40 40 113 113 283%
86 Korean Peppers Side VAP 58 58 8 8 14% 0 29 29 NEG
87 Lard Specialty VAP 38 38 15 15 39% 20 1 21 21 21 100%
88 Leather, Unspecified Dried VAP 52
89 Leather, Apple Dried VAP 18 4 22%
90 Leather, Grape Dried VAP 46 10 22%
91 Leather, Peach Dried VAP 18 6 33%
92 Leather, Persimmon Dried VAP 6 0%
93 Leather, Pumpkin Dried VAP 102 69 68%
94 Leather, Strawberry Dried VAP 60 56 93%
95 Leek & Potato Soup Soup VAP 21 4 25 2 2 4 16% 0 2 2 NEG
96 Marionberry Jam Jams & Spreads VAP 17 6 23 8 4 12 86 42 128 51 32 83 65% 110 41 151 89 28 117 77%
97 Membrillo Dried VAP 48 66 138%
98 Membrillo Truffles Specialty VAP 8 NEG
99 Mint Jelly Jams & Spreads VAP 23 23 3 3 13% 0 13 13 NEG
100 Mixed Berry Jam Jams & Spreads VAP 5 5 26 12 38 21 11 32 84% 18 33 51 18 25 43 84%
101 Napa Kraut watercress pepper Fermented VAP 28 28 15 15 54%
102 Napa Kraut, Onion Fermented VAP 26 26 19 19 73%
103 Onion Marmalade Jams & Spreads VAP 60 60 27 27 45% 0 27 27 NEG
104 Pasta sauce Condiment VAP 14 14 14 14 100%
105 Peach BBQ Condiment VAP 18 18 5 5 28%
106 Peach Butter Jams & Spreads VAP 30 30 26 26 87% 0 1 1 NEG
107 Peach Chutney Chutney VAP 13 7 20 58 58 9 32 41 71% 0 23 23 NEG
108 Peach Jam Jams & Spreads VAP 18 5 23 19 3 22 96%
109 Peach Jam, Babcobk w/ Ginger Jams & Spreads VAP 36 17 53 9 4 13 25%
110 Peach Jam, Babcock Jams & Spreads VAP 20 10 30 18 8 26 87% 89 41 130 25 12 37 28%
111 Peach Jam, Babcock w/ Lavender Jams & Spreads VAP 54 34 88 21 12 33 38%
112 Peach Jam, Indian Free Jams & Spreads VAP 55 24 79 17 4 21 27%
113 Peach Jam, Saturn Jams & Spreads VAP 19 19 10 10 53%
114 Pear Apple Jam Jams & Spreads VAP 30 20 50 0 0% 0 16 13 29 NEG
115 Pear Chutney Chutney VAP 18 18 6 6 33% 42 42 9 9 21%
116 Pear Dessert Topping Condiment VAP 14 14 2 2 14% 0 5 5 NEG
117 Pear Ginger Butter Jams & Spreads VAP 36 17 53 21 21 48 30 78 45 16 61 78% 29 8 37 35 20 55 149%
118 Pear Jam, Seckel Jams & Spreads VAP 55 55 31 21 52 36 4 40 77% 0 18 4 22 NEG
119 Pear Syrup Drink Mixes & Syrups VAP 9 2 11 8 2 10 91% 0 11 11 NEG
120 Pearsauce Side VAP 36 36 1 1 3% 0 15 15 NEG
121 Pepper Jelly Jams & Spreads VAP 35 32 67 16 1 17 30 12 42 247% 66 44 110 47 27 74 67%
122 Pesto, Mint Condiment VAP 57 47 82%
123 Pickle Relish Pickles & Relishes VAP 0 0 0% 0 3 3 NEG
124 Pickled Asparagus Pickles & Relishes VAP 50 50 47 47 94% 105 105 73 73 70%
125 Pickled Beets Pickles & Relishes VAP 8 8 44 44 31 31 70% 39 39 47 47 121%
126 Pickled Eggs Pickles & Relishes VAP 10 10 26 26 50 50 49 49 98% 53 53 37 37 70%
127 Pickled Eggplant Pickles & Relishes VAP 0 4 4 NEG
128 Pickled Fennel Pickles & Relishes VAP 22 4 26 4 27 31 3 7 10 32% 17 17 6 6 35%
129 Pickled Okra Pickles & Relishes VAP 7 7 9 1 7 5 22 59 4 63 6 28 3 37 59% 4 65 1 70 52 52 74%
130 Pickled Onions (sweet) Pickles & Relishes VAP 1 11 12 1 5 6 50% 0 2 2 NEG
131 Pickled Onion Dill w/Espelette Pickles & Relishes VAP 13 13 4 4 31%
132 Pickled Onion Dill w/Sweet Pep. Pickles & Relishes VAP 15 15 8 8 53%
133 Pickled Onions Fennel Pickles & Relishes VAP 42 42 23 23 55%
134 Pickled Onions, Dill Pickles & Relishes VAP 2 2 0 0%
135 Pickled Peas Pickles & Relishes VAP 0 3 3 NEG
136 Pickled Scapes Pickles & Relishes VAP 24 24 18 18 75% 0 5 5 NEG
137 Pickled Summer Squash Pickles & Relishes VAP 9 9 76 76 10 10 13% 0 59 59 NEG
138 Pickles, Bread Butter Pickles & Relishes VAP 22 22 20 20 18 18 23 3 26 144% 96 96 67 67 70%
139 Pickles, Dill Pickles & Relishes VAP 40 7 47 66 21 87 87 26 113 75 22 97 86% 165 165 75 75 45%
140 Pickles, Fennel Pickles & Relishes VAP 21 21 17 17 81% 109 109 47 47 43%
141 Pickles, Ginger Garlic Pickles & Relishes VAP 13 13 2 33 35 27 27 77% 49 49 48 48 98%
142 Pickles, Green Tomato Pickles & Relishes VAP 0 4 4 NEG 24 24 2 2 8%
143 Pippin Apple Chutney Chutney VAP 41 41 15 15 37%
144 Plum BBQ Condiment VAP 0 1 1 NEG
145 Plum Jam Jams & Spreads VAP 21 21 49 12 61 21 8 29 48% 16 7 23 38 10 48 209%
146 Plum Jam, Spiced Jams & Spreads VAP 25 6 31 3 4 7 23% 0 2 1 3 NEG
147 Plum Jam, Santa Rosa Jams & Spreads VAP 13 11 24 66 9 75 31 9 40 53%
148 Plum Sauce Condiment VAP 0 14 14 NEG
149 Plum Syrup Drink Mixes & Syrups VAP 3 3 4 4 133%
150 Popsicles Specialty VAP 249 205 82%
151 Prickly Pear Jelly Jams & Spreads VAP 46 24 70 4 4 6% 0 22 3 25 NEG
152 Prickly Pear Syrup Drink Mixes & Syrups VAP 20 21 8 49 11 11 22%
153 Pumpkin Chutney Chutney VAP 11 11 11 11 100% 0
154 Quince Chutney Chutney VAP 65 65 0 35 35 NEG 0
155 Quince Butter Jams & Spreads VAP 29 12 41 19 8 27 66% 0 7 7 NEG
156 Quince Fennel Butter Jams & Spreads VAP 69 51 120 33 21 54 45% 49 7 56 30 12 42 75%
157 Quince Jam Jams & Spreads VAP 51 11 62 44 25 69 50 17 67 97% 68 33 101 52 25 77 76%
158 Quince Jam w/ Cinnamon Jams & Spreads VAP 14 14 1 1 7%
159 Quince Plum Jam Jams & Spreads VAP 55 55 23 23 42% 0 17 17 NEG
160 Quince Syrup Drink Mixes & Syrups VAP 23 23 7 7 30% 0 21 21 NEG
161 Raspberry Jam Jams & Spreads VAP 25 12 37 15 6 21 57% 7 31 38 19 24 43 113%
162 Ratatouille Relish Pickles & Relishes VAP 43 43 5 5 12%
163 Rhubarb Jam Jams & Spreads VAP 38 14 52 31 14 45 87% 0 1 1 NEG
164 Salsa Verde Condiment VAP 6 39 11 56 94 94 38 38 40% 53 53 74 74 140%
165 Sauerkraut Fermented VAP 108 108 34 34 31% 99 99
166 Sauerkraut, Red Fermented VAP 15 15 71 71 47 47 66% 67 67 35 35 52%
167 Shrubs Specialty VAP 1 2 46 49 1 25 26 53%
168 Sorrel Soup Soup VAP 7 3 10 4 3 7 70% 0 1 1 2 NEG
169 Spices, Unspecified Dried VAP 14
170 Spices, Basil/Corriander Dried VAP 4
171 Spices, Fennel Dried VAP 1
172 Spices, Pepper Dried VAP 8
173 Spices, Smoked Pepper Dried VAP 20
174 Spicy Pepper Relish Pickles & Relishes VAP 73 1 74 31 1 32 43% 20 20 33 33 165%
175 Spicy Pepper Syrup Drink Mixes & Syrups VAP 12 12 1 1 8% 14 9 23 6 6 26%
176 Spicy Walla Walla w/ Bangkok Side VAP 7 7 0 0%
177 Spring Onion Relish Pickles & Relishes VAP 12 12 8 8 67% 0 3 3 NEG
178 Spring Onion Soup Soup VAP 19 5 24 5 5 21% 0 4 7 11 NEG
179 Strawberry Espelette Jam Jams & Spreads VAP 21 21 100 100 52 52 52% 0 25 25 NEG
180 Strawberry Jam Jams & Spreads VAP 20 10 30 179 51 230 105 34 139 60% 100 28 128 125 34 159 124%
181 Strawberry Balsamic Jam Jams & Spreads VAP 12 12 10 10 83% 8 8 0%
182 Strawberry Lavender Jam Jams & Spreads VAP 59 38 97 52 27 79 81% 100 49 149 92 40 132 89%
183 Strawberry Peach Jam Jams & Spreads VAP 55 19 74 35 8 43 58% 104 40 144 56 12 68 47%
184 Strawberry Pear Jam Jams & Spreads VAP 72 25 97 19 6 25 26% 0 46 16 62 NEG
185 Strawberry Quince Jam Jams & Spreads VAP 8 8 6 6 75%
186 Strawberry Rhubarb Jam Jams & Spreads VAP 48 23 71 34 7 41 58% 96 38 134 104 20 124 93%
187 Strawberry Syrup Drink Mixes & Syrups VAP 0 4 4 NEG 1 23 24 14 14 58%
188 Strawberry Vanilla Jam Jams & Spreads VAP 20 6 26 52 9 61 63 42 105 66 37 103 98% 86 27 113 80 23 103 91%
189 Strawberry Vanilla Syrup Drink Mixes & Syrups VAP 5 5 0 0%
190 Sweet Pepper Relish Pickles & Relishes VAP 26 26 12 12 46%
191 Sweet Peppers Condiment VAP 18 18 27 14 41 12 12 29% 0 16 4 20 NEG
192 Sweet Sour Red Cabbage Side VAP 43 43 16 16 37% 0 20 20 NEG
193 Szechuan Broccoli Pickles & Relishes VAP 0 1 2 3 NEG
194 Tayberry Jam Jams & Spreads VAP 12 12 11 10 21 175% 38 12 50 36 8 44 88%
195 Tomatillo Chutney Chutney VAP 19 19 5 5 72 72 10 3 13 18% 0 19 19 NEG
196 Tomatillo Jam Jams & Spreads VAP 6 27 33 4 4 12% 37 6 43 41 12 53 123%
197 Tomato Basil Soup Soup VAP 42 6 48 36 4 40 83% 31 1 32 26 5 31 97%
198 Tomato Juice Cocktail Drink Mixes & Syrups VAP 9 9 0 0% 0 9 9 NEG
199 Tomato Sauce, Basil Condiment VAP 29 29 24 24 4 16 20 83% 35 35 30 30 86%
200 Tomato Sauce, Fennel Condiment VAP 8 8 2 2 25% 0 9 9 NEG
201 Tomato Sauce, Oregano Condiment VAP 28 28 2 2 7% 23 23 19 19 83%
202 Tokyo Turnips Pickles & Relishes VAP 17 17 18 18 0 6 6 NEG
203 White Peach Chutney Chutney VAP 0 18 8 26 NEG 15 15 6 6 40%
204 Wild Plum Jam Jams & Spreads VAP 35 35 15 15 43%
205 Wild Plum Syrup Drink Mixes & Syrups VAP 13 1 14 8 8 57%
206 Winter Squash Soup Soup VAP 21 21 7 7 12 1 13 186% 22 22 8 1 9 41%

View File

@@ -1,221 +0,0 @@
var fs = require("fs");
var csv = require('./csv.js');
var Promise = require('bluebird');
var fileName = "./importItems.csv";
// module.exports = function(models, softErrors) {
// return new Promise(function(resolve, reject) {
var models = require("./models");
var softErrors = [];
var p = new Promise(function(resolve, reject) {
//var sequelize = models.sequelize;
//The CSV data as an array of rows (each row is an array).
var data;
//The mapping of model attributes to CSV columns. The oz sizes are arrays of columns since there are multiple.
var map = {};
//The id's in the db for the various jar sizes.
var measureIdMap = {};
//The id of the 'each' measure.
var eachId = -1;
//A default price for all items.
var DEFAULT_PRICE = 11.0;
//Collect the metadata from the first row of the CSV data - make a mapping.
function collectMetadata() {
var CATEGORY = 'category';
var SUBCATEGORY = 'subcategory';
var ITEM = 'item';
var OZ32 = '32 oz';
var OZ16 = '16 oz';
var OZ12 = '12 oz';
var OZ8 = '8 oz';
var OZ4 = '4 oz';
//Data is an array of arrays. data[0] = array of headers. data[1] = first row of data.
//Iterate over the columns to create a mapping.
for(var i = 0; i < data[0].length; i++) {
var next = data[0][i];
if(next && next != '') {
switch(next.toLowerCase()) {
case CATEGORY:
map.category = i;
break;
case SUBCATEGORY:
map.subcategory = i;
break;
case ITEM:
map.item = i;
break;
case OZ32:
if(!map.oz32) map.oz32 = [];
map.oz32.push(i);
break;
case OZ16:
if(!map.oz16) map.oz16 = [];
map.oz16.push(i);
break;
case OZ12:
if(!map.oz12) map.oz12 = [];
map.oz12.push(i);
break;
case OZ8:
if(!map.oz8) map.oz8 = [];
map.oz8.push(i);
break;
case OZ4:
if(!map.oz4) map.oz4 = [];
map.oz4.push(i);
break;
}
}
}
}
//Reads a single row of CSV data and adds it to the database.
function readRow(rowIndex) {
if(!data) {
console.log("WTF?");
//process.exit(1);
reject(new Error("Data is null?!?"));
return;
}
else if(!data[rowIndex]) {
softErrors.push("Empty line? - Found while reading items.");
readRow(rowIndex + 1);
return;
}
var category = data[rowIndex][map.category];
var subcategory = data[rowIndex][map.subcategory];
var item = data[rowIndex][map.item];
var oz32 = 0;
var oz16 = 0;
var oz12 = 0;
var oz8 = 0;
var oz4 = 0;
for(var o = 0; o < map.oz32.length; o++) {
oz32 += Math.max(data[rowIndex][map.oz32[o]], 0);
}
for(var o = 0; o < map.oz16.length; o++) {
oz16 += Math.max(data[rowIndex][map.oz16[o]], 0);
}
for(var o = 0; o < map.oz12.length; o++) {
oz12 += Math.max(data[rowIndex][map.oz12[o]], 0);
}
for(var o = 0; o < map.oz8.length; o++) {
oz8 += Math.max(data[rowIndex][map.oz8[o]], 0);
}
for(var o = 0; o < map.oz4.length; o++) {
oz4 += Math.max(data[rowIndex][map.oz4[o]], 0);
}
//If the category doesn't yet exist then add it, otherwise get the ID.
models.Category.findOrCreate({where: {name: category}, defaults: {name: category}}).then(function(result) {
var categoryId = result[0].id; //Note: result[1] is a boolean indicating whether the object had to be created.
//If the subcategory doesn't yet exist then add it, otherwise get the ID.
models.Subcategory.findOrCreate({
where: {name: subcategory},
defaults: {name: subcategory, categoryId: categoryId}
}).then(function(result) {
var subcategoryId = result[0].id;
var weightedMeasures = [];
var measures = [];
if(oz32 > 0) weightedMeasures.push({name: '32 oz', count: oz32});
if(oz16 > 0) weightedMeasures.push({name: '16 oz', count: oz16});
if(oz12 > 0) weightedMeasures.push({name: '12 oz', count: oz12});
if(oz8 > 0) weightedMeasures.push({name: '8 oz', count: oz8});
if(oz4 > 0) weightedMeasures.push({name: '4 oz', count: oz4});
if(weightedMeasures.length == 0) {
measures.push(eachId);
}
else {
//Place the measure that had the most jars at the front of the list.
weightedMeasures.sort(function(a, b) {
return a.count >= b.count ? 1 : -1;
});
//Build the array of measure id's.
for(var i = 0; i < weightedMeasures.length; i++) {
measures.push(measureIdMap[weightedMeasures[i].name]);
}
}
//Ensure the item doesn't yet exist - display an error if it does, otherwise add it.
models.Item.findOrCreate({
where: {name: item},
defaults: {name: item, subcategoryId: subcategoryId, measures: measures}
}).then(function(result) {
if(!result[1]) {
console.log("The item named '" + item + "' already exists in the database.");
}
//Recursively read rows until there are no more rows to read.
if(rowIndex + 1 < data.length) readRow(rowIndex + 1);
else resolve();
});
})
});
}
if(fs.existsSync(fileName)) {
csv.read(fileName, function(error, csvData) {
if(error) console.log(error);
else {
data = csvData;
//Collect the mapping data.
collectMetadata();
//Read or create the required models to make this all work:
Promise.each([
models.Measure.findOrCreate({where: {name: 'Jar 32oz'}, defaults: {name: 'Jar 32oz', postfix: '32oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 16oz'}, defaults: {name: 'Jar 16oz', postfix: '16oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 12oz'}, defaults: {name: 'Jar 12oz', postfix: '12oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 8oz'}, defaults: {name: 'Jar 8oz', postfix: '8oz'}}),
models.Measure.findOrCreate({where: {name: 'Jar 4oz'}, defaults: {name: 'Jar 4oz', postfix: '4oz'}}),
models.Measure.findOrCreate({where: {name: 'Each'}, defaults: {name: 'Each', postfix: ''}})
], function(value, index, length) {
switch(index) {
case 0:
measureIdMap['32 oz'] = value[0].id;
break;
case 1:
measureIdMap['16 oz'] = value[0].id;
break;
case 2:
measureIdMap['12 oz'] = value[0].id;
break;
case 3:
measureIdMap['8 oz'] = value[0].id;
break;
case 4:
measureIdMap['4 oz'] = value[0].id;
break;
case 5:
eachId = value[0].id;
break;
}
}).then(function() {
//Read the first row.
readRow(1);
});
}
});
}
else {
console.log("Cannot find " + fileName);
}
});
p.then(function() {console.log("Import Complete!")}).error(function(error) {console.log("Ran into an error: \n" + error)});
// };

View File

@@ -1,416 +0,0 @@
var fs = require("fs");
var csv = require('./csv.js');
var Promise = require('bluebird');
var fileName = "./importSales.csv";
// module.exports = function(models, softErrors, handler) {
// return new Promise(function(resolve, reject) {
var models = require("./models");
var softErrors = [];
var p = new Promise(function(resolve, reject) {
//The CSV data as an array of rows (each row is an array).
var data;
//The mapping of model attributes to CSV columns. The oz sizes are arrays of columns since there are multiple.
var map = {};
//Database maps so we don't have to constantly query for the same data repeatedly.
var vendorIdMap = {};
var measureIdMap = {};
var itemIdMap = {};
//Collect the metadata from the first row of the CSV data - make a mapping.
function collectMetadata() {
var DATE = 'date';
var VENDOR = 'vendor';
var ITEM = 'item';
var OZ32 = '32 oz';
var OZ16 = '16 oz';
var OZ12 = '12 oz';
var OZ8 = '8 oz';
var OZ4 = '4 oz';
var BAGS = 'bags';
var EACH = 'each';
//Data is an array of arrays. data[0] = array of headers. data[1] = first row of data.
//Iterate over the columns to create a mapping.
for(var i = 0; i < data[0].length; i++) {
var next = data[0][i];
if(next && next != '') {
switch(next.toLowerCase()) {
case DATE:
map.date = i;
break;
case VENDOR:
map.vendor = i;
break;
case ITEM:
map.item = i;
break;
case OZ32:
map.oz32 = i;
break;
case OZ16:
map.oz16 = i;
break;
case OZ12:
map.oz12 = i;
break;
case OZ8:
map.oz8 = i;
break;
case OZ4:
map.oz4 = i;
break;
case BAGS:
map.bags = i;
break;
case EACH:
map.each = i;
break;
}
}
}
}
//Reads a single row of CSV data and adds it to the database.
function readRow(rowIndex) {
if(!data) {
console.log("WTF?");
//process.exit(1);
reject(new Error("Data is null?!?"));
return;
}
else if(!data[rowIndex]) {
console.log("Empty line?");
readRow(rowIndex + 1);
return;
}
var date = data[rowIndex][map.date];
var vendor = data[rowIndex][map.vendor];
var item = data[rowIndex][map.item];
var oz32 = data[rowIndex][map.oz32];
var oz16 = data[rowIndex][map.oz16];
var oz12 = data[rowIndex][map.oz12];
var oz8 = data[rowIndex][map.oz8];
var oz4 = data[rowIndex][map.oz4];
var bags = data[rowIndex][map.bags];
var each = data[rowIndex][map.each];
var vendorId = vendorIdMap[vendor];
var itemId = itemIdMap[item];
var priceMap = {};
var saleQueries = [];
//TODO: Trim and lowercase any names.
priceMap[2016] = {
oz4: 7,
oz8: 11,
oz12: 13,
oz16: 11,
oz32: 15,
"pickled onion, spicy": {oz16: 12},
"pickled onion, sweet": {oz16: 12},
"pickled onion, fennel": {oz16: 12},
"pickled beets": {oz16: 15},
"prickly pear margarita mix": {oz16: 15},
"prickly pear syrup": {oz16: 15},
"tomato sauce": {oz16: 15}, //TODO: Replace all 'tomato sauce, xxxx' with 'tomato sauce' for price lookup only.
"bone broth": {oz16: 20}, //TODO: Replace all 'bone broth, xxxx' with 'bone broth' for price lookup only.
"fava bean soup": {oz32: 20},
"pickles, bread butter": {oz16: 11},
"kimchi": {oz16: 11},
"kraut - red & white": {oz16: 11},
"3 pack": {each: 21},
"espelette, smoked": {each: 1},
"leather": {each: 6},
"leather, apple": {each: 6},
"leather, grape": {each: 6},
"leather, peach": {each: 6},
"leather, persimmon": {each: 6},
"leather, pumpkin": {each: 6},
"leather, strawberry": {each: 6},
"leather, quince": {each: 6},
"membrillo": {each: 7},
"membrillo candy": {each: 2.5},
"spices": {each: 4},
"spices, basil/coriander": {each: 4},
"spices, fennel": {each: 4},
"spices, other": {each: 4},
"spices, pepper": {each: 4},
"spices, smoked": {each: 4},
"baba ganoush": {bag: 8, oz4: 8},
"dried, pear": {bag: 6}, //Price??
"dried, tomatillo": {bag: 6}, //Price??
"dried, strawberry": {bag: 7.5},
"dried, tomato": {bag: 7},
"pesto": {bags: 8},
"pesto, cilantro jalapeno": {bags: 8},
"pesto, eggplant": {bags: 8},
"pesto, mint": {bags: 8},
"pesto, jalapeno": {bags: 8},
"jalapeno candy": {bags: 5},
"tomato, dried": {bag: 7}, //Spelling??? Should be Dried, Tomato
//Fresh
"persimmons": {lbs: 5},
"persimmon, frozen": {lbs: 5},
"dried, persimmon": {lbs: 5},
"eggs": {each: 11}
};
priceMap[2015] = {
oz4: 6,
oz8: 10,
oz12: 13,
oz16: 10,
oz32: 15,
"blackberry jam": {oz4: 7, oz8: 12},
"raspberry jam": {oz4: 7, oz8: 12},
"blackberry vanilla": {oz4: 7, oz8: 12},
"bloody mary mix": {oz16: 13},
"pickled beets": {oz16: 15},
"tomato juice cocktail": {oz16: 8},
"fava bean soup": {oz32: 20},
"kimchi": {oz16: 10},
"kraut - red & white": {oz16: 10},
"bread & butter pickles": {oz16: 10},
"pickled eggs": {oz16: 15},
"3 pack": {each: 18},
"leather": {each: 6},
"leather, apple": {each: 6},
"leather, grape": {each: 6},
"leather, peach": {each: 6},
"leather, persimmon": {each: 6},
"leather, pumpkin": {each: 6},
"leather, strawberry": {each: 6},
"leather, quince": {each: 6},
"membrillo": {each: 6},
"membrillo candy": {each: 2.5},
"popsicles": {each: 5},
"spices": {each: 4},
"spices, basil/coriander": {each: 4},
"spices, fennel": {each: 4},
"spices, other": {each: 4},
"spices, pepper": {each: 4},
"spices, smoked": {each: 4},
"baba ganoush": {bag: 8, oz4: 8},
"dried, pear": {bag: 6}, //Price??
"dried, tomatillo": {bag: 6}, //Price??
"dried, strawberry": {bag: 7.5},
"dried, tomato": {bag: 7},
"jalapeno candy": {bag: 5},
"eggs": {each: 10},
};
//Log errors, but keep on chugging.
if(vendorId == undefined) {
softErrors.push("ERROR: Unexpected vendor: " + vendor);
}
else if(itemId == undefined) {
softErrors.push("ERROR: Unexpected item: " + item);
}
else {
//Split it into multiple sales entries, one for each measure that has a positive value.
if(oz32 > 0) {
var measureId = measureIdMap['32 oz'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['oz32'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
if(oz16 > 0) {
var measureId = measureIdMap['16 oz'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['oz16'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
if(oz12 > 0) {
var measureId = measureIdMap['12 oz'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['oz12'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
if(oz8 > 0) {
var measureId = measureIdMap['8 oz'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['oz8'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
if(oz4 > 0) {
var measureId = measureIdMap['4 oz'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['oz4'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
if(bags > 0) {
var measureId = measureIdMap['bags'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['bags'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
if(each > 0) {
var measureId = measureIdMap['each'];
var price = priceMap[year][item];
if(price == undefined) {
price = priceMap[year]['each'];
}
saleQueries.push(models.Sale.create({date: date, vendorId: vendorId, itemId: itemId, measureId: measureId, amount: oz32, price: price}));
}
Promise.each(saleQueries, function(value, index, length) {
//Ignored.
}).then(function(result) {
//Recursively read rows until there are no more rows to read.
if(rowIndex + 1 < data.length) readRow(rowIndex + 1);
else resolve();
});
}
}
if(fs.existsSync(fileName)) {
csv.read(fileName, function(error, csvData) {
if(error) console.log(error);
else {
data = csvData;
//Collect the mapping data.
collectMetadata();
//Read or create the required models to make this all work:
Promise.each([
//Measures 1-6
models.Measure.find({where: {name: 'Jar 32oz'}}),
models.Measure.find({where: {name: 'Jar 16oz'}}),
models.Measure.find({where: {name: 'Jar 12oz'}}),
models.Measure.find({where: {name: 'Jar 8oz'}}),
models.Measure.find({where: {name: 'Jar 4oz'}}),
models.Measure.find({where: {name: 'Each'}}),
models.Measure.find({where: {name: 'Bags'}}),
//Vendors 7-16
models.Venue.find({where: {name: 'Boonville'}}),
models.Venue.find({where: {name: 'Clement St'}}),
models.Venue.find({where: {name: 'Ukiah'}}),
models.Venue.find({where: {name: 'Mendocino'}}),
models.Venue.find({where: {name: 'Ft Bragg'}}),
models.Venue.find({where: {name: 'On Farm'}}),
models.Venue.find({where: {name: 'Unknown Restaurant'}}),
models.Venue.find({where: {name: 'Yorkville Market'}}),
models.Venue.find({where: {name: 'Yorkville Cellars'}}),
models.Venue.find({where: {name: 'Mail Order'}}),
//Items
models.Item.findAll()
], function(value, index, length) {
switch(index) {
case 0:
measureIdMap['32 oz'] = value.id;
break;
case 1:
measureIdMap['16 oz'] = value.id;
break;
case 2:
measureIdMap['12 oz'] = value.id;
break;
case 3:
measureIdMap['8 oz'] = value.id;
break;
case 4:
measureIdMap['4 oz'] = value.id;
break;
case 5:
measureIdMap['each'] = value.id;
break;
case 6:
measureIdMap['bags'] = value.id;
break;
case 7:
vendorIdMap['bv'] = value.id;
break;
case 8:
vendorIdMap['sf'] = value.id;
break;
case 9:
vendorIdMap['uk'] = value.id;
break;
case 10:
vendorIdMap['men'] = value.id;
break;
case 11:
vendorIdMap['fb'] = value.id;
break;
case 12:
vendorIdMap['of'] = value.id;
break;
case 13:
vendorIdMap['res'] = value.id;
break;
case 14:
vendorIdMap['ym'] = value.id;
break;
case 15:
vendorIdMap['yc'] = value.id;
break;
case 16:
vendorIdMap['mo'] = value.id;
break;
case 17:
//Iterate over all the items and setup the itemIdMap to reference the item id given the item name. Item names are unique.
for(var i = 0; i < value.length; i++) {
itemIdMap[value[i].name] = value[i].id;
}
}
}).then(function() {
//Read the first row.
readRow(1);
});
}
});
}
else {
console.log("Cannot find " + fileName);
}
});
p.then(function() {console.log("Import Complete!")}).error(function(error) {console.log("Ran into an error: \n" + error)});
// };

View File

@@ -1,42 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('User', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
login: {
type: DataTypes.STRING,
unique: true
},
password: {
type: DataTypes.STRING
},
admin: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: true
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
}
}, {
charset: 'utf8'
});
},
down: function (query, Sequelize) {
return query.dropTable('User');
}
};

View File

@@ -1,13 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.addIndex('User', ['login'], {indicesType: 'UNIQUE', indexName: 'LOGIN_INDEX'});
},
down: function (query, Sequelize) {
}
};

View File

@@ -1,49 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('Measure', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
image: {
type: DataTypes.STRING,
allowNull: true
},
postfix: {
type: DataTypes.STRING,
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: true
});
},
down: function (query, Sequelize) {
return query.dropTable('Measure');
}
};

View File

@@ -1,41 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('VenueType', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: true
});
},
down: function (query, Sequelize) {
return query.dropTable('VenueType');
}
};

View File

@@ -1,49 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('Venue', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
typeId: {
type: Sequelize.INTEGER,
references: {
model: 'VenueType',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'cascade'
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: true
});
},
down: function (query, Sequelize) {
return query.dropTable('Venue');
}
};

View File

@@ -1,41 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('Category', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: true
});
},
down: function (query, Sequelize) {
return query.dropTable('Category');
}
};

View File

@@ -1,52 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('Subcategory', {
id: {
type: DataTypes.INTEGER,
field: 'id',
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
field: 'name',
allowNull: false,
unique: true
},
categoryId: {
type: Sequelize.INTEGER,
references: {
model: 'Category',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'cascade'
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: true
});
},
down: function (query, Sequelize) {
return query.dropTable('Subcategory');
}
};

View File

@@ -1,63 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('Item', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
measures: {
type: DataTypes.JSON,
allowNull: false
},
aliases: {
type: DataTypes.JSON,
allowNull: true
},
prices: {
type: DataTypes.JSON,
//type: DataTypes.DECIMAL(9,2),
allowNull: true
},
subcategoryId: {
type: Sequelize.INTEGER,
references: {
model: 'Subcategory',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'cascade'
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: true
});
},
down: function (query, Sequelize) {
return query.dropTable('Item');
}
};

View File

@@ -1,72 +0,0 @@
'use strict';
module.exports = {
up: function (query, Sequelize) {
var DataTypes = Sequelize; //Allow for more cut and paste :)
return query.createTable('Sale', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
date: {
type: DataTypes.DATEONLY,
allowNull: false
},
amount: {
type: DataTypes.DECIMAL(13,2),
allowNull: false
},
price: {
type: DataTypes.DECIMAL(13,4),
allowNull: false
},
measureId: {
type: Sequelize.INTEGER,
references: {
model: 'Measure',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'cascade',
allowNull: false
},
itemId: {
type: Sequelize.INTEGER,
references: {
model: 'Item',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'cascade'
},
venueId: {
type: Sequelize.INTEGER,
references: {
model: 'Venue',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'cascade'
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
}
}, {
charset: 'utf8',
timestamps: true,
paranoid: false
});
},
down: function (query, Sequelize) {
return query.dropTable('Sale');
}
};

View File

@@ -1,39 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
var Category = sequelize.define('Category', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
freezeTableName: true, // Model tableName will be the same as the model name
paranoid: true,
classMethods: {
associate: function(models) {
Category.hasMany(models.Subcategory, {as: 'subcategories', foreignKey: {name: 'categoryId', field: 'categoryId'}});
}
}
});
return Category;
};

View File

@@ -1,32 +0,0 @@
"use strict";
var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var env = process.env.NODE_ENV || "development";
//var config = require(__dirname + '/../config/config.json')[env];
var configDB = require('./../config/db.js');
//var sequelize = new Sequelize(config.database, config.username, config.password, config);
var sequelize = new Sequelize(configDB.url);
var db = {};
fs
.readdirSync(__dirname)
.filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== "index.js");
})
.forEach(function(file) {
var model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(function(modelName) {
if ("associate" in db[modelName]) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;

View File

@@ -1,53 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
var Item = sequelize.define('Item', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
measures: {
//A list of measureId's in the order they should be listed when entering data (first is most likely, last is least likely).
type: DataTypes.JSON,
allowNull: false
},
aliases: { //An array of alias names (strings) for this item. Used only to find the item, and not checked to ensure that names are unique.
type: DataTypes.JSON,
allowNull: true
},
prices: {
type: DataTypes.JSON,
//type: DataTypes.DECIMAL(9,2),
allowNull: true
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
freezeTableName: true, // Model tableName will be the same as the model name
paranoid: true,
classMethods: {
associate: function(models) {
Item.belongsTo(models.Subcategory, {as: 'subcategory', foreignKey: {name: 'subcategoryId', field: 'subcategoryId'}});
}
}
});
return Item;
};

View File

@@ -1,28 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
return sequelize.define('Measure', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
image: {
type: DataTypes.STRING,
allowNull: true
},
postfix: {
type: DataTypes.STRING,
allowNull: false
}
}, {
freezeTableName: true, // Model tableName will be the same as the model
paranoid: true
});
};

View File

@@ -1,46 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
var Sale = sequelize.define('Sale', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
date: {
type: DataTypes.DATEONLY,
allowNull: false
},
amount: {
type: DataTypes.DECIMAL(13,2),
allowNull: false
},
price: {
//GAAP standard is to use DECIMAL(13,4) for precision when dealing with money. 13 digits before the decimal, and 4 after it.
type: DataTypes.DECIMAL(13,4),
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
}
}, {
freezeTableName: true, // Model tableName will be the same as the model name
paranoid: false,
classMethods: {
associate: function(models) {
Sale.belongsTo(models.Item, {as: 'item', foreignKey: {name: 'itemId', field: 'itemId'}});
Sale.belongsTo(models.Venue, {as: 'venue', foreignKey: {name: 'venueId', field: 'venueId'}});
Sale.belongsTo(models.Measure, {as: 'measure', foreignKey: {name: 'measureId', field: 'measureId'}});
}
}
});
return Sale;
};

View File

@@ -1,42 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
var Subcategory = sequelize.define('Subcategory', {
id: {
type: DataTypes.INTEGER,
field: 'id',
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
field: 'name',
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
freezeTableName: true, // Model tableName will be the same as the model name
paranoid: true,
classMethods: {
associate: function(models) {
Subcategory.belongsTo(models.Category, {as: 'category', foreignKey: {name: 'categoryId', field: 'categoryId'}});
Subcategory.hasMany(models.Item, {as: 'items', foreignKey: {name: 'subcategoryId', field: 'subcategoryId'}});
}
}
});
return Subcategory;
};

View File

@@ -1,44 +0,0 @@
"use strict";
var bcrypt = require('bcrypt-nodejs');
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
return sequelize.define('User', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
login: {
type: DataTypes.STRING
},
password: { //Note: The salt should be stored as part of the hash.
type: DataTypes.STRING,
set: function(val) {
this.setDataValue('password', bcrypt.hashSync(val, bcrypt.genSaltSync(8), null));
}
},
admin: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: true
}
}, {
indexes: [
{
unique: true,
fields: ['login']
}
],
freezeTableName: true, // Model tableName will be the same as the model name
//paranoid: true, //Keep deleted data but flag it as deleted
comment: "A system user authorized to access and manipulate the application data.",
instanceMethods: {
isPasswordValid: function(password) {
return bcrypt.compareSync(password, this.password);
}
}
});
};

View File

@@ -1,37 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
return sequelize.define('Venue', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
freezeTableName: true, // Model tableName will be the same as the model name,
paranoid: true,
classMethods: {
associate: function(models) {
models.Venue.belongsTo(models.VenueType, {as: 'type', foreignKey: {name: 'typeId', field: 'typeId'}});
}
}
});
};

View File

@@ -1,32 +0,0 @@
"use strict";
module.exports = function(sequelize, DataTypes) {
//The id field is auto added and made primary key.
return sequelize.define('VenueType', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true
}
}, {
freezeTableName: true, // Model tableName will be the same as the model name,
paranoid: true
});
};

View File

@@ -3,18 +3,9 @@
"version": "1.0.0", "version": "1.0.0",
"private": true, "private": true,
"scripts": { "scripts": {
"1. start": "node server.js",
"3. update-db": "sequelize db:migrate",
"4. create-db-migration": "sequelize migration:create",
"2. install": "npm install",
"5. prune": "npm prune",
"start": "node server.js", "start": "node server.js",
"migrateDB": "sequelize db:migrate", "setup": "npm install",
"dropDB": "sudo -u postgres dropdb PetitTeton", "prune": "npm prune"
"createDB": "sudo -u postgres createdb PetitTeton",
"import1": "node importAll.js",
"import2": "node importItems.js",
"import3": "node %NODE_DEBUG_OPTION% importSales.js"
}, },
"dependencies": { "dependencies": {
"bcrypt-nodejs": "^0.0.3", "bcrypt-nodejs": "^0.0.3",
@@ -32,16 +23,9 @@
"morgan": "~1.5.1", "morgan": "~1.5.1",
"node-phantom": "latest", "node-phantom": "latest",
"nodemailer": "~1.0", "nodemailer": "~1.0",
"passport": "^0.3.2",
"passport-local": "^1.0.0",
"pg": "^4.4.3",
"pg-hstore": "^2.3.2",
"sequelize": "latest",
"sequelize-cli": "latest",
"serve-favicon": "~2.2.0", "serve-favicon": "~2.2.0",
"session-file-store": "~0.0.24", "session-file-store": "~0.0.24",
"stylus": "~0.42.3", "stylus": "~0.42.3",
"swig": "~1.4.2", "swig": "~1.4.2"
"csv-parse": "latest"
} }
} }

Binary file not shown.

View File

@@ -1,291 +0,0 @@
<div id="venues" class="page">
<div id="listView" class="view">
<div class="buttonContainer">
<h1><span class="fa fa-users"></span> Manage Venues</h1>
<div class="dt-buttons btn-group" style="display: inline-block">
<a id="createButton" class="btn btn-default buttons-create" tabindex="0" href="#!/venues-create"><span>New</span></a>
<a id="editButton" class="btn btn-default buttons-selected buttons-edit" tabindex="0" href="#!/venues-edit"><span>Edit</span></a>
<a id="deleteButton" class="btn btn-default buttons-selected buttons-remove" tabindex="0" href="javaScript:void(0);"><span>Delete</span></a>
<a id="restoreButton" class="btn btn-default buttons-selected buttons-restore" tabindex="0" href="javaScript:void(0);"><span>Restore</span></a>
</div>
<div class="checkbox checkbox-slider checkbox-slider--b-flat" style="display: inline-block; margin-left: 20px">
<label>
<input id="includeDeletedToggle" type="checkbox"><span style="margin-left: 0; padding-left: 24px;">Include Deleted</span>
</label>
</div>
</div>
<table id="dataTable" class="table table-striped table-hover" tabindex="0">
<thead>
<tr>
<th data-key-name="name">Name</th>
<!--<th data-key-name="admin">Admin</th>-->
</tr>
</thead>
</table>
</div>
<!-- Create/Edit View -->
<div id="editorView" class="view" style="display: none;" data-menu="false">
<div class="modal-dialog">
<div class="modal-header">
<h4 class="modal-title"></h4>
</div>
<form role="form" autocomplete="off">
<div class="modal-body">
<label for="DFName">Name</label>
<div class="form-group">
<input name="name" id="DFName" type="text" class="form-control" tabindex="0" placeholder="Boonville" required>
</div>
</div>
<div class="modal-footer">
<button id="DFSave" type="button" class="btn btn-default btn-primary btn-md" tabindex="0">Save</button>
<button id="DFCreate" type="button" class="btn btn-default btn-primary btn-md" tabindex="0">Create</button>
<button id="DFCreatePlus" type="button" class="btn btn-primary btn-md" tabindex="0">Create++</button>
<button id="DFCancel" type="button" class="btn" data-dismiss="modal" tabindex="0" onclick="location.href='#!/venues'">Cancel</button>
</div>
</form>
</div>
</div>
<!-- Delete View -->
<div id="deleteView" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Delete Item</h4>
</div>
<div class="modal-body">
Are you certain you wish to delete the venue <span id="deleteName"></span>?
</div>
<div class="modal-footer">
<button id="DFDelete" type="button" class="btn btn-warning btn-md" tabindex="0">Delete</button>
<button id="DFCancelDelete" type="button" class="btn btn-primary btn-default" data-dismiss="modal" tabindex="1">Cancel</button>
</div>
</div>
</div>
</div>
<script language="JavaScript" type="text/javascript">//# sourceURL=venues.html
$(function() {
var $page = $('#venues');
var $btnCreate = $page.find("#createButton");
var $btnEdit = $page.find("#editButton");
var $btnDelete = $page.find("#deleteButton");
var $btnRestore = $page.find("#restoreButton");
$btnEdit.disable(true);
$btnDelete.disable(true);
$btnRestore.disable(true);
var selectionChanged = function($tr, model) {
if($tr && model) {
//If the object was deleted (hidden), then allow it to be restored, otherwise allow the model to be deleted.
if(model.deletedAt) {
$btnRestore.disable(false);
$btnDelete.disable(true);
$btnEdit.disable(true);
}
else {
$btnRestore.disable(true);
$btnDelete.disable(false);
$btnEdit.disable(false);
}
}
else {
$btnEdit.disable(true);
$btnDelete.disable(true);
$btnRestore.disable(true);
}
};
var $table = $page.find('#dataTable');
$table.buildTable({
url: "data/Venue/readAll",
attr: "data-key-name",
selection: "row",
selectionChanged: selectionChanged,
parameters: function() {
return {paranoid: !$page.find('#includeDeletedToggle').is(":checked")};
},
postAddRowHandler: function($row, dataObject) {
if(dataObject.deletedAt) {
$("td:first", $row).prepend("<span class='glyphicon glyphicon-remove-circle' style='margin-right: 10px;' aria-hidden='true'></span>");
}
},
postUpdateRowHandler: function($row, dataObject) {
if(dataObject.deletedAt) {
$("td:first", $row).prepend("<span class='glyphicon glyphicon-remove-circle' style='margin-right: 10px;' aria-hidden='true'></span>");
}
if($row.is(dataTable.getSelectedRow())) {
selectionChanged($row, dataObject);
}
}
});
var dataTable = $table.getTable();
$page.find('#dataTable').on('dblclick', 'tr', function(event) {
if(dataTable.getSelectedRow()) {
location.hash = "#!/venues-edit";
}
});
$page.find('#page').on('keyup', '.page', function(event) {
switch(event.keyCode || event.which) {
case 0x0D: //Enter
if(dataTable.getSelectedRow()) {
location.hash = '#!/venues-edit';
}
break;
case 0x08: //Backspace
if(dataTable.getSelectedRow()) {
$btnDelete.click();
}
break;
default:
break;
}
});
//Refresh the data table if the user toggles the button to show/hide deleted elements.
$page.find('#includeDeletedToggle').on('click', function(event) {
dataTable.refresh();
});
//Restore the selected model so it is no longer considered 'deleted'.
$btnRestore.on("click", function(event) {
var model = dataTable.getSelectedRow() ? dataTable.getSelectedRow().data('model') : undefined;
if(model && model.deletedAt) {
$.post("data/Venue/restore", {request: JSON.stringify({where: {id: model.id}})}, "json").done(function(data) {
dataTable.refresh();
}).fail(function(data) {
alert("Failed to restore the desired object due to a server side error.");
});
}
});
var $listView = $page.find('#listView');
var $editorView = $page.find('#editorView');
var $deleteView = $page.find('#deleteView');
//+++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++ Create/Edit Views ++++++++++++
var $editorForm = $editorView.find('form');
//Initialize the validator
$editorForm.validator();
//Setup a display-handler that will be called when the hash changes - allowing us to configure this page as necessary.
$page.data('display-handler', function(data, internal) {
switch(data) {
case 'create':
//Configure the dialog to create a new element.
$editorView.find("#DFCreate, #DFCreatePlus").show();
$editorView.find("#DFSave").hide();
$editorView.find(".modal-title").text("Create Venue");
//Reset fields to default values.
$editorView.find("#DFName").val("");
showView($editorView, $editorView.find("#DFName"), internal);
break;
case 'edit':
if(dataTable.getSelectedRow() != null) {
//Configure the dialog to edit an existing element.
$editorView.find("#DFCreate, #DFCreatePlus").hide();
$editorView.find("#DFSave").show();
$editorView.find(".modal-title").text("Edit Venue");
//Reset fields to selected values.
$editorView.find('#DFName').val(dataTable.getSelectedRow().data("model").name);
showView($editorView, $editorView.find("#DFName"), internal);
}
else {
//Change the hash without adding to the history.
history.replaceState(undefined, undefined, "#!/sales")
}
break;
default:
if(internal) dataTable.refresh();
showView($listView, null, internal);
break;
}
});
//Handle the Create Button being clicked.
var createFunction = function(close) {
$editorForm.data('bs.validator').validate(function(isValid) {
if(isValid) {
$.ajax({url: "data/Venue/create", type: "POST", dataType: "json", data: encodeData({
name: $editorForm.find("#DFName").val()
})}).done(function(data) {
if(close) window.location.hash = "#!/venues";
}).fail(function(data) {
alert("Server call failed.");
});
}
});
};
$editorView.find('#DFCreatePlus').on('click', function(event) {
createFunction(false);
});
$editorView.find('#DFCreate').on('click', function(event) {
createFunction(true);
});
//Handle the Save Button being clicked.
$editorView.find('#DFSave').on('click', function(event) {
$editorForm.data('bs.validator').validate(function(isValid) {
if(isValid) {
$.ajax({url: "data/Venue/edit", type: "POST", dataType: "json", data: encodeData({
id: dataTable.getSelectedRow().data("model").id,
name: $editorForm.find("#DFName").val()
})}).done(function(data) {
if(close) window.location.hash = "#!/venues";
}).fail(function(data) {
alert("Server call failed.");
});
}
});
});
//Close the view if the user uses the escape key and it isn't handled at the widget level.
$editorView.on('keyup', function(event) {
switch(event.keyCode) {
case 27:
if(!event.isDefaultPrevented())
history.back();
break;
}
});
//++++++++++++++++++++++++++++++++++++++
// ++++++++++ Delete View +++++++++++
//Open the dialog.
$btnDelete.on("click", function(event) {
//debugger;
if(dataTable.getSelectedRow() != null) {
$deleteView.find("#deleteName").html(dataTable.getSelectedRow().data("model").name);
$deleteView.modal();
}
});
//Delete the element and close the dialog.
$deleteView.find('#DFDelete').on("click", function(event) {
if(dataTable.getSelectedRow() != null) {
$.ajax({url: "data/Venue/delete", type: "POST", dataType: "json", data: encodeData({where: {id: dataTable.getSelectedRow().data("model").id}})}).done(function(data) {
$deleteView.modal("hide");
dataTable.refresh();
}).fail(function(data) {
alert("Server call failed.");
});
}
});
$deleteView.find('#DFCancelDelete').on('click', function(event) {
$deleteView.modal('hide');
});
//Set the initial focus control.
$editorView.on('shown.bs.modal', function() {
$deleteView.find('#DFCancelDelete').focus();
});
});
</script>

View File

@@ -1,5 +0,0 @@
.has-error {
border-color: #a94442;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
}

View File

@@ -1,69 +0,0 @@
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus,
.list-group:focus {
border-color: rgba(82, 168, 236, 0.8);
outline: 0;
outline: thin dotted \9;
/* IE6-9 */
/*
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
*/
-webkit-box-shadow: 0px 0px 46px -13px rgba(230,28,230,1) !important;
-moz-box-shadow: 0px 0px 46px -13px rgba(230,28,230,1) !important;
box-shadow: 0px 0px 46px -13px rgba(230,28,230,1) !important;
}
.form-control, .select2-selection {
font-size: 14px;
margin-bottom: 0px;
}
.input-group {
margin-bottom: 15px;
}
.select2 .select2-selection {
border-color: #ccc;
}
.select2-container--default.select2-container--focus .select2-selection--multiple {
border-color: rgba(101, 174, 231, 0.823529);
outline: 0;
outline: thin dotted \9;
-webkit-box-shadow: 0px 0px 46px -11px rgba(230,28,230,1) !important;
-moz-box-shadow: 0px 0px 46px -11px rgba(230,28,230,1) !important;
box-shadow: 0px 0px 46px -11px rgba(230,28,230,1) !important;
}
.has-error {
border-color: #a94442 !important;
/*
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
*/
/*
-webkit-box-shadow: 0px 0px 46px -13px rgba(255,28,230,1) !important;
-moz-box-shadow: 0px 0px 46px -13px rgba(255,28,230,1) !important;
box-shadow: 0px 0px 46px -13px rgba(255,28,230,1) !important;
*/
}

View File

@@ -1,274 +0,0 @@
<div id="categories" class="page">
<div id="listView" class="view">
<div class="buttonContainer">
<h1><span class="fa fa-users"></span> Manage Categories</h1>
<div class="dt-buttons btn-group" style="display: inline-block">
<a id="createButton" class="btn btn-default buttons-create" tabindex="0" href="#!/categories-create"><span>New</span></a>
<a id="editButton" class="btn btn-default buttons-selected buttons-edit" tabindex="0" href="#!/categories-edit"><span>Edit</span></a>
<a id="deleteButton" class="btn btn-default buttons-selected buttons-remove" tabindex="0" href="javaScript:void(0);"><span>Delete</span></a>
<a id="restoreButton" class="btn btn-default buttons-selected buttons-restore" tabindex="0" href="javaScript:void(0);"><span>Restore</span></a>
</div>
<div class="checkbox checkbox-slider checkbox-slider--b-flat" style="display: inline-block; margin-left: 20px">
<label>
<input id="includeDeletedToggle" type="checkbox"><span style="margin-left: 0; padding-left: 24px;">Include Deleted</span>
</label>
</div>
</div>
<table id="dataTable" class="table table-striped table-hover">
<thead>
<tr>
<th data-key-name="name">Name</th>
</tr>
</thead>
</table>
</div>
<!-- Create/Edit View -->
<div id="editorView" class="view" style="display: none;" data-menu="false">
<div class="modal-dialog">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title"></h4>
</div>
<form role="form" autocomplete="off">
<div class="modal-body">
<label for="DFName">Name</label>
<div class="form-group">
<input name="name" id="DFName" type="text" class="form-control" tabindex="0" placeholder="VAP" required>
</div>
</div>
<div class="modal-footer">
<button id="DFSave" type="button" class="btn btn-default btn-primary btn-md" tabindex="0">Save</button>
<button id="DFCreate" type="button" class="btn btn-default btn-primary btn-md" tabindex="0">Create</button>
<button id="DFCreatePlus" type="button" class="btn btn-primary btn-md" tabindex="0">Create++</button>
<button id="DFCancel" type="button" class="btn" data-dismiss="modal" tabindex="0" onclick="location.href='#!/categories'">Cancel</button>
</div>
</form>
</div>
</div>
<!-- Delete View -->
<div id="deleteView" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Delete Item</h4>
</div>
<div class="modal-body">
Are you certain you wish to delete the category <span id="deleteName"></span>?
</div>
<div class="modal-footer">
<button id="DFDelete" type="button" class="btn btn-warning btn-md" tabindex="0">Delete</button>
<button id="DFCancelDelete" type="button" class="btn btn-primary btn-default" data-dismiss="modal" tabindex="1">Cancel</button>
</div>
</div>
</div>
</div>
<script language="JavaScript" type="text/javascript">//# sourceURL=categories.html
$(function() {
var $page = $('#categories');
var $btnCreate = $page.find("#createButton");
var $btnEdit = $page.find("#editButton");
var $btnDelete = $page.find("#deleteButton");
var $btnRestore = $page.find("#restoreButton");
$btnEdit.disable(true);
$btnDelete.disable(true);
$btnRestore.disable(true);
var selectionChanged = function($tr, model) {
if($tr && model) {
//If the object was deleted (hidden), then allow it to be restored, otherwise allow the model to be deleted.
if(model.deletedAt) {
$btnRestore.disable(false);
$btnDelete.disable(true);
$btnEdit.disable(true);
}
else {
$btnRestore.disable(true);
$btnDelete.disable(false);
$btnEdit.disable(false);
}
}
else {
$btnEdit.disable(true);
$btnDelete.disable(true);
$btnRestore.disable(true);
}
};
var $table = $page.find('#dataTable');
$table.buildTable({
url: "data/Category/readAll",
attr: "data-key-name",
selection: "row",
parameters: function() {
return {paranoid: !$page.find('#includeDeletedToggle').is(":checked")};
},
selectionChanged: selectionChanged,
postAddRowHandler: function($row, dataObject) {
if(dataObject.deletedAt) {
$("td:first", $row).prepend("<span class='glyphicon glyphicon-remove-circle' style='margin-right: 10px;' aria-hidden='true'></span>");
}
},
postUpdateRowHandler: function($row, dataObject) {
if(dataObject.deletedAt) {
$("td:first", $row).prepend("<span class='glyphicon glyphicon-remove-circle' style='margin-right: 10px;' aria-hidden='true'></span>");
}
if($row.is(dataTable.getSelectedRow())) {
selectionChanged($row, dataObject);
}
}
});
var dataTable = $table.getTable();
$page.find('#dataTable').on('dblclick', 'tr', function(event) {
if(dataTable.getSelectedRow()) {
location.hash = "#!/categories-edit";
}
});
//Refresh the data table if the user toggles the button to show/hide deleted elements.
$page.find('#includeDeletedToggle').on('click', function(event) {
dataTable.refresh();
});
//Restore the selected model so it is no longer considered 'deleted'.
$btnRestore.on("click", function(event) {
var model = dataTable.getSelectedRow() ? dataTable.getSelectedRow().data('model') : undefined;
if(model && model.deletedAt) {
$.post("data/Category/restore", {id: model.id}, "json").done(function(data) {
dataTable.refresh();
}).fail(function(data) {
alert("Failed to restore the desired object due to a server side error.");
});
}
});
var $listView = $page.find('#listView');
var $editorView = $page.find('#editorView');
var $deleteView = $page.find('#deleteView');
//+++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++ Create/Edit Views ++++++++++++
var $editorForm = $editorView.find('form');
//Initialize the validator
$editorForm.validator();
//Setup a display-handler that will be called when the hash changes - allowing us to configure this page as necessary.
$page.data('display-handler', function(data, internal) {
switch(data) {
case 'create':
//Configure the dialog to create a new element.
$editorView.find("#DFCreate, #DFCreatePlus").show();
$editorView.find("#DFSave").hide();
$editorView.find(".modal-title").text("Create Category");
//Reset fields to default values.
$editorView.find("#DFName").val("");
showView($editorView, $editorView.find("#DFName"), internal);
break;
case 'edit':
if(dataTable.getSelectedRow() != null) {
//Configure the dialog to edit an existing element.
$editorView.find("#DFCreate, #DFCreatePlus").hide();
$editorView.find("#DFSave").show();
$editorView.find(".modal-title").text("Edit Category");
//Reset fields to selected values.
$editorView.find('#DFName').val(dataTable.getSelectedRow().data("model").name);
showView($editorView, $editorView.find("#DFName"), internal);
}
else {
//Change the hash without adding to the history.
history.replaceState(undefined, undefined, "#!/sales")
}
break;
default:
if(internal) dataTable.refresh();
showView($listView, null, internal);
break;
}
});
//Handle the Create Button being clicked.
var createFunction = function(close) {
$editorForm.data('bs.validator').validate(function(isValid) {
if(isValid) {
$.ajax({url: "data/Category/create", type: "POST", dataType: "json", data: encodeData({
name: $editorForm.find("#DFName").val()
})}).done(function(data) {
if(close) window.location.hash = "#!/categories";
}).fail(function(data) {
alert("Server call failed.");
});
}
});
};
$editorView.find('#DFCreatePlus').on('click', function(event) {
createFunction(false);
});
$editorView.find('#DFCreate').on('click', function(event) {
createFunction(true);
});
//Handle the Save Button being clicked.
$editorView.find('#DFSave').on('click', function(event) {
$editorForm.data('bs.validator').validate(function(isValid) {
if(isValid) {
$.ajax({url: "data/Category/edit", type: "POST", dataType: "json", data: {
id: dataTable.getSelectedRow().data("model").id,
name: $editorForm.find("#DFName").val()
}}).done(function(data) {
if(close) window.location.hash = "#!/categories";
}).fail(function(data) {
alert("Server side error.");
});
}
});
});
//Close the view if the user uses the escape key and it isn't handled at the widget level.
$editorView.on('keyup', function(event) {
switch(event.keyCode) {
case 27:
if(!event.isDefaultPrevented())
history.back();
break;
}
});
//++++++++++++++++++++++++++++++++++++++
// ++++++++++ Delete View +++++++++++
//Open the dialog.
$btnDelete.on("click", function(event) {
//debugger;
if(dataTable.getSelectedRow() != null) {
$deleteView.find("#deleteName").html(dataTable.getSelectedRow().data("model").name);
$deleteView.modal();
}
});
//Delete the element and close the dialog.
$deleteView.find('#DFDelete').on("click", function(event) {
if(dataTable.getSelectedRow() != null) {
$.ajax({url: "data/Category/delete", type: "POST", dataType: "json", data: encodeData({where: {id: dataTable.getSelectedRow().data("model").id}})}).done(function(data) {
$deleteView.modal("hide");
dataTable.refresh();
}).fail(function(data) {
alert("Server call failed.");
});
}
});
$deleteView.find('#DFCancelDelete').on('click', function(event) {
$deleteView.modal('hide');
});
//Set the initial focus control.
$editorView.on('shown.bs.modal', function() {
$deleteView.find('#DFCancelDelete').focus();
});
});
</script>

View File

@@ -1,30 +0,0 @@
#categories {
height: 100%;
#listView {
height: 100%;
//Flex container options.
flex-flow: column nowrap;
justify-content: space-around; //Spacing between items along the primary axis. (vertical spacing for a column layout)
align-items: flex-start; //Align the items within a line along the primary axis. (horizontal alignment for a column layout)
align-content: center; //Spacing between lines along the secondary axis. (spacing between columns for a column layout)
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex;
.buttonContainer {
//Flex element options.
flex: 0 0; //Grow, Shrink, Basis
}
#dataTable {
overflow: auto;
//Flex element options.
flex: 1 1 120px; //Grow, Shrink, Basis
align-self: stretch;
}
}
}

View File

@@ -1,22 +0,0 @@
<div id="configMenu" class="page">
<a class="option" href="#!/categories">
<i class="fa fa-file-o"></i>
<p>Categories</p>
</a>
<a class="option" href="#!/subcategories">
<i class="fa fa-files-o"></i>
<p>Subcategories</p>
</a>
<a class="option" href="#!/measures">
<i class="fa fa-tint"></i>
<p>Measures</p>
</a>
<a class="option" href="#!/venues">
<i class="fa fa-truck"></i>
<p>Venues</p>
</a>
<a class="option" href="#!/users">
<i class="fa fa-user"></i>
<p>Users</p>
</a>
</div>

View File

@@ -1,56 +0,0 @@
#configMenu {
flex: 0 0 100%;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex;
flex-flow: row wrap;
justify-content: center; //Spacing between items along the primary axis. (vertical spacing for a column layout)
align-items: flex-start; //Align the items within a line along the primary axis. (horizontal alignment for a column layout)
align-content: flex-start; //Spacing between lines along the secondary axis. (spacing between columns for a column layout)
width: 100%;
.option {
height: 120px;
width: 120px;
background: grey;
margin: 20px;
overflow: hidden;
color: white;
//Flex element options.
flex: 0 0 120px; //Grow, Shrink, Basis
//Flex container options.
flex-flow: column nowrap;
justify-content: space-around; //Spacing between items along the primary axis. (vertical spacing for a column layout)
align-items: center; //Align the items within a line along the primary axis. (horizontal alignment for a column layout)
align-content: center; //Spacing between lines along the secondary axis. (spacing between columns for a column layout)
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex;
text-decoration: none;
i {
flex: 0 0;
font-size: 8em;
}
p {
flex: 0 0;
font-size: 1.5em;
text-align: center;
margin: 0;
}
}
.option:hover {
-moz-box-shadow: inset 0 0 20px #7a5a7a;
-webkit-box-shadow: inset 0 0 20px #7a5a7a;
box-shadow: inset 0 0 20px #7a5a7a;
}
.option:active {
background: #CCC;
}
}

View File

@@ -1,97 +0,0 @@
[hidden] { display: none; }
.visually-hidden {
position: absolute;
clip: rect(0, 0, 0, 0);
}
div.awesomplete {
display: inline-block;
position: relative;
}
div.awesomplete > input {
display: block;
}
div.awesomplete > ul {
position: absolute;
left: 0;
z-index: 1;
min-width: 100%;
box-sizing: border-box;
list-style: none;
padding: 0;
border-radius: .3em;
margin: .2em 0 0;
background: hsla(0,0%,100%,.9);
background: linear-gradient(to bottom right, white, hsla(0,0%,100%,.8));
border: 1px solid rgba(0,0,0,.3);
box-shadow: .05em .2em .6em rgba(0,0,0,.2);
text-shadow: none;
}
div.awesomplete > ul[hidden],
div.awesomplete > ul:empty {
display: none;
}
@supports (transform: scale(0)) {
div.awesomplete > ul {
transition: .3s cubic-bezier(.4,.2,.5,1.4);
transform-origin: 1.43em -.43em;
}
div.awesomplete > ul[hidden],
div.awesomplete > ul:empty {
opacity: 0;
transform: scale(0);
display: block;
transition-timing-function: ease;
}
}
/* Pointer */
div.awesomplete > ul:before {
content: "";
position: absolute;
top: -.43em;
left: 1em;
width: 0; height: 0;
padding: .4em;
background: white;
border: inherit;
border-right: 0;
border-bottom: 0;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
div.awesomplete > ul > li {
position: relative;
padding: .2em .5em;
cursor: pointer;
}
div.awesomplete > ul > li:hover {
background: hsl(200, 40%, 80%);
color: black;
}
div.awesomplete > ul > li[aria-selected="true"] {
background: hsl(205, 40%, 40%);
color: white;
}
div.awesomplete mark {
background: hsl(65, 100%, 50%);
}
div.awesomplete li:hover mark {
background: hsl(68, 100%, 41%);
}
div.awesomplete li[aria-selected="true"] mark {
background: hsl(86, 100%, 21%);
color: inherit;
}

View File

@@ -1,373 +0,0 @@
/*!
* Datetimepicker for Bootstrap 3
* version : 4.17.43
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/
.bootstrap-datetimepicker-widget {
list-style: none;
}
.bootstrap-datetimepicker-widget.dropdown-menu {
margin: 2px 0;
padding: 4px;
width: 19em;
}
@media (min-width: 768px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 992px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 1200px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
.bootstrap-datetimepicker-widget.dropdown-menu:before,
.bootstrap-datetimepicker-widget.dropdown-menu:after {
content: '';
display: inline-block;
position: absolute;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
top: -7px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid white;
top: -6px;
left: 8px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 7px solid #ccc;
border-top-color: rgba(0, 0, 0, 0.2);
bottom: -7px;
left: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid white;
bottom: -6px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
left: auto;
right: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
left: auto;
right: 7px;
}
.bootstrap-datetimepicker-widget .list-unstyled {
margin: 0;
}
.bootstrap-datetimepicker-widget a[data-action] {
padding: 6px 0;
}
.bootstrap-datetimepicker-widget a[data-action]:active {
box-shadow: none;
}
.bootstrap-datetimepicker-widget .timepicker-hour,
.bootstrap-datetimepicker-widget .timepicker-minute,
.bootstrap-datetimepicker-widget .timepicker-second {
width: 54px;
font-weight: bold;
font-size: 1.2em;
margin: 0;
}
.bootstrap-datetimepicker-widget button[data-action] {
padding: 6px;
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle AM/PM";
}
.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Clear the picker";
}
.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Set the date to today";
}
.bootstrap-datetimepicker-widget .picker-switch {
text-align: center;
}
.bootstrap-datetimepicker-widget .picker-switch::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle Date and Time Screens";
}
.bootstrap-datetimepicker-widget .picker-switch td {
padding: 0;
margin: 0;
height: auto;
width: auto;
line-height: inherit;
}
.bootstrap-datetimepicker-widget .picker-switch td span {
line-height: 2.5;
height: 2.5em;
width: 100%;
}
.bootstrap-datetimepicker-widget table {
width: 100%;
margin: 0;
}
.bootstrap-datetimepicker-widget table td,
.bootstrap-datetimepicker-widget table th {
text-align: center;
border-radius: 4px;
}
.bootstrap-datetimepicker-widget table th {
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table th.picker-switch {
width: 145px;
}
.bootstrap-datetimepicker-widget table th.disabled,
.bootstrap-datetimepicker-widget table th.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table th.prev::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Previous Month";
}
.bootstrap-datetimepicker-widget table th.next::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Next Month";
}
.bootstrap-datetimepicker-widget table thead tr:first-child th {
cursor: pointer;
}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
background: #eeeeee;
}
.bootstrap-datetimepicker-widget table td {
height: 54px;
line-height: 54px;
width: 54px;
}
.bootstrap-datetimepicker-widget table td.cw {
font-size: .8em;
height: 20px;
line-height: 20px;
color: #777777;
}
.bootstrap-datetimepicker-widget table td.day {
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table td.day:hover,
.bootstrap-datetimepicker-widget table td.hour:hover,
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td.second:hover {
background: #eeeeee;
cursor: pointer;
}
.bootstrap-datetimepicker-widget table td.old,
.bootstrap-datetimepicker-widget table td.new {
color: #777777;
}
.bootstrap-datetimepicker-widget table td.today {
position: relative;
}
.bootstrap-datetimepicker-widget table td.today:before {
content: '';
display: inline-block;
border: solid transparent;
border-width: 0 0 7px 7px;
border-bottom-color: #337ab7;
border-top-color: rgba(0, 0, 0, 0.2);
position: absolute;
bottom: 4px;
right: 4px;
}
.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover {
background-color: #337ab7;
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td.active.today:before {
border-bottom-color: #fff;
}
.bootstrap-datetimepicker-widget table td.disabled,
.bootstrap-datetimepicker-widget table td.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table td span {
display: inline-block;
width: 54px;
height: 54px;
line-height: 54px;
margin: 2px 1.5px;
cursor: pointer;
border-radius: 4px;
}
.bootstrap-datetimepicker-widget table td span:hover {
background: #eeeeee;
}
.bootstrap-datetimepicker-widget table td span.active {
background-color: #337ab7;
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td span.old {
color: #777777;
}
.bootstrap-datetimepicker-widget table td span.disabled,
.bootstrap-datetimepicker-widget table td span.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
height: 27px;
line-height: 27px;
}
.bootstrap-datetimepicker-widget.wider {
width: 21em;
}
.bootstrap-datetimepicker-widget .datepicker-decades .decade {
line-height: 1.8em !important;
}
.input-group.date .input-group-addon {
cursor: pointer;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,195 +0,0 @@
/* ========================================================================
* bootstrap-switch - v3.3.2
* http://www.bootstrap-switch.org
* ========================================================================
* Copyright 2012-2013 Mattia Larentis
*
* ========================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================================
*/
.bootstrap-switch {
display: inline-block;
direction: ltr;
cursor: pointer;
border-radius: 4px;
border: 1px solid;
border-color: #cccccc;
position: relative;
text-align: left;
overflow: hidden;
line-height: 8px;
z-index: 0;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
vertical-align: middle;
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.bootstrap-switch .bootstrap-switch-container {
display: inline-block;
top: 0;
border-radius: 4px;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.bootstrap-switch .bootstrap-switch-handle-on,
.bootstrap-switch .bootstrap-switch-handle-off,
.bootstrap-switch .bootstrap-switch-label {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
cursor: pointer;
display: inline-block !important;
height: 100%;
padding: 6px 12px;
font-size: 14px;
line-height: 20px;
}
.bootstrap-switch .bootstrap-switch-handle-on,
.bootstrap-switch .bootstrap-switch-handle-off {
text-align: center;
z-index: 1;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {
color: #fff;
background: #337ab7;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {
color: #fff;
background: #5bc0de;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {
color: #fff;
background: #5cb85c;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {
background: #f0ad4e;
color: #fff;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {
color: #fff;
background: #d9534f;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {
color: #000;
background: #eeeeee;
}
.bootstrap-switch .bootstrap-switch-label {
text-align: center;
margin-top: -1px;
margin-bottom: -1px;
z-index: 100;
color: #333333;
background: #ffffff;
}
.bootstrap-switch .bootstrap-switch-handle-on {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}
.bootstrap-switch .bootstrap-switch-handle-off {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.bootstrap-switch input[type='radio'],
.bootstrap-switch input[type='checkbox'] {
position: absolute !important;
top: 0;
left: 0;
margin: 0;
z-index: -1;
opacity: 0;
filter: alpha(opacity=0);
}
.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,
.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,
.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
}
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
}
.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,
.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,
.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {
padding: 6px 16px;
font-size: 18px;
line-height: 1.3333333;
}
.bootstrap-switch.bootstrap-switch-disabled,
.bootstrap-switch.bootstrap-switch-readonly,
.bootstrap-switch.bootstrap-switch-indeterminate {
cursor: default !important;
}
.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,
.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,
.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,
.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,
.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,
.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,
.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,
.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,
.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: default !important;
}
.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {
-webkit-transition: margin-left 0.5s;
-o-transition: margin-left 0.5s;
transition: margin-left 0.5s;
}
.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}
.bootstrap-switch.bootstrap-switch-focused {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,
.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,
.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,596 +0,0 @@
/*!
* Bootstrap v3.3.5 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*!
* Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=74bddeade5026a07eb7f668f15f1b64a)
* Config saved to config.json and https://gist.github.com/74bddeade5026a07eb7f668f15f1b64a
*/
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-default.disabled,
.btn-primary.disabled,
.btn-success.disabled,
.btn-info.disabled,
.btn-warning.disabled,
.btn-danger.disabled,
.btn-default[disabled],
.btn-primary[disabled],
.btn-success[disabled],
.btn-info[disabled],
.btn-warning[disabled],
.btn-danger[disabled],
fieldset[disabled] .btn-default,
fieldset[disabled] .btn-primary,
fieldset[disabled] .btn-success,
fieldset[disabled] .btn-info,
fieldset[disabled] .btn-warning,
fieldset[disabled] .btn-danger {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
text-shadow: 0 1px 0 #fff;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-color: #e8e8e8;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-color: #2e6da4;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
border-radius: 4px;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
border-color: #2b669a;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,362 +0,0 @@
/*!
* Fancytree "awesome" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0em 0em;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 1em;
height: 1em;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-position: 0em 0em;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 0px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 0.5em;
background-position: 0em 0em;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 1em;
height: 1em;
margin-left: 0.5em;
margin-top: 0px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 0.5em;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 0.5em;
}
/* Documents */
/* Folders */
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url("loading.gif");
}
/* Status node icons */
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 1em;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 1em;
padding: 0 3px 0 3px;
margin: 0px 0 0 0.5em;
border: 1px solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 2em;
position: absolute;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 4em;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0em 0em;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
ul.fancytree-container ul {
padding: 0.3em 0 0 1em;
margin: 0;
}

View File

@@ -1,53 +0,0 @@
/*!
* Fancytree "awesome" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Borders have NO radius and NO gradients are used!
// both:
// unselected background: white
// hover bar (unselected, inactive): #E5F3FB (border: #70C0E7) 'very light blue'
// active node: #CBE8F6 (border: #26A0DA) 'light blue'
// active node with hover: wie active node
// Tree view:
// active node, tree inactive: #F7F7F7 (border: #DEDEDE) 'light gray, selected, but tree not active'
// List view:
// selected bar: --> active bar
// focus bar: transparent(white) + border 1px solid #3399FF ()
// table left/right border: #EDEDED 'light gray'
// local vars
@fancy-my-icon-size: 16px;
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: false; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-icon-width: 1em;
@fancy-icon-height: 1em;
@fancy-line-height: 1em;
@fancy-icon-spacing: 0.5em;
ul.fancytree-container ul
{
padding: 0.3em 0 0 1em;
margin: 0;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,442 +0,0 @@
/*!
* Fancytree "bootstrap" skin (highlighting the node span instead of title-only).
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0em 0em;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 1em;
height: 1em;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-position: 0em 0em;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 0px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 0.5em;
background-position: 0em 0em;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 1em;
height: 1em;
margin-left: 0.5em;
margin-top: 0px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 0.5em;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 0.5em;
}
/* Documents */
/* Folders */
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url("loading.gif");
}
/* Status node icons */
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 1em;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 1em;
padding: 0 3px 0 3px;
margin: 0px 0 0 0.5em;
border: 1px solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 2em;
position: absolute;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 4em;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0em 0em;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
ul.fancytree-container ul {
padding: 0 0 0 1.5em;
margin: 0;
}
/* Prevent focus frame */
.fancytree-container:focus {
outline: none;
}
span.fancytree-node {
border: 1px solid transparent;
border-radius: 3px;
padding-left: 8px;
}
span.fancytree-title {
border-radius: 3px;
}
span.fancytree-node.fancytree-selected {
background-color: #80c780;
border-color: #80c780;
}
span.fancytree-node.fancytree-selected span.fancytree-title {
background-color: #80c780;
}
span.fancytree-node.fancytree-active {
background-color: #6aa3d5;
}
.fancytree-container.fancytree-treefocus span.fancytree-node:hover {
background-color: #e9f2f9;
}
.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-focused {
border-color: #428bca;
}
.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-selected {
background-color: #5cb85c;
}
.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-selected span.fancytree-title {
background-color: #5cb85c;
}
.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-active {
background-color: #428bca;
border-color: #428bca;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody tr td {
border: 1px solid #eeeeee;
}
table.fancytree-ext-table tbody tr.fancytree-selected {
background-color: #80c780;
}
table.fancytree-ext-table tbody tr.fancytree-selected span.fancytree-node {
background-color: #80c780;
}
table.fancytree-ext-table tbody tr.fancytree-selected span.fancytree-title {
background-color: #80c780;
}
table.fancytree-ext-table tbody tr.fancytree-active {
background-color: #6aa3d5;
}
table.fancytree-ext-table tbody tr.fancytree-active span.fancytree-node {
background-color: #6aa3d5;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr:hover {
background-color: #e9f2f9;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-focused span.fancytree-title {
outline: 1px dotted #428bca;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-selected {
background-color: #5cb85c;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-selected span.fancytree-node {
background-color: #5cb85c;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-selected span.fancytree-title {
background-color: #5cb85c;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-active {
background-color: #428bca;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-active span.fancytree-node {
background-color: #428bca;
}

View File

@@ -1,173 +0,0 @@
/*!
* Fancytree "bootstrap" skin (highlighting the node span instead of title-only).
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// local vars
@fancy-my-icon-size: 16px;
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: false; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-icon-width: 1em;
@fancy-icon-height: 1em;
@fancy-line-height: 1em;
@fancy-icon-spacing: 0.5em;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
// @fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
ul.fancytree-container ul {
padding: 0 0 0 1.5em;
margin: 0;
}
/* Prevent focus frame */
.fancytree-container:focus {
outline: none;
}
/////
// Original bootstrap colors (http://getbootstrap.com/css/#responsive-utilities)
@gray-darker: lighten(#000, 13.5%); // #222
@gray-dark: lighten(#000, 20%); // #333
@gray: lighten(#000, 33.5%); // #555
@gray-light: lighten(#000, 60%); // #999
@gray-lighter: lighten(#000, 93.5%); // #eee
@brand-primary: #428bca; // blue
@brand-success: #5cb85c; // green
@brand-info: #5bc0de; // light blue
@brand-warning: #f0ad4e; // orange
@brand-danger: #d9534f; // red
@border-radius-base: 4px;
@border-radius-large: 6px;
@border-radius-small: 3px;
/////////////
span.fancytree-node {
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
border-radius: @border-radius-small;
padding-left: 8px;
}
span.fancytree-title {
border-radius: @border-radius-small;
}
// Inactive tree:
span.fancytree-node.fancytree-selected { // selected nodes inside inactive tree
background-color: lighten(@brand-success, 10%);
border-color: lighten(@brand-success, 10%);
span.fancytree-title {
background-color: lighten(@brand-success, 10%); // green title, even when active
}
}
span.fancytree-node.fancytree-active { // active nodes inside inactive tree
background-color: lighten(@brand-primary, 10%);
}
// Active tree:
.fancytree-container.fancytree-treefocus {
span.fancytree-node:hover {
background-color: lighten(@brand-primary, 42%);
}
span.fancytree-node.fancytree-focused {
border-color: @brand-primary;
}
span.fancytree-node.fancytree-selected {
background-color: @brand-success;
span.fancytree-title {
background-color: @brand-success; // green title, even when active
}
}
span.fancytree-node.fancytree-active {
background-color: @brand-primary;
border-color: @brand-primary;
}
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody {
tr td {
border: 1px solid @gray-lighter;
}
// span.fancytree-node,
// span.fancytree-node:hover { // undo standard tree css
// border: none;
// background: none;
// }
// // Title get's a white background, when hovered. Undo standard node formatting
// span.fancytree-title:hover {
// border: none;
// background: inherit;
// background: transparent;
// background: none;
// filter: none;
// }
// dimmed, if inside inactive tree
tr.fancytree-selected {
background-color: lighten(@brand-success, 10%);
span.fancytree-node {
background-color: lighten(@brand-success, 10%);
}
span.fancytree-title {
background-color: lighten(@brand-success, 10%); // green title, even when active
}
}
tr.fancytree-active { // dimmed, if inside inactive tree
background-color: lighten(@brand-primary, 10%);
span.fancytree-node {
background-color: lighten(@brand-primary, 10%);
}
}
}
table.fancytree-ext-table.fancytree-treefocus tbody {
tr:hover {
background-color: lighten(@brand-primary, 42%);
// outline: 1px solid @brand-primary;
}
tr.fancytree-focused span.fancytree-title {
outline: 1px dotted @brand-primary;
}
tr.fancytree-active:hover,
tr.fancytree-selected:hover {
// background-color: #CBE8F6;
// outline: 1px solid #26A0DA;
}
tr.fancytree-selected {
background-color: @brand-success;
span.fancytree-node {
background-color: @brand-success;
}
span.fancytree-title {
background-color: @brand-success; // green title, even when active
}
}
tr.fancytree-active {
background-color: @brand-primary;
span.fancytree-node {
background-color: @brand-primary;
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1,493 +0,0 @@
/*!
* Fancytree "bootstrap" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0em 0em;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 1em;
height: 1em;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-position: 0em 0em;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 2px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 0.5em;
background-position: 0em 0em;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 1em;
height: 1em;
margin-left: 0.5em;
margin-top: 2px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 0.5em;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 0.5em;
}
/* Documents */
/* Folders */
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: none;
}
/* Status node icons */
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 0px;
min-height: 1em;
}
span.fancytree-title {
color: #333333;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 1em;
padding: 0 3px 0 3px;
margin: 0px 0 0 0.5em;
border: 1px solid transparent;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #d9534f;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 2em;
position: absolute;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 4em;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0em 0em;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #333333;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #333333;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Plain tree
* Modifier classes on <ul> container:
* table-hover : Enable a light mouse hover effect
* fancytree-colorize-selected: Give selected (checked) rows a color
*/
ul.fancytree-container ul {
padding: 0 0 0 1.5em;
margin: 0;
}
/* Prevent focus frame */
.fancytree-container:focus {
outline: none;
}
.fancytree-container .fancytree-active span.fancytree-title input,
.fancytree-container.fancytree-colorize-selected .fancytree-selected span.fancytree-title input {
color: black;
}
div.fancytree-drag-helper.fancytree-drop-reject,
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-title {
color: #d9534f;
}
span.fancytree-node.fancytree-drag-source {
background-color: #5bc0de !important;
}
span.fancytree-node.fancytree-drop-target.fancytree-drop-reject span.fancytree.title {
background-color: #d9534f !important;
}
.fancytree-plain.fancytree-colorize-selected span.fancytree-node.fancytree-selected,
.fancytree-plain.fancytree-colorize-selected span.fancytree-node.fancytree-selected span.fancytree-title {
background-color: #80c780;
border-color: #80c780;
color: #ffffff;
}
.fancytree-plain.fancytree-colorize-selected span.fancytree-node.fancytree-selected:hover span.fancytree-title {
background-color: #6ec06e;
}
.fancytree-plain.fancytree-colorize-selected span.fancytree-node.fancytree-active.fancytree-selected span.fancytree-title {
color: #80c780;
}
.fancytree-plain.fancytree-colorize-selected.fancytree-treefocus span.fancytree-title:hover {
background-color: #f5f5f5;
}
.fancytree-plain.fancytree-colorize-selected.fancytree-treefocus span.fancytree-node.fancytree-selected span.fancytree-title {
background-color: #5cb85c;
}
.fancytree-plain.fancytree-colorize-selected.fancytree-treefocus span.fancytree-node.fancytree-selected:hover span.fancytree-title {
background-color: #4cae4c;
}
.fancytree-plain.fancytree-colorize-selected.fancytree-treefocus span.fancytree-node.fancytree-active.fancytree-selected span.fancytree-title {
color: #5cb85c;
}
.fancytree-plain.fancytree-container span.fancytree-node {
margin-top: 2px;
margin-bottom: 2px;
}
.fancytree-plain.fancytree-container span.fancytree-title {
border: 1px solid transparent;
border-radius: 3px;
outline-radius: 3px;
}
.fancytree-plain.fancytree-container span.fancytree-title:hover {
background-color: #f5f5f5;
}
.fancytree-plain.fancytree-container span.fancytree-node.fancytree-active span.fancytree-title {
background-color: #5094ce;
color: #ffffff;
}
.fancytree-plain.fancytree-container span.fancytree-node.fancytree-active:hover span.fancytree-title {
background-color: #3c87c8;
}
.fancytree-plain.fancytree-container.fancytree-ext-wide span.fancytree-node.fancytree-active {
color: #ffffff;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-focused span.fancytree-title {
border-color: #337ab7;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-active span.fancytree-title {
background-color: #337ab7;
border-color: #337ab7;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-active:hover span.fancytree-title {
background-color: #2e6da4;
}
/*******************************************************************************
* 'table' extension
* Modifier classes on <table>:
* table-hover : Enable a light mouse hover effect
* fancytree-colorize-selected: Give selected (checked) rows a color
*/
table.fancytree-ext-table > tbody > tr > td span.fancytree-title {
border: none;
}
table.fancytree-ext-table.fancytree-colorize-selected > tbody > tr.fancytree-selected > td {
background-color: #80c780;
}
table.fancytree-ext-table.fancytree-colorize-selected > tbody > tr.fancytree-selected > td,
table.fancytree-ext-table.fancytree-colorize-selected > tbody > tr.fancytree-selected > td span.fancytree-title {
color: #ffffff;
}
table.fancytree-ext-table.fancytree-colorize-selected.fancytree-treefocus > tbody > tr.fancytree-selected > td {
background-color: #5cb85c;
}
table.fancytree-ext-table.fancytree-colorize-selected.table-hover > tbody > tr.fancytree-selected:hover > td {
background-color: #6ec06e;
}
table.fancytree-ext-table.fancytree-colorize-selected.fancytree-treefocus.table-hover > tbody > tr.fancytree-selected:hover > td {
background-color: #4cae4c;
}
table.fancytree-ext-table.fancytree-colorize-selected.fancytree-treefocus.table-hover > tbody > tr.fancytree-selected.fancytree-active:hover > td,
table.fancytree-ext-table.fancytree-colorize-selected.table-hover > tbody > tr.fancytree-selected.fancytree-active:hover > td {
background-color: #2e6da4;
}
table.fancytree-ext-table.fancytree-colorize-selected > tbody > tr.fancytree-active.fancytree-selected {
outline-width: 2px;
outline-offset: -2px;
outline-style: solid;
outline-color: #80c780;
}
table.fancytree-ext-table.fancytree-container > tbody > tr.fancytree-active > td {
background-color: #5094ce;
}
table.fancytree-ext-table.fancytree-container > tbody > tr.fancytree-active > td,
table.fancytree-ext-table.fancytree-container > tbody > tr.fancytree-active > td span.fancytree-title {
color: #ffffff;
}
table.fancytree-ext-table.fancytree-treefocus.fancytree-container > tbody > tr.fancytree-focused span.fancytree-title {
outline: 1px dotted #000;
}
table.fancytree-ext-table.fancytree-treefocus.fancytree-container > tbody > tr.fancytree-active > td {
background-color: #337ab7;
}
table.fancytree-ext-table.fancytree-treefocus.fancytree-container.table-hover > tbody > tr.fancytree-active:hover > td {
background-color: #2e6da4;
}

View File

@@ -1,333 +0,0 @@
/*!
* Fancytree "bootstrap" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// local vars
// @fancy-my-icon-size: 16px;
//------------------------------------------------------------------------------
// Original bootstrap colors
// See http://getbootstrap.com/css/#less-variables-colors and
// https://github.com/twbs/bootstrap/blob/master/less/variables.less
@gray-base: #000;
@gray-darker: lighten(@gray-base, 13.5%); // #222
@gray-dark: lighten(@gray-base, 20%); // #333
@gray: lighten(@gray-base, 33.5%); // #555
@gray-light: lighten(@gray-base, 46.7%); // #777
@gray-lighter: lighten(@gray-base, 93.5%); // #eee
@brand-primary: darken(#428bca, 6.5%); // blue, #337ab7
@brand-success: #5cb85c; // green
@brand-info: #5bc0de; // light blue
@brand-warning: #f0ad4e; // orange
@brand-danger: #d9534f; // red
@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
@font-family-serif: Georgia, "Times New Roman", Times, serif;
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
@font-family-base: @font-family-sans-serif;
@font-size-base: 14px;
@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
@border-radius-base: 4px;
@border-radius-large: 6px;
@border-radius-small: 3px;
@text-color: @gray-dark;
//** Default background color used for all tables.
@table-bg: transparent;
//** Background color used for `.table-striped`.
@table-bg-accent: #f9f9f9;
//** Background color used for `.table-hover`.
@table-bg-hover: #f5f5f5;
@table-bg-active: @table-bg-hover;
//** Border color for table and cell borders.
@table-border-color: #ddd;
//------------------------------------------------------------------------------
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: false; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-loading-url: none;
@fancy-line-height: 1em; // height of a nodes selection bar including borders
@fancy-node-v-spacing: 0px; // gap between two node borders
@fancy-icon-width: 1em;
@fancy-icon-height: 1em;
@fancy-icon-spacing: 0.5em; // margin between icon/icon or icon/title
@fancy-icon-ofs-top: 2px; // extra vertical offset for expander, checkbox and icon
@fancy-title-ofs-top: 0px; // extra vertical offset for title
@fancy-node-border-width: 1px;
@fancy-node-border-radius: @border-radius-small;
@fancy-node-outline-width: 1px;
@fancy-font-family: @font-family-base;
@fancy-font-size: @font-size-base;
@fancy-font-color: @text-color;
@fancy-font-color-dimm: @gray-dark;
@fancy-font-error-color: @brand-danger;
@fancy-active-text: #fff;
@fancy-active-color: @brand-primary;
@fancy-select-color: @brand-success;
@fancy-hover-color: @table-bg-hover;
/*******************************************************************************
* Plain tree
* Modifier classes on <ul> container:
* table-hover : Enable a light mouse hover effect
* fancytree-colorize-selected: Give selected (checked) rows a color
*/
ul.fancytree-container ul {
padding: 0 0 0 1.5em;
margin: 0;
}
/* Prevent focus frame */
.fancytree-container:focus {
outline: none;
}
// Active and (optionally) selected nodes are white on colored bg. Undo this for input controls:
.fancytree-container .fancytree-active span.fancytree-title input,
.fancytree-container.fancytree-colorize-selected .fancytree-selected span.fancytree-title input {
color: black;
}
// ------------------------------------------------------------------------------
// * Drag'n'drop support
// *----------------------------------------------------------------------------
// div.fancytree-drag-helper {
// }
// div.fancytree-drag-helper a {
// border: 1px solid gray;
// background-color: white;
// padding-left: 5px;
// padding-right: 5px;
// opacity: 0.8;
// }
// span.fancytree-drag-helper-img {
// // position: relative;
// // left: -16px;
// }
div.fancytree-drag-helper.fancytree-drop-reject,
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-title
{
color: @fancy-font-error-color;
}
// div.fancytree-drop-accept span.fancytree-drag-helper-img {
// .useSprite(2, 7);
// }
// div.fancytree-drop-reject span.fancytree-drag-helper-img {
// .useSprite(1, 7);
// }
// //--- Drop marker icon ---------------------------------------------------------
// #fancytree-drop-marker {
// width: 2 * @fancy-icon-width; // was 24px, but 32 should be correct
// position: absolute;
// .useSprite(0, 8);
// margin: 0;
// &.fancytree-drop-after,
// &.fancytree-drop-before {
// width: 4 * @fancy-icon-width; // 64px;
// .useSprite(0, 9);
// }
// &.fancytree-drop-copy {
// .useSprite(4, 8);
// }
// &.fancytree-drop-move {
// .useSprite(2, 8);
// }
// }
//--- Source node while dragging -----------------------------------------------
span.fancytree-node.fancytree-drag-source {
background-color: @brand-info !important;
span.fancytree.title {
// outline: 1px solid @brand-info;
// color: @brand-primary;
}
}
//--- Target node while dragging cursor is over it -----------------------------
span.fancytree-node.fancytree-drop-target {
&.fancytree-drop-accept span.fancytree.title {
// background-color: @brand-danger !important;
// outline: 1px solid @brand-success;
// color: white !important;
}
&.fancytree-drop-reject span.fancytree.title {
background-color: @brand-danger !important;
// outline: 1px solid @brand-danger;
// color: white !important;
}
}
// Inactive tree:
.fancytree-plain {
&.fancytree-colorize-selected {
span.fancytree-node.fancytree-selected,
span.fancytree-node.fancytree-selected span.fancytree-title { // selected nodes inside inactive tree
background-color: lighten(@fancy-select-color, 10%);
border-color: lighten(@fancy-select-color, 10%);
color: @fancy-active-text;
}
span.fancytree-node.fancytree-selected:hover span.fancytree-title {
background-color: lighten(@fancy-select-color, 5%);
}
span.fancytree-node.fancytree-active.fancytree-selected span.fancytree-title { // active nodes inside inactive tree
color: lighten(@fancy-select-color, 10%);
}
&.fancytree-treefocus {
span.fancytree-title:hover {
background-color: @fancy-hover-color;
}
span.fancytree-node.fancytree-selected span.fancytree-title {
background-color: @fancy-select-color;
}
span.fancytree-node.fancytree-selected:hover span.fancytree-title {
background-color: darken(@fancy-select-color, 5%);
}
span.fancytree-node.fancytree-active.fancytree-selected span.fancytree-title {
color: @fancy-select-color;
}
}
}
&.fancytree-container { // adding this class to increase specificity, so we can override .fancytree-colorize-selected
span.fancytree-node {
margin-top: 2px;
margin-bottom: 2px;
}
span.fancytree-title {
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
border-radius: @border-radius-small;
outline-radius: @border-radius-small;
}
span.fancytree-title:hover {
background-color: @fancy-hover-color;
}
span.fancytree-node.fancytree-active span.fancytree-title { // active nodes inside inactive tree
background-color: lighten(@fancy-active-color, 10%);
color: @fancy-active-text;
}
span.fancytree-node.fancytree-active:hover span.fancytree-title {
background-color: lighten(@fancy-active-color, 5%);
}
&.fancytree-ext-wide span.fancytree-node.fancytree-active { // in wide mode, icons of active nodes must be white-on-color
color: @fancy-active-text;
}
// Active tree:
&.fancytree-treefocus {
span.fancytree-node.fancytree-focused span.fancytree-title {
border-color: @brand-primary;
}
span.fancytree-node.fancytree-active span.fancytree-title {
background-color: @fancy-active-color;
border-color: @fancy-active-color;
}
span.fancytree-node.fancytree-active:hover span.fancytree-title {
background-color: darken(@fancy-active-color, 5%);
}
}
}
}
/*******************************************************************************
* 'table' extension
* Modifier classes on <table>:
* table-hover : Enable a light mouse hover effect
* fancytree-colorize-selected: Give selected (checked) rows a color
*/
table.fancytree-ext-table {
>tbody >tr >td span.fancytree-title {
border: none;
}
// Give a separate color for selected (checked) rows
// Define *before* the .fancytree-active rules, because active color should
// override selected color.
&.fancytree-colorize-selected {
>tbody >tr.fancytree-selected >td {
// dimmed, if inside inactive tree
background-color: lighten(@fancy-select-color, 10%);
// white text for selected nodes
&,
span.fancytree-title {
color: @fancy-active-text;
}
}
&.fancytree-treefocus >tbody >tr.fancytree-selected >td {
background-color: @fancy-select-color;
}
&.table-hover >tbody >tr.fancytree-selected:hover >td {
// dimmed, if inside inactive tree
background-color: lighten(@fancy-select-color, 5%);
}
&.fancytree-treefocus.table-hover >tbody >tr.fancytree-selected:hover >td {
background-color: darken(@fancy-select-color, 5%);
}
&.fancytree-treefocus.table-hover >tbody >tr.fancytree-selected.fancytree-active:hover >td,
&.table-hover >tbody >tr.fancytree-selected.fancytree-active:hover >td {
background-color: darken(@fancy-active-color, 5%);
}
>tbody >tr.fancytree-active.fancytree-selected {
outline-width: 2px;
outline-offset: -2px;
outline-style: solid;
outline-color: lighten(@fancy-select-color, 10%);
}
}
// General tree (slightly dimmed, since we also define colors for inactive
// mode here).
&.fancytree-container >tbody >tr.fancytree-active >td {
background-color: lighten(@fancy-active-color, 10%);
// white text for selected nodes
&,
span.fancytree-title {
color: @fancy-active-text;
}
}
// Reset to standard colors if tree has keyboard focus.
// We add .fancytree-container to increase specificity, so we can override
// .fancytree-colorize-selected defined above
&.fancytree-treefocus.fancytree-container {
>tbody >tr.fancytree-focused span.fancytree-title {
outline: 1px dotted #000;
}
>tbody >tr.fancytree-active >td {
background-color: @fancy-active-color;
}
&.table-hover >tbody >tr.fancytree-active:hover >td {
background-color: darken(@fancy-active-color, 5%);
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1,686 +0,0 @@
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
// Variables (defaults, may be overwritten by the including .less files)
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true; // false: show vertical connector lines
@fancy-level-indent: 16px;
@fancy-line-height: 16px; // height of a nodes selection bar including borders
@fancy-node-v-spacing: 1px; // gap between two node borders
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-icon-spacing: 3px; // margin between icon/icon or icon/title
@fancy-icon-ofs-top: 0px; // extra vertical offset for expander, checkbox and icon
@fancy-title-ofs-top: 0px; // extra vertical offset for title
@fancy-node-border-width: 1px;
@fancy-node-border-radius: 0px;
@fancy-node-outline-width: 1px;
// @fancy-line-ofs-top: (@fancy-line-height - @fancy-icon-height) / 2;
@fancy-image-dir: ".";
// Use 'url(...)' to link to the throbber image, or
// use data-uri(...)' to inline the data in css instead:
@fancy-loading-url: url("@{fancy-image-dir}/loading.gif");
// @fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` instead of a `url(...)` link:
@fancy-inline-sprites: false;
@fancy-font-size: 10pt;
@fancy-font-family: tahoma, arial, helvetica;
@fancy-font-color: black;
@fancy-font-color-dimm: silver;
@fancy-font-error-color: red;
//------------------------------------------------------------------------------
// Mixins
//------------------------------------------------------------------------------
.setBgPos(@x, @y, @cond:true) when (@cond){
background-position: (@x * -@fancy-icon-width) (@y * -@fancy-icon-height);
}
.clearBgImage(@cond:true) when (@cond){
background-image: none;
}
.setBgImageUrl(@url) when (@fancy-use-sprites) and not (@fancy-inline-sprites) {
background-image: url("@{fancy-image-dir}/@{url}");
}
.setBgImageUrl(@url) when (@fancy-use-sprites) and (@fancy-inline-sprites) {
background-image: data-uri("@{fancy-image-dir}/@{url}");
}
.useSprite(@x, @y) when (@fancy-use-sprites){
.setBgPos(@x, @y);
}
.rounded-corners(@radius) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
-ms-border-radius: @radius;
-o-border-radius: @radius;
border-radius: @radius;
}
.spanStyleMixin(@color, @bgcolor, @bordercolor){
border-color: @bordercolor;
background: @bgcolor;
color: @color;
}
.spanStyleMixin(@color, @bgcolor, @bordercolor, @startColor, @stopColor){
.spanStyleMixin(@color, @bgcolor, @bordercolor);
// @c-start: argb(@startColor);
// @c-end: argb(@stopColor);
background: -moz-linear-gradient(top, @startColor 0%, @stopColor 100%); // FF3.6+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@startColor), color-stop(100%,@stopColor)); // Chrome,Safari4+
background: -webkit-linear-gradient(top, @startColor 0%,@stopColor 100%); // Chrome10+,Safari5.1+
background: -o-linear-gradient(top, @startColor 0%,@stopColor 100%); // Opera 11.10+
background: -ms-linear-gradient(top, @startColor 0%,@stopColor 100%); // IE10+
background: linear-gradient(to bottom, @startColor 0%,@stopColor 100%); // W3C
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@{startColor}', endColorstr='@{stopColor}',GradientType=0 ); // IE6-9
}
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
// Redefine, in case jQuery-UI is not included
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: @fancy-font-family;
font-size: @fancy-font-size;
white-space: nowrap;
padding: 3px;
margin: 0; // DT issue 201
background-color: white;
border: 1px dotted gray;
overflow: auto;
// height: 100%; // DT issue 263, 470
min-height: 0%; // #192
position: relative; // #235
ul {
padding: 0 0 0 @fancy-level-indent;
margin: 0;
}
li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
.setBgPos(0, 0);
background-repeat: repeat-y;
background-image: none; // no v-lines
margin: 0;
// padding: 1px 0 0 0; // issue #246
}
// Suppress lines for last child node
li.fancytree-lastsib {
background-image: none;
}
}
// Suppress lines if level is fixed expanded (option minExpandLevel)
ul.fancytree-no-connector > li {
background-image: none;
}
// Style, when control is disabled
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
// filter: alpha(opacity=50); // Yields a css warning
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: @fancy-icon-width;
height: @fancy-icon-height;
// display: -moz-inline-box; // @ FF 1+2 removed for issue 221
// -moz-box-align: start; /* issue 221 */
display: inline-block; // Required to make a span sizeable
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
.setBgImageUrl("icons.gif");
.setBgPos(0, 0);
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: @fancy-icon-ofs-top;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: @fancy-icon-spacing;
.setBgPos(0, 0);
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: @fancy-icon-width;
height: @fancy-icon-height;
margin-left: @fancy-icon-spacing;
margin-top: @fancy-icon-ofs-top;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
// .useSprite(0, 5);
cursor: pointer;
}
// span.fancytree-expander:hover {
// // .useSprite(1, 5);
// }
// --- End nodes (use connectors instead of expanders)
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
.clearBgImage( @fancy-hide-connectors );
cursor: default;
}
.fancytree-exp-n span.fancytree-expander, // End-node, not last sibling
.fancytree-exp-n span.fancytree-expander:hover {
.useSprite(0, 4);
}
.fancytree-exp-nl span.fancytree-expander, // End-node, last sibling
.fancytree-exp-nl span.fancytree-expander:hover {
.useSprite(1, 4);
}
// --- Collapsed
.fancytree-exp-c span.fancytree-expander { // Collapsed, not delayed, not last sibling
.useSprite(0, 5);
}
.fancytree-exp-c span.fancytree-expander:hover {
.useSprite(1, 5);
}
.fancytree-exp-cl span.fancytree-expander { // Collapsed, not delayed, last sibling
.useSprite(0, 6);
}
.fancytree-exp-cl span.fancytree-expander:hover {
.useSprite(1, 6);
}
.fancytree-exp-cd span.fancytree-expander { // Collapsed, delayed, not last sibling
.useSprite(4, 5);
}
.fancytree-exp-cd span.fancytree-expander:hover {
.useSprite(5, 5);
}
.fancytree-exp-cdl span.fancytree-expander { // Collapsed, delayed, last sibling
.useSprite(4, 6);
}
.fancytree-exp-cdl span.fancytree-expander:hover {
.useSprite(5, 6);
}
// --- Expanded
.fancytree-exp-e span.fancytree-expander, // Expanded, not delayed, not last sibling
.fancytree-exp-ed span.fancytree-expander { // Expanded, delayed, not last sibling
.useSprite(2, 5);
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
.useSprite(3, 5);
}
.fancytree-exp-el span.fancytree-expander, // Expanded, not delayed, last sibling
.fancytree-exp-edl span.fancytree-expander { // Expanded, delayed, last sibling
.useSprite(2, 6);
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
.useSprite(3, 6);
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: @fancy-icon-spacing;
.useSprite(0, 2);
&:hover { .useSprite(1, 2); }
}
.fancytree-partsel span.fancytree-checkbox {
.useSprite(4, 2);
&:hover { .useSprite(5, 2); }
}
// selected after partsel, so it takes precedence:
.fancytree-selected span.fancytree-checkbox {
.useSprite(2, 2);
&:hover { .useSprite(3, 2); }
}
// Unselectable is dimmed, without hover effects
.fancytree-unselectable {
span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
span.fancytree-checkbox:hover {
.useSprite(0, 2);
}
&.fancytree-partsel span.fancytree-checkbox:hover {
.useSprite(4, 2);
}
&.fancytree-selected span.fancytree-checkbox:hover {
.useSprite(2, 2);
}
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio {
span.fancytree-checkbox {
.useSprite(0, 3);
&:hover { .useSprite(1, 3); }
}
.fancytree-partsel span.fancytree-checkbox {
.useSprite(4, 3);
&:hover { .useSprite(5, 3); }
}
// Selected after partsel, so it takes precedence:
.fancytree-selected span.fancytree-checkbox {
.useSprite(2, 3);
&:hover { .useSprite(3, 3); }
}
// Unselectable is dimmed, without hover effects
.fancytree-unselectable {
span.fancytree-checkbox,
span.fancytree-checkbox:hover {
.useSprite(0, 3);
}
}
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon { // Default icon
margin-left: @fancy-icon-spacing;
.useSprite(0, 0);
}
/* Documents */
.fancytree-ico-c span.fancytree-icon { // Collapsed folder (empty)
// .useSprite(0, 0);
}
.fancytree-ico-c span.fancytree-icon:hover {
.useSprite(1, 0);
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon { // Collapsed folder (not empty)
.useSprite(2, 0);
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
.useSprite(3, 0);
}
.fancytree-ico-e span.fancytree-icon { // Expanded folder
.useSprite(4, 0);
}
.fancytree-ico-e span.fancytree-icon:hover {
.useSprite(5, 0);
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon { // Collapsed folder (empty)
.useSprite(0, 1);
}
.fancytree-ico-cf span.fancytree-icon:hover {
.useSprite(1, 1);
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon { // Collapsed folder (not empty)
.useSprite(2, 1);
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
.useSprite(3, 1);
}
.fancytree-ico-ef span.fancytree-icon { // Expanded folder
.useSprite(4, 1);
}
.fancytree-ico-ef span.fancytree-icon:hover {
.useSprite(5, 1);
}
// 'Loading' status overrides all others
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: @fancy-loading-url;
.useSprite(0, 0);
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
.useSprite(0, 7);
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit; // #117, resolves to 'display: list-item;' for standard trees
width: 100%;
margin-top: @fancy-node-v-spacing;
min-height: @fancy-line-height;
}
span.fancytree-title {
color: @fancy-font-color; // inherit doesn't work on IE
cursor: pointer;
display: inline-block; // Better alignment, when title contains <br>
vertical-align: top;
min-height: @fancy-line-height;
padding: 0 3px 0 3px; // Otherwise italic font will be outside right bounds
margin: @fancy-title-ofs-top 0 0 @fancy-icon-spacing;
// margin: 0px;
// margin-top: @fancy-line-ofs-top;
// margin-left: @fancy-icon-spacing;
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
.rounded-corners(@fancy-node-border-radius);
// outline: 0; // @ Firefox, prevent dotted border after click
// Set transparent border to prevent jumping when active node gets a border
// (we can do this, because this theme doesn't use vertical lines)
// border: 1px solid white; // Note: 'transparent' would not work in IE6
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: @fancy-font-error-color;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper {
span.fancytree-childcounter,
span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7; // bootstrap blue
border: 1px solid gray;
min-width: 10px;
// min-height: 16px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
span.fancytree-childcounter {
position: absolute;
// left: 16px;
top: -6px;
right: -6px;
}
span.fancytree-dnd-modifier {
background: #5cb85c; // bootstrap green
border: none;
// min-height: 16px;
// font-size: 12px;
font-weight: bolder;
}
&.fancytree-drop-accept {
span.fancytree-drag-helper-img {
.useSprite(2, 7);
}
}
&.fancytree-drop-reject {
span.fancytree-drag-helper-img {
.useSprite(1, 7);
}
}
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 2 * @fancy-icon-width; // was 24px, but 32 should be correct
position: absolute;
.useSprite(0, 8);
margin: 0;
&.fancytree-drop-after,
&.fancytree-drop-before {
width: 4 * @fancy-icon-width; // 64px;
.useSprite(0, 9);
}
&.fancytree-drop-copy {
.useSprite(4, 8);
}
&.fancytree-drop-move {
.useSprite(2, 8);
}
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source {
&.fancytree-drag-remove {
// text-decoration: line-through;
opacity: 0.15;
}
}
/*** Target node while dragging cursor is over it *****************************/
span.fancytree-drop-target {
&.fancytree-drop-accept {
// outline: 1px dotted #5cb85c; // bootstrap sucess
}
}
span.fancytree-drop-reject {
// outline: 1px dotted #d9534f; // boostrap warning
}
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
span.fancytree-node {
display: inline-block; // #117
}
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview {
// border-collapse: collapse;
// width: 100%;
tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
>ul {
padding: 0;
li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip:border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
.setBgPos(0, 0);
background-repeat: repeat-y;
background-image: none; /* no v-lines */
margin: 0;
// padding: 1px 0 0 0; // issue #246
}
}
}
span.fancytree-node {
position: relative; /* allow positioning of embedded spans */
display: inline-block; // #117
}
span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
// table.fancytree-ext-columnview span.fancytree-node.fancytree-active {
// background-color: royalblue;
// }
.fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
.useSprite(0, 5);
&:hover {
.useSprite(1, 5);
}
}
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm {
span.fancytree-node span.fancytree-title {
color: @fancy-font-color-dimm;
font-weight: lighter;
}
tr.fancytree-submatch span.fancytree-title,
span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
tr.fancytree-match span.fancytree-title,
span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
}
.fancytree-ext-filter-hide {
tr.fancytree-hide,
span.fancytree-node.fancytree-hide {
display: none;
}
tr.fancytree-submatch span.fancytree-title,
span.fancytree-node.fancytree-submatch span.fancytree-title {
color: @fancy-font-color-dimm;
font-weight: lighter;
}
tr.fancytree-match span.fancytree-title,
span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
}
.fancytree-ext-childcounter,
.fancytree-ext-filter {
// span.fancytree-title mark {
// font-style: normal;
// background-color: #ead61c; // yellow
// border-radius: 3px;
// }
span.fancytree-icon {
position: relative;
}
span.fancytree-childcounter {
color: #fff;
background: #777; // #337ab7; // bootstrap blue
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
span.fancytree-node >span {
position: relative;
z-index: 2;
}
span.fancytree-node span.fancytree-title {
position: absolute; // Allow left: 0. Note: prevents smooth dropdown animation
z-index: 1; // Behind expander and checkbox
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
}

View File

@@ -1,14 +0,0 @@
### Creating Custom Skins
1. Create a folder like this (recommended name: 'src/skin-custom-...')
2. For a start copy files from one of the existing skin folders (src/skin-...)
to the custom folder:
- ui.fancytree.less (required)
- icons.gif (if needed)
- loading.gif (if needed)
3. cd to your fancytree folder and run `grunt dev` from the connsole.<br>
Note: NPM and Grunt are required.
Read [how to install the toolset](https://github.com/mar10/fancytree/wiki/HowtoContribute#install-the-source-code-and-tools-for-debugging-and-contributing).
4. Edit and save your ui.fancytree.less file.<br>
The `ui.fancytree.css` will be generated and updated automatically from
the LESS file.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,566 +0,0 @@
/*!
* Fancytree "Lion" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*
Lion colors:
gray highlight bar: #D4D4D4
blue highlight-bar and -border #3875D7
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0px 0px;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 0px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 3px;
background-position: 0px 0px;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 16px;
height: 16px;
margin-left: 3px;
margin-top: 0px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-n span.fancytree-expander:hover {
background-position: 0px -64px;
}
.fancytree-exp-nl span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander:hover {
background-position: -16px -64px;
}
.fancytree-exp-c span.fancytree-expander {
background-position: 0px -80px;
}
.fancytree-exp-c span.fancytree-expander:hover {
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander {
background-position: 0px -96px;
}
.fancytree-exp-cl span.fancytree-expander:hover {
background-position: -16px -96px;
}
.fancytree-exp-cd span.fancytree-expander {
background-position: -64px -80px;
}
.fancytree-exp-cd span.fancytree-expander:hover {
background-position: -80px -80px;
}
.fancytree-exp-cdl span.fancytree-expander {
background-position: -64px -96px;
}
.fancytree-exp-cdl span.fancytree-expander:hover {
background-position: -80px -96px;
}
.fancytree-exp-e span.fancytree-expander,
.fancytree-exp-ed span.fancytree-expander {
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
background-position: -48px -80px;
}
.fancytree-exp-el span.fancytree-expander,
.fancytree-exp-edl span.fancytree-expander {
background-position: -32px -96px;
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
background-position: -48px -96px;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover {
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox {
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox {
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -32px;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
.fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -32px;
}
.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -64px -32px;
}
.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover {
background-position: -32px -32px;
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio span.fancytree-checkbox {
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover {
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox {
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox {
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -48px;
}
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox,
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -48px;
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 3px;
background-position: 0px 0px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:hover {
background-position: -16px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
background-position: -32px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
background-position: -48px 0px;
}
.fancytree-ico-e span.fancytree-icon {
background-position: -64px 0px;
}
.fancytree-ico-e span.fancytree-icon:hover {
background-position: -80px 0px;
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon {
background-position: 0px -16px;
}
.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -16px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
background-position: -32px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -48px -16px;
}
.fancytree-ico-ef span.fancytree-icon {
background-position: -64px -16px;
}
.fancytree-ico-ef span.fancytree-icon:hover {
background-position: -80px -16px;
}
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url('data:image/gif;base64,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');
background-position: 0px 0px;
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
background-position: 0px -112px;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 16px;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 16px;
padding: 0 3px 0 3px;
margin: 0px 0 0 3px;
border: 1px solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img {
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img {
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 32px;
position: absolute;
background-position: 0px -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 64px;
background-position: 0px -144px;
}
#fancytree-drop-marker.fancytree-drop-copy {
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move {
background-position: -32px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
background-position: 0px -80px;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover {
background-position: -16px -80px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
border: 1px solid transparent;
border-radius: 0;
}
span.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
}
span.fancytree-selected span.fancytree-title,
span.fancytree-active span.fancytree-title {
background-color: #D4D4D4;
}
span.fancytree-selected span.fancytree-title {
font-style: italic;
}
.fancytree-treefocus span.fancytree-selected span.fancytree-title,
.fancytree-treefocus span.fancytree-active span.fancytree-title {
color: white;
background-color: #3875D7;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table tbody tr.fancytree-focused {
background-color: #99DEFD;
}
table.fancytree-ext-table tbody tr.fancytree-active {
background-color: royalblue;
}
table.fancytree-ext-table tbody tr.fancytree-selected {
background-color: #99DEFD;
}
/*******************************************************************************
* 'columnview' extension
*/
table.fancytree-ext-columnview tbody tr td {
border: 1px solid gray;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #ccc;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-active {
background-color: royalblue;
}

View File

@@ -1,95 +0,0 @@
/*!
* Fancytree "Lion" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*
Lion colors:
gray highlight bar: #D4D4D4
blue highlight-bar and -border #3875D7
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-line-height: 16px;
@fancy-icon-spacing: 3px;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
@fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
border: 1px solid transparent; // reserve some space for status borders
border-radius: 0;
}
span.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
}
span.fancytree-selected span.fancytree-title,
span.fancytree-active span.fancytree-title {
background-color: #D4D4D4; // gray
}
span.fancytree-selected span.fancytree-title {
font-style: italic;
}
.fancytree-treefocus span.fancytree-selected span.fancytree-title,
.fancytree-treefocus span.fancytree-active span.fancytree-title {
color: white;
background-color: #3875D7; // blue
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table {
border-collapse: collapse;
tbody {
tr.fancytree-focused {
background-color: #99DEFD;
}
tr.fancytree-active {
background-color: royalblue;
}
tr.fancytree-selected {
background-color: #99DEFD;
}
}
}
/*******************************************************************************
* 'columnview' extension
*/
table.fancytree-ext-columnview tbody tr td {
border: 1px solid gray;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #ccc;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-active {
background-color: royalblue;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,505 +0,0 @@
/*
* Fancytree for use with ext-themeroller extension.
*/
.ui-helper-hidden {
display: none;
}
.fancytree-container
{
white-space: nowrap;
padding: 3px;
margin: 0; /* issue 201 */
overflow: auto;
/* height: 100%; /* issue 263 */
/*
font-family: tahoma, arial, helvetica;
font-size: 10pt;
background-color: white;
border: 1px dotted gray;
*/
}
ul.fancytree-container ul
{
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li
{
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip:border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0 0;
background-repeat: repeat-y;
background-image: none; /* no v-lines */
margin:0;
padding:1px 0 0 0;
}
/* Suppress lines for last child node */
ul.fancytree-container li.fancytree-lastsib
{
background-image: none;
}
/* Suppress lines if level is fixed expanded (option minExpandLevel) */
ul.fancytree-no-connector > li
{
background-image: none;
}
/* Style, when control is disabled */
/*
.ui-fancytree-disabled ul.fancytree-container
{
opacity: 0.5;
}
*/
span.fancytree-node
{
display: inline-block;
width: 100%;
border: 1px solid transparent;
}
/*******************************************************************************
* Common icon definitions
*/
span.fancytree-empty,
span.fancytree-vline,
/*span.fancytree-connector,*/
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker
{
width: 16px;
height: 16px;
display: inline-block; /* Required to make a span sizable */
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0 0;
}
/** Used by iconclass option and iconClass callback: */
span.fancytree-custom-icon {
display: inline-block;
}
/** Used by 'icon' node option: */
.fancytree-container img
{
width: 16px;
height: 16px;
margin-left: 3px;
vertical-align: top;
border-style: none;
}
/*******************************************************************************
* Lines and connectors
*/
/* span.fancytree-connector
{
background-image: none;
}
*/
/*******************************************************************************
* Expander icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*/
span.fancytree-expander
{
background-position: 0px -80px;
cursor: pointer;
}
span.fancytree-expander:hover
{
background-position: -16px -80px;
}
.fancytree-exp-n span.fancytree-expander:hover /* Collapsed, not delayed, not last sibling */
{
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander /* Collapsed, not delayed, last sibling */
{
}
.fancytree-exp-cd span.fancytree-expander /* Collapsed, delayed, not last sibling */
{
}
.fancytree-exp-cdl span.fancytree-expander /* Collapsed, delayed, last sibling */
{
}
.fancytree-exp-e span.fancytree-expander, /* Expanded, not delayed, not last sibling */
.fancytree-exp-ed span.fancytree-expander, /* Expanded, delayed, not last sibling */
.fancytree-exp-el span.fancytree-expander, /* Expanded, not delayed, last sibling */
.fancytree-exp-edl span.fancytree-expander /* Expanded, delayed, last sibling */
{
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover, /* Expanded, not delayed, not last sibling */
.fancytree-exp-ed span.fancytree-expander:hover, /* Expanded, delayed, not last sibling */
.fancytree-exp-el span.fancytree-expander:hover, /* Expanded, not delayed, last sibling */
.fancytree-exp-edl span.fancytree-expander:hover /* Expanded, delayed, last sibling */
{
background-position: -48px -80px;
}
.fancytree-loading span.fancytree-expander /* 'Loading' status overrides all others */
{
background-position: 0 0;
background-image: url("loading.gif");
}
.fancytree-exp-n span.fancytree-expander, /* Connector instead of expander, if node has no children */
.fancytree-exp-nl span.fancytree-expander
{
background-image: none;
cursor: default;
}
/*******************************************************************************
* Checkbox icon
*/
span.fancytree-checkbox
{
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover
{
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox
{
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover
{
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox
{
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover
{
background-position: -48px -32px;
}
/*******************************************************************************
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*/
.fancytree-radio span.fancytree-checkbox
{
margin-left: 3px;
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover
{
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox
{
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover
{
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox
{
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover
{
background-position: -48px -48px;
}
/*******************************************************************************
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*/
span.fancytree-icon /* Default icon */
{
margin-left: 3px;
background-position: 0px 0px;
}
.fancytree-has-children span.fancytree-icon /* Default icon */
{
/* background-position: 0px -16px; */
}
.fancytree-ico-cf span.fancytree-icon /* Collapsed Folder */
{
background-position: 0px -16px;
}
.fancytree-ico-ef span.fancytree-icon /* Expanded Folder */
{
background-position: -64px -16px;
}
/* Status node icons */
.fancytree-statusnode-wait span.fancytree-icon
{
background-image: url("loading.gif");
}
.fancytree-statusnode-error span.fancytree-icon
{
background-position: 0px -112px;
/* background-image: url("ltError.gif");*/
}
/*******************************************************************************
* Node titles
*/
span.fancytree-title
{
display: inline-block;
}
.fancytree-title
{
display: inline-block; /* Better alignment, when title contains <br> */
padding-left: 3px;
padding-right: 3px; /* Otherwise italic font will be outside bounds */
/* color: black; /* inherit doesn't work on IE */
vertical-align: top;
margin: 0px;
margin-left: 3px;
cursor: pointer;
}
/*******************************************************************************
* 'table' extension
*/
/*
table.fancytree-ext-table {
border-collapse: collapse;
width: 100%;
}
table.fancytree-ext-table tbody tr:nth-child(even){
background-color: #f4f4f8;
}
table.fancytree-ext-table tbody tr td {
border: 1px solid lightgray;
}
*/
table.fancytree-ext-table {
border-collapse: collapse;
}
/*******************************************************************************
* 'columnview' extension
*/
/*
table.fancytree-ext-columnview {
border-collapse: collapse;
width: 100%;
}
*/
table.fancytree-ext-columnview td
{
position: relative;
}
table.fancytree-ext-columnview td >ul
{
padding: 0;
}
table.fancytree-ext-columnview td >ul li
{
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip:border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0 0;
background-repeat: repeat-y;
background-image: none; /* no v-lines */
margin: 0;
padding: 1px 0 0 0;
}
/*
table.fancytree-ext-columnview tbody tr[0] {
height: 200px;
}
*/
table.fancytree-ext-columnview tbody tr td {
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative; /* allow positioning of embedded spans*/
}
/*
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-active {
background-color: royalblue;
}
*/
table.fancytree-ext-columnview span.fancytree-cv-right {
background-position: 0px -80px;
position: absolute;
right: 3px;
}
/*******************************************************************************
* 'filter' extension
*/
.fancytree-ext-filter .fancytree-node .fancytree-title {
color: silver;
font-weight: lighter;
}
.fancytree-ext-filter .fancytree-node.fancytree-submatch .fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter .fancytree-node.fancytree-match .fancytree-title {
color: black;
font-weight: bold;
}
/*******************************************************************************
* Drag'n'drop support
*/
/*** Helper object ************************************************************/
div.fancytree-drag-helper
{
}
div.fancytree-drag-helper a
{
border: 1px solid gray;
background-color: white;
padding-left: 5px;
padding-right: 5px;
opacity: 0.8;
}
span.fancytree-drag-helper-img
{
/*
position: relative;
left: -16px;
*/
}
div.fancytree-drag-helper /*.fancytree-drop-accept*/
{
/* border-color: green;
background-color: red;*/
}
div.fancytree-drop-accept span.fancytree-drag-helper-img
{
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject
{
border-color: red;
}
div.fancytree-drop-reject span.fancytree-drag-helper-img
{
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker
{
width: 24px;
position: absolute;
background-position: 0 -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before
{
width:64px;
background-position: 0 -144px;
}
#fancytree-drop-marker.fancytree-drop-copy
{
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move
{
background-position: -64px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source
{
/* border: 1px dotted gray; */
background-color: #e0e0e0;
}
span.fancytree-drag-source a
{
color: gray;
}
/*** Target node while dragging cursor is over it *****************************/
span.fancytree-drop-target
{
/*border: 1px solid gray;*/
}
span.fancytree-drop-target a
{
}
span.fancytree-drop-target.fancytree-drop-accept a
{
/*border: 1px solid green;*/
background-color: #3169C6 !important;
color: white !important; /* @ IE6 */
text-decoration: none;
}
span.fancytree-drop-target.fancytree-drop-reject
{
/*border: 1px solid red;*/
}
span.fancytree-drop-target.fancytree-drop-after a
{
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,572 +0,0 @@
/*!
* Fancytree "Vista" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*
both:
unselected background: #FCFCFC 'nearly white'
hover bar (unselected, inactive): #F8FCFE..#EFF9FE (border: #D8F0FA) 'very light blue'
active node: #F6FBFD..#D5EFFC (border: #99DEFD) 'light blue'
active node with hover: #F2F9FD..#C4E8FA (border: #B6E6FB)
Tree view:
active node, tree inactive: #FAFAFB..#E5E5E5 (border: #D9D9D9) 'light gray, selected, but tree not active'
List view:
selected bar: --> active bar
focus bar: active + border 1px dotted #090402 (inside the blue border)
table left/right border: #EDEDED 'light gray'
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0px 0px;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 0px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 3px;
background-position: 0px 0px;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 16px;
height: 16px;
margin-left: 3px;
margin-top: 0px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-n span.fancytree-expander:hover {
background-position: 0px -64px;
}
.fancytree-exp-nl span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander:hover {
background-position: -16px -64px;
}
.fancytree-exp-c span.fancytree-expander {
background-position: 0px -80px;
}
.fancytree-exp-c span.fancytree-expander:hover {
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander {
background-position: 0px -96px;
}
.fancytree-exp-cl span.fancytree-expander:hover {
background-position: -16px -96px;
}
.fancytree-exp-cd span.fancytree-expander {
background-position: -64px -80px;
}
.fancytree-exp-cd span.fancytree-expander:hover {
background-position: -80px -80px;
}
.fancytree-exp-cdl span.fancytree-expander {
background-position: -64px -96px;
}
.fancytree-exp-cdl span.fancytree-expander:hover {
background-position: -80px -96px;
}
.fancytree-exp-e span.fancytree-expander,
.fancytree-exp-ed span.fancytree-expander {
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
background-position: -48px -80px;
}
.fancytree-exp-el span.fancytree-expander,
.fancytree-exp-edl span.fancytree-expander {
background-position: -32px -96px;
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
background-position: -48px -96px;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover {
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox {
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox {
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -32px;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
.fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -32px;
}
.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -64px -32px;
}
.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover {
background-position: -32px -32px;
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio span.fancytree-checkbox {
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover {
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox {
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox {
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -48px;
}
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox,
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -48px;
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 3px;
background-position: 0px 0px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:hover {
background-position: -16px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
background-position: -32px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
background-position: -48px 0px;
}
.fancytree-ico-e span.fancytree-icon {
background-position: -64px 0px;
}
.fancytree-ico-e span.fancytree-icon:hover {
background-position: -80px 0px;
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon {
background-position: 0px -16px;
}
.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -16px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
background-position: -32px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -48px -16px;
}
.fancytree-ico-ef span.fancytree-icon {
background-position: -64px -16px;
}
.fancytree-ico-ef span.fancytree-icon:hover {
background-position: -80px -16px;
}
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url('data:image/gif;base64,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');
background-position: 0px 0px;
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
background-position: 0px -112px;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 16px;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 16px;
padding: 0 3px 0 3px;
margin: 0px 0 0 3px;
border: 1px solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img {
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img {
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 32px;
position: absolute;
background-position: 0px -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 64px;
background-position: 0px -144px;
}
#fancytree-drop-marker.fancytree-drop-copy {
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move {
background-position: -32px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
background-position: 0px -80px;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover {
background-position: -16px -80px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
border: 1px solid transparent;
}
span.fancytree-title:hover {
background-color: #F2F7FD;
border-color: #B8D6FB;
}
span.fancytree-focused span.fancytree-title {
background-color: #EFEBDE;
outline: 1px dotted gray;
}
span.fancytree-selected span.fancytree-title {
font-style: italic;
}
span.fancytree-active span.fancytree-title {
border: 1px solid #99DEFD;
background-color: #D8F0FA;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table tbody tr.fancytree-focused {
background-color: #99DEFD;
}
table.fancytree-ext-table tbody tr.fancytree-active {
background-color: royalblue;
}
table.fancytree-ext-table tbody tr.fancytree-selected {
background-color: #99FDDE;
}
/*******************************************************************************
* 'columnview' extension
*/
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #ccc;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-active {
background-color: royalblue;
}

View File

@@ -1,112 +0,0 @@
/*!
* Fancytree "Vista" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*
both:
unselected background: #FCFCFC 'nearly white'
hover bar (unselected, inactive): #F8FCFE..#EFF9FE (border: #D8F0FA) 'very light blue'
active node: #F6FBFD..#D5EFFC (border: #99DEFD) 'light blue'
active node with hover: #F2F9FD..#C4E8FA (border: #B6E6FB)
Tree view:
active node, tree inactive: #FAFAFB..#E5E5E5 (border: #D9D9D9) 'light gray, selected, but tree not active'
List view:
selected bar: --> active bar
focus bar: active + border 1px dotted #090402 (inside the blue border)
table left/right border: #EDEDED 'light gray'
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-line-height: 16px;
@fancy-icon-spacing: 3px;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
@fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
}
span.fancytree-title:hover {
background-color: #F2F7FD; // light blue
border-color: #B8D6FB; // darker light blue
}
.fancytree-folder span.fancytree-title {
// font-weight: bold;
}
span.fancytree-focused span.fancytree-title {
background-color: #EFEBDE; // gray
outline: 1px dotted gray;
}
span.fancytree-has-children span.fancytree-title {
// font-style: oblique;
}
span.fancytree-expanded span.fancytree-title {
}
span.fancytree-selected span.fancytree-title {
font-style: italic;
}
span.fancytree-active span.fancytree-title {
border: 1px solid #99DEFD;
background-color: #D8F0FA;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table {
border-collapse: collapse;
tbody tr.fancytree-focused {
background-color: #99DEFD;
}
tbody tr.fancytree-active {
background-color: royalblue;
}
tbody tr.fancytree-selected {
background-color: #99FDDE;
}
}
/*******************************************************************************
* 'columnview' extension
*/
table.fancytree-ext-columnview {
span.fancytree-node.fancytree-expanded {
background-color: #ccc;
}
span.fancytree-node.fancytree-active {
background-color: royalblue;
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,631 +0,0 @@
/*!
* Fancytree "Win7" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0px 0px;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 2px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 3px;
background-position: 0px 0px;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 16px;
height: 16px;
margin-left: 3px;
margin-top: 2px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-n span.fancytree-expander:hover {
background-position: 0px -64px;
}
.fancytree-exp-nl span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander:hover {
background-position: -16px -64px;
}
.fancytree-exp-c span.fancytree-expander {
background-position: 0px -80px;
}
.fancytree-exp-c span.fancytree-expander:hover {
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander {
background-position: 0px -96px;
}
.fancytree-exp-cl span.fancytree-expander:hover {
background-position: -16px -96px;
}
.fancytree-exp-cd span.fancytree-expander {
background-position: -64px -80px;
}
.fancytree-exp-cd span.fancytree-expander:hover {
background-position: -80px -80px;
}
.fancytree-exp-cdl span.fancytree-expander {
background-position: -64px -96px;
}
.fancytree-exp-cdl span.fancytree-expander:hover {
background-position: -80px -96px;
}
.fancytree-exp-e span.fancytree-expander,
.fancytree-exp-ed span.fancytree-expander {
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
background-position: -48px -80px;
}
.fancytree-exp-el span.fancytree-expander,
.fancytree-exp-edl span.fancytree-expander {
background-position: -32px -96px;
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
background-position: -48px -96px;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover {
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox {
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox {
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -32px;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
.fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -32px;
}
.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -64px -32px;
}
.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover {
background-position: -32px -32px;
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio span.fancytree-checkbox {
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover {
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox {
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox {
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -48px;
}
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox,
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -48px;
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 3px;
background-position: 0px 0px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:hover {
background-position: -16px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
background-position: -32px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
background-position: -48px 0px;
}
.fancytree-ico-e span.fancytree-icon {
background-position: -64px 0px;
}
.fancytree-ico-e span.fancytree-icon:hover {
background-position: -80px 0px;
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon {
background-position: 0px -16px;
}
.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -16px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
background-position: -32px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -48px -16px;
}
.fancytree-ico-ef span.fancytree-icon {
background-position: -64px -16px;
}
.fancytree-ico-ef span.fancytree-icon:hover {
background-position: -80px -16px;
}
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url('data:image/gif;base64,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');
background-position: 0px 0px;
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
background-position: 0px -112px;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 20px;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 20px;
padding: 0 3px 0 3px;
margin: 0px 0 0 3px;
border: 1px solid transparent;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img {
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img {
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 32px;
position: absolute;
background-position: 0px -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 64px;
background-position: 0px -144px;
}
#fancytree-drop-marker.fancytree-drop-copy {
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move {
background-position: -32px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
background-position: 0px -80px;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover {
background-position: -16px -80px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Node titles
*/
span.fancytree-active .fancytree-title,
span.fancytree-selected .fancytree-title {
border-color: #d9d9d9;
background: #e5e5e5;
color: inherit;
background: -moz-linear-gradient(top, #fafafb 0%, #e5e5e5 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafb), color-stop(100%, #e5e5e5));
background: -webkit-linear-gradient(top, #fafafb 0%, #e5e5e5 100%);
background: -o-linear-gradient(top, #fafafb 0%, #e5e5e5 100%);
background: -ms-linear-gradient(top, #fafafb 0%, #e5e5e5 100%);
background: linear-gradient(to bottom, #fafafb 0%, #e5e5e5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fafafb', endColorstr='#e5e5e5', GradientType=0);
}
span.fancytree-selected .fancytree-title {
font-style: italic;
}
.fancytree-treefocus span.fancytree-active .fancytree-title,
.fancytree-treefocus span.fancytree-selected .fancytree-title {
border-color: #99defd;
background: #f6fbfd;
color: inherit;
background: -moz-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6fbfd), color-stop(100%, #d5effc));
background: -webkit-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: -o-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: -ms-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: linear-gradient(to bottom, #f6fbfd 0%, #d5effc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6fbfd', endColorstr='#d5effc', GradientType=0);
}
.fancytree-treefocus span.fancytree-focused span.fancytree-title {
border: 1px solid #719acb;
}
span.fancytree-title:hover {
border-color: #d8f0fa;
background: #f8fcfe;
color: inherit;
background: -moz-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8fcfe), color-stop(100%, #eff9fe));
background: -webkit-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: -o-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: -ms-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: linear-gradient(to bottom, #f8fcfe 0%, #eff9fe 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8fcfe', endColorstr='#eff9fe', GradientType=0);
}
span.fancytree-active .fancytree-title:hover,
span.fancytree-selected .fancytree-title:hover {
border-color: #719acb;
background: #f2f9fd;
color: inherit;
background: -moz-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f2f9fd), color-stop(100%, #c4e8fa));
background: -webkit-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: -o-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: -ms-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: linear-gradient(to bottom, #f2f9fd 0%, #c4e8fa 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f9fd', endColorstr='#c4e8fa', GradientType=0);
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody tr td {
border: 1px solid #ededed;
}
table.fancytree-ext-table tbody tr:hover {
border-color: inherit;
background: #f8fcfe;
color: inherit;
background: -moz-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8fcfe), color-stop(100%, #eff9fe));
background: -webkit-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: -o-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: -ms-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
background: linear-gradient(to bottom, #f8fcfe 0%, #eff9fe 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8fcfe', endColorstr='#eff9fe', GradientType=0);
outline: 1px solid #d8f0fa;
}
table.fancytree-ext-table tbody tr.fancytree-focused {
outline: 1px dotted #090402;
}
table.fancytree-ext-table tbody span.fancytree-focused span.fancytree-title {
outline: solid dotted black;
}
table.fancytree-ext-table tbody span.fancytree-title:hover {
border: 1px solid transparent;
background: inherit;
background: transparent;
background: none;
filter: none;
}
table.fancytree-ext-table tbody tr.fancytree-active:hover,
table.fancytree-ext-table tbody tr.fancytree-selected:hover {
border-color: inherit;
background: #f2f9fd;
color: inherit;
background: -moz-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f2f9fd), color-stop(100%, #c4e8fa));
background: -webkit-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: -o-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: -ms-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
background: linear-gradient(to bottom, #f2f9fd 0%, #c4e8fa 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f9fd', endColorstr='#c4e8fa', GradientType=0);
outline: 1px solid #B6E6FB;
}
table.fancytree-ext-table tbody tr.fancytree-active,
table.fancytree-ext-table tbody tr.fancytree-selected {
border-color: inherit;
background: #f6fbfd;
color: inherit;
background: -moz-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6fbfd), color-stop(100%, #d5effc));
background: -webkit-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: -o-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: -ms-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
background: linear-gradient(to bottom, #f6fbfd 0%, #d5effc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6fbfd', endColorstr='#d5effc', GradientType=0);
outline: 1px solid #99DEFD;
}

View File

@@ -1,152 +0,0 @@
/*!
* Fancytree "Win7" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Fancytree Win7 styles
// both:
// unselected background: #FCFCFC 'nearly white', no border
//
// hover bar (unselected, inactive): #fcfdfe..#EFF9FE (border: #b8d6fb) 'very light blue'
// background: #f8fcfe; //
// background: -moz-linear-gradient(top, #f8fcfe 0%, #eff9fe 100%);
// active node: #F6FBFD..#D5EFFC (border: #719acb) 'light blue'
// background: #f6fbfd;
// background: -moz-linear-gradient(top, #f6fbfd 0%, #d5effc 100%);
// active node with hover: #F2F9FD..#C4E8FA (border: #B6E6FB)
// background: #f2f9fd;
// background: -moz-linear-gradient(top, #f2f9fd 0%, #c4e8fa 100%);
// Tree view:
// active node, tree inactive: #FAFAFB..#E5E5E5 (border: #D9D9D9) 'light gray, selected, but tree not active'
// background: #fafafb;
// background: -moz-linear-gradient(top, #fafafb 0%, #e5e5e5 100%);
// List view:
// selected bar: --> active bar
// focus bar: active + border 1px dotted #090402 (inside the blue border)
// table left/right border: #EDEDED 'light gray'
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-line-height: 20px; // height of a nodes selection bar including borders
@fancy-node-v-spacing: 1px; // gap between two node borders
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-icon-spacing: 3px; // margin between icon/icon or icon/title
@fancy-icon-ofs-top: 2px; // extra vertical offset for expander, checkbox and icon
@fancy-title-ofs-top: 0px; // extra vertical offset for title
@fancy-node-border-width: 1px;
@fancy-node-border-radius: 3px;
@fancy-node-outline-width: 1px;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
@fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
ul.fancytree-container {
}
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
}
// active nodes inside an UN-focused tree are gray instead of blue
span.fancytree-active .fancytree-title,
span.fancytree-selected .fancytree-title {
.spanStyleMixin(inherit, #e5e5e5, #d9d9d9, #fafafb, #e5e5e5);
}
span.fancytree-selected .fancytree-title {
font-style: italic;
}
// Markers inside an active tree
.fancytree-treefocus {
span.fancytree-active .fancytree-title,
span.fancytree-selected .fancytree-title {
.spanStyleMixin(inherit, #f6fbfd, #99defd, #f6fbfd, #d5effc);
}
span.fancytree-focused span.fancytree-title {
border: @fancy-node-border-width solid #719acb;
}
}
// Hover is always colored (even if tree is inactive)
span.fancytree-title:hover {
.spanStyleMixin(inherit, #f8fcfe, #d8f0fa, #f8fcfe, #eff9fe);
}
span.fancytree-active .fancytree-title:hover,
span.fancytree-selected .fancytree-title:hover {
.spanStyleMixin(inherit, #f2f9fd, #719acb, #f2f9fd, #c4e8fa);
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody {
tr td {
border: 1px solid #ededed;
}
tr:hover {
.spanStyleMixin(inherit, #f8fcfe, inherit, #f8fcfe, #eff9fe);
outline: 1px solid #d8f0fa;
}
// tr:hover td {
// outline: 1px solid #D8F0FA;
// }
tr.fancytree-focused {
// background-color: #99DEFD;
outline: 1px dotted #090402;
}
span.fancytree-focused span.fancytree-title {
outline: solid dotted black;
}
// Title get's a white background, when hovered. Undo standard node formatting
span.fancytree-title:hover {
border: 1px solid transparent;
background: inherit;
background: transparent;
background: none;
filter: none;
}
tr.fancytree-active:hover,
tr.fancytree-selected:hover {
.spanStyleMixin(inherit, #f2f9fd, inherit, #f2f9fd, #c4e8fa);
outline: 1px solid #B6E6FB;
}
tr.fancytree-active,
tr.fancytree-selected {
.spanStyleMixin(inherit, #f6fbfd, inherit, #f6fbfd, #d5effc);
outline: 1px solid #99DEFD;
}
// tr.fancytree-selected .fancytree-title {
// font-style: italic;
// }
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,576 +0,0 @@
/*!
* Fancytree "win8" skin (highlighting the node span instead of title-only).
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0px 0px;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 0px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 3px;
background-position: 0px 0px;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 16px;
height: 16px;
margin-left: 3px;
margin-top: 0px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-n span.fancytree-expander:hover {
background-position: 0px -64px;
}
.fancytree-exp-nl span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander:hover {
background-position: -16px -64px;
}
.fancytree-exp-c span.fancytree-expander {
background-position: 0px -80px;
}
.fancytree-exp-c span.fancytree-expander:hover {
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander {
background-position: 0px -96px;
}
.fancytree-exp-cl span.fancytree-expander:hover {
background-position: -16px -96px;
}
.fancytree-exp-cd span.fancytree-expander {
background-position: -64px -80px;
}
.fancytree-exp-cd span.fancytree-expander:hover {
background-position: -80px -80px;
}
.fancytree-exp-cdl span.fancytree-expander {
background-position: -64px -96px;
}
.fancytree-exp-cdl span.fancytree-expander:hover {
background-position: -80px -96px;
}
.fancytree-exp-e span.fancytree-expander,
.fancytree-exp-ed span.fancytree-expander {
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
background-position: -48px -80px;
}
.fancytree-exp-el span.fancytree-expander,
.fancytree-exp-edl span.fancytree-expander {
background-position: -32px -96px;
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
background-position: -48px -96px;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover {
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox {
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox {
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -32px;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
.fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -32px;
}
.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -64px -32px;
}
.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover {
background-position: -32px -32px;
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio span.fancytree-checkbox {
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover {
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox {
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox {
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -48px;
}
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox,
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -48px;
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 3px;
background-position: 0px 0px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:hover {
background-position: -16px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
background-position: -32px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
background-position: -48px 0px;
}
.fancytree-ico-e span.fancytree-icon {
background-position: -64px 0px;
}
.fancytree-ico-e span.fancytree-icon:hover {
background-position: -80px 0px;
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon {
background-position: 0px -16px;
}
.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -16px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
background-position: -32px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -48px -16px;
}
.fancytree-ico-ef span.fancytree-icon {
background-position: -64px -16px;
}
.fancytree-ico-ef span.fancytree-icon:hover {
background-position: -80px -16px;
}
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url('data:image/gif;base64,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');
background-position: 0px 0px;
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
background-position: 0px -112px;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 16px;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 16px;
padding: 0 3px 0 3px;
margin: 0px 0 0 3px;
border: 1px solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img {
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img {
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 32px;
position: absolute;
background-position: 0px -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 64px;
background-position: 0px -144px;
}
#fancytree-drop-marker.fancytree-drop-copy {
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move {
background-position: -32px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
background-position: 0px -80px;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover {
background-position: -16px -80px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Node titles
*/
.fancytree-plain span.fancytree-node {
border: 1px solid transparent;
}
.fancytree-plain span.fancytree-node:hover {
background-color: #E5F3FB;
border-color: #70C0E7;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-focused {
border-color: #3399FF;
}
.fancytree-plain span.fancytree-node.fancytree-active,
.fancytree-plain span.fancytree-node.fancytree-selected {
background-color: #F7F7F7;
border-color: #DEDEDE;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-active,
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-selected,
.fancytree-plain span.fancytree-node.fancytree-active:hover,
.fancytree-plain span.fancytree-node.fancytree-selected:hover {
background-color: #CBE8F6;
border-color: #26A0DA;
}
.fancytree-plain .fancytree-node.fancytree-selected {
font-style: italic;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody tr td {
border: 1px solid #EDEDED;
}
table.fancytree-ext-table tbody span.fancytree-node,
table.fancytree-ext-table tbody span.fancytree-node:hover {
border: none;
background: none;
}
table.fancytree-ext-table tbody tr:hover {
background-color: #E5F3FB;
outline: 1px solid #70C0E7;
}
table.fancytree-ext-table tbody tr.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
}
table.fancytree-ext-table tbody tr.fancytree-active:hover,
table.fancytree-ext-table tbody tr.fancytree-selected:hover {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
table.fancytree-ext-table tbody tr.fancytree-active {
background-color: #F7F7F7;
outline: 1px solid #DEDEDE;
}
table.fancytree-ext-table tbody tr.fancytree-selected {
background-color: #F7F7F7;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-active {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-selected {
background-color: #CBE8F6;
}

View File

@@ -1,143 +0,0 @@
/*!
* Fancytree "win8" skin (highlighting the node span instead of title-only).
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Borders have NO radius and NO gradients are used!
// both:
// unselected background: white
// hover bar (unselected, inactive): #E5F3FB (border: #70C0E7) 'very light blue'
// active node: #CBE8F6 (border: #26A0DA) 'light blue'
// active node with hover: wie active node
// Tree view:
// active node, tree inactive: #F7F7F7 (border: #DEDEDE) 'light gray, selected, but tree not active'
// List view:
// selected bar: --> active bar
// focus bar: transparent(white) + border 1px solid #3399FF ()
// table left/right border: #EDEDED 'light gray'
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
// Set to `true` to inline icon sprite into CSS:
// @fancy-inline-sprites: true;
@fancy-hide-connectors: true;
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-line-height: 16px;
@fancy-icon-spacing: 3px;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
@fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
/*******************************************************************************
* Node titles
*/
.fancytree-plain {
span.fancytree-node {
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
}
span.fancytree-node:hover {
background-color: #E5F3FB;
border-color: #70C0E7;
}
&.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-focused {
border-color: #3399FF;
// outline: 1px solid #3399FF;
}
span.fancytree-node.fancytree-active,
span.fancytree-node.fancytree-selected { // active/selcted nodes inside inactive tree
background-color: #F7F7F7;
border-color: #DEDEDE;
}
&.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-active,
&.fancytree-container.fancytree-treefocus span.fancytree-node.fancytree-selected,
span.fancytree-node.fancytree-active:hover,
span.fancytree-node.fancytree-selected:hover {
background-color: #CBE8F6;
border-color: #26A0DA;
}
.fancytree-node.fancytree-selected {
font-style: italic;
}
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody {
tr td {
border: 1px solid #EDEDED;
}
span.fancytree-node,
span.fancytree-node:hover { // undo standard tree css
border: none;
background: none;
}
// Title get's a white background, when hovered. Undo standard node formatting
// span.fancytree-title:hover {
// border: none; //1px solid transparent;
// background: inherit;
// background: transparent;
// background: none;
// filter: none;
// }
tr:hover {
background-color: #E5F3FB;
outline: 1px solid #70C0E7;
}
// tr:hover td {
// outline: 1px solid #D8F0FA;
// }
// tr.fancytree-focused {
// border-color: #3399FF;
// outline: 1px dotted black;
// }
tr.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
}
tr.fancytree-active:hover,
tr.fancytree-selected:hover {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
tr.fancytree-active { // dimmed, if inside inactive tree
background-color: #F7F7F7;
outline: 1px solid #DEDEDE;
}
tr.fancytree-selected { // dimmed, if inside inactive tree
background-color: #F7F7F7;
}
}
table.fancytree-ext-table.fancytree-treefocus tbody {
tr.fancytree-active {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
tr.fancytree-selected {
background-color: #CBE8F6;
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

File diff suppressed because one or more lines are too long

View File

@@ -1,37 +0,0 @@
/*!
* Fancytree "Win8" 32x32 skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
// Import standard win8
@import "../skin-win8/ui.fancytree.less";
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-level-indent: 32px;
@fancy-line-height: 32px; // height of a nodes selection bar including borders
@fancy-node-v-spacing: 1px; // gap between two node borders
@fancy-icon-width: 32px;
@fancy-icon-height: 32px;
@fancy-icon-spacing: 6px; // margin between icon/icon or icon/title
@fancy-icon-ofs-top: 0px; // extra vertical offset for expander, checkbox and icon
@fancy-title-ofs-top: 0px; // extra vertical offset for title
@fancy-node-border-width: 1px;
@fancy-node-border-radius: 0px;
@fancy-node-outline-width: 1px;
ul.fancytree-container {
// font-family: tahoma, arial, helvetica;
font-size: 20pt;
padding: 6px;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,574 +0,0 @@
/*!
* Fancytree "Win8" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0px 0px;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 2px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 3px;
background-position: 0px 0px;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 16px;
height: 16px;
margin-left: 3px;
margin-top: 2px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
background-image: none;
cursor: default;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-n span.fancytree-expander:hover {
background-position: 0px -64px;
}
.fancytree-exp-nl span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander:hover {
background-position: -16px -64px;
}
.fancytree-exp-c span.fancytree-expander {
background-position: 0px -80px;
}
.fancytree-exp-c span.fancytree-expander:hover {
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander {
background-position: 0px -96px;
}
.fancytree-exp-cl span.fancytree-expander:hover {
background-position: -16px -96px;
}
.fancytree-exp-cd span.fancytree-expander {
background-position: -64px -80px;
}
.fancytree-exp-cd span.fancytree-expander:hover {
background-position: -80px -80px;
}
.fancytree-exp-cdl span.fancytree-expander {
background-position: -64px -96px;
}
.fancytree-exp-cdl span.fancytree-expander:hover {
background-position: -80px -96px;
}
.fancytree-exp-e span.fancytree-expander,
.fancytree-exp-ed span.fancytree-expander {
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
background-position: -48px -80px;
}
.fancytree-exp-el span.fancytree-expander,
.fancytree-exp-edl span.fancytree-expander {
background-position: -32px -96px;
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
background-position: -48px -96px;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover {
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox {
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox {
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -32px;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
.fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -32px;
}
.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -64px -32px;
}
.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover {
background-position: -32px -32px;
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio span.fancytree-checkbox {
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover {
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox {
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox {
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -48px;
}
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox,
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -48px;
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 3px;
background-position: 0px 0px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:hover {
background-position: -16px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
background-position: -32px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
background-position: -48px 0px;
}
.fancytree-ico-e span.fancytree-icon {
background-position: -64px 0px;
}
.fancytree-ico-e span.fancytree-icon:hover {
background-position: -80px 0px;
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon {
background-position: 0px -16px;
}
.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -16px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
background-position: -32px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -48px -16px;
}
.fancytree-ico-ef span.fancytree-icon {
background-position: -64px -16px;
}
.fancytree-ico-ef span.fancytree-icon:hover {
background-position: -80px -16px;
}
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url('data:image/gif;base64,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');
background-position: 0px 0px;
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
background-position: 0px -112px;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 0px;
min-height: 20px;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 20px;
padding: 0 3px 0 3px;
margin: 0px 0 0 3px;
border: 1px solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img {
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img {
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 32px;
position: absolute;
background-position: 0px -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 64px;
background-position: 0px -144px;
}
#fancytree-drop-marker.fancytree-drop-copy {
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move {
background-position: -32px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
background-position: 0px -80px;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover {
background-position: -16px -80px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Node titles
*/
.fancytree-plain span.fancytree-title {
border: 1px solid transparent;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-focused span.fancytree-title {
border-color: #3399ff;
}
.fancytree-plain span.fancytree-active span.fancytree-title,
.fancytree-plain span.fancytree-selected span.fancytree-title {
background-color: #f7f7f7;
border-color: #dedede;
}
.fancytree-plain span.fancytree-node span.fancytree-selected span.fancytree-title {
font-style: italic;
}
.fancytree-plain span.fancytree-node:hover span.fancytree-title {
background-color: #eff9fe;
border-color: #70c0e7;
}
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-active span.fancytree-title,
.fancytree-plain.fancytree-container.fancytree-treefocus span.fancytree-selected span.fancytree-title {
background-color: #cbe8f6;
border-color: #26a0da;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody tr td {
border: 1px solid #EDEDED;
}
table.fancytree-ext-table tbody span.fancytree-node,
table.fancytree-ext-table tbody span.fancytree-node:hover {
border: none;
background: none;
}
table.fancytree-ext-table tbody tr:hover {
background-color: #E5F3FB;
outline: 1px solid #70C0E7;
}
table.fancytree-ext-table tbody tr.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
}
table.fancytree-ext-table tbody tr.fancytree-active:hover,
table.fancytree-ext-table tbody tr.fancytree-selected:hover {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
table.fancytree-ext-table tbody tr.fancytree-active {
background-color: #F7F7F7;
outline: 1px solid #DEDEDE;
}
table.fancytree-ext-table tbody tr.fancytree-selected {
background-color: #F7F7F7;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-active {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
table.fancytree-ext-table.fancytree-treefocus tbody tr.fancytree-selected {
background-color: #CBE8F6;
}

View File

@@ -1,153 +0,0 @@
/*!
* Fancytree "Win8" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Borders have NO radius and NO gradients are used!
// both:
// unselected background: white
// hover bar (unselected, inactive): #E5F3FB (border: #70C0E7) 'very light blue'
// active node: #CBE8F6 (border: #26A0DA) 'light blue'
// active node with hover: wie active node
// Tree view:
// active node, tree inactive: #F7F7F7 (border: #DEDEDE) 'light gray, selected, but tree not active'
// List view:
// selected bar: --> active bar
// focus bar: transparent(white) + border 1px solid #3399FF ()
// table left/right border: #EDEDED 'light gray'
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: true;
@fancy-line-height: 20px; // height of a nodes selection bar including borders
@fancy-node-v-spacing: 0px; // gap between two node borders
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-icon-spacing: 3px; // margin between icon/icon or icon/title
@fancy-icon-ofs-top: 2px; // extra vertical offset for expander, checkbox and icon
@fancy-title-ofs-top: 0px; // extra vertical offset for title
@fancy-node-border-width: 1px;
@fancy-node-border-radius: 0px;
@fancy-node-outline-width: 1px;
// @fancy-icon-width: 16px;
// @fancy-icon-height: 16px;
// @fancy-line-height: 16px;
// @fancy-icon-spacing: 3px;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
@fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
/*******************************************************************************
* Node titles
*/
.fancytree-plain {
span.fancytree-title {
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
}
&.fancytree-container.fancytree-treefocus span.fancytree-focused span.fancytree-title {
border-color: #3399ff;
}
span.fancytree-active span.fancytree-title,
span.fancytree-selected span.fancytree-title { // active/selcted nodes inside inactive tree
background-color: #f7f7f7;
border-color: #dedede;
}
span.fancytree-node span.fancytree-selected span.fancytree-title {
font-style: italic;
}
span.fancytree-node:hover span.fancytree-title {
background-color: #eff9fe; // hover is always colored, even if tree is unfocused
border-color: #70c0e7;
}
&.fancytree-container.fancytree-treefocus {
span.fancytree-active span.fancytree-title,
span.fancytree-selected span.fancytree-title {
background-color: #cbe8f6;
border-color: #26a0da;
}
}
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table tbody {
tr td {
border: 1px solid #EDEDED;
}
span.fancytree-node,
span.fancytree-node:hover { // undo standard tree css
border: none;
background: none;
}
// Title get's a white background, when hovered. Undo standard node formatting
// span.fancytree-title:hover {
// border: none; //1px solid transparent;
// background: inherit;
// background: transparent;
// background: none;
// filter: none;
// }
tr:hover {
background-color: #E5F3FB;
outline: 1px solid #70C0E7;
}
// tr:hover td {
// outline: 1px solid #D8F0FA;
// }
// tr.fancytree-focused {
// border-color: #3399FF;
// outline: 1px dotted black;
// }
tr.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
}
tr.fancytree-active:hover,
tr.fancytree-selected:hover {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
tr.fancytree-active { // dimmed, if inside inactive tree
background-color: #F7F7F7;
outline: 1px solid #DEDEDE;
}
tr.fancytree-selected { // dimmed, if inside inactive tree
background-color: #F7F7F7;
}
}
table.fancytree-ext-table.fancytree-treefocus tbody {
tr.fancytree-active {
background-color: #CBE8F6;
outline: 1px solid #26A0DA;
}
tr.fancytree-selected {
background-color: #CBE8F6;
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

View File

@@ -1,563 +0,0 @@
/*!
* Fancytree "XP" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
/*******************************************************************************
* Common Styles for Fancytree Skins.
*
* This section is automatically generated from the `skin-common.less` template.
******************************************************************************/
/*------------------------------------------------------------------------------
* Helpers
*----------------------------------------------------------------------------*/
.ui-helper-hidden {
display: none;
}
/*------------------------------------------------------------------------------
* Container and UL / LI
*----------------------------------------------------------------------------*/
ul.fancytree-container {
font-family: tahoma, arial, helvetica;
font-size: 10pt;
white-space: nowrap;
padding: 3px;
margin: 0;
background-color: white;
border: 1px dotted gray;
overflow: auto;
min-height: 0%;
position: relative;
}
ul.fancytree-container ul {
padding: 0 0 0 16px;
margin: 0;
}
ul.fancytree-container li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
margin: 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
.ui-fancytree-disabled ul.fancytree-container {
opacity: 0.5;
background-color: silver;
}
/*------------------------------------------------------------------------------
* Common icon definitions
*----------------------------------------------------------------------------*/
span.fancytree-empty,
span.fancytree-vline,
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-radio,
span.fancytree-drag-helper-img,
#fancytree-drop-marker {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
background-repeat: no-repeat;
background-position: left;
background-image: url("icons.gif");
background-position: 0px 0px;
}
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-expander,
span.fancytree-radio,
span.fancytree-custom-icon {
margin-top: 0px;
}
/* Used by icon option: */
span.fancytree-custom-icon {
display: inline-block;
margin-left: 3px;
background-position: 0px 0px;
}
/* Used by 'icon' node option: */
img.fancytree-icon {
width: 16px;
height: 16px;
margin-left: 3px;
margin-top: 0px;
vertical-align: top;
border-style: none;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
cursor: default;
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-n span.fancytree-expander:hover {
background-position: 0px -64px;
}
.fancytree-exp-nl span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander:hover {
background-position: -16px -64px;
}
.fancytree-exp-c span.fancytree-expander {
background-position: 0px -80px;
}
.fancytree-exp-c span.fancytree-expander:hover {
background-position: -16px -80px;
}
.fancytree-exp-cl span.fancytree-expander {
background-position: 0px -96px;
}
.fancytree-exp-cl span.fancytree-expander:hover {
background-position: -16px -96px;
}
.fancytree-exp-cd span.fancytree-expander {
background-position: -64px -80px;
}
.fancytree-exp-cd span.fancytree-expander:hover {
background-position: -80px -80px;
}
.fancytree-exp-cdl span.fancytree-expander {
background-position: -64px -96px;
}
.fancytree-exp-cdl span.fancytree-expander:hover {
background-position: -80px -96px;
}
.fancytree-exp-e span.fancytree-expander,
.fancytree-exp-ed span.fancytree-expander {
background-position: -32px -80px;
}
.fancytree-exp-e span.fancytree-expander:hover,
.fancytree-exp-ed span.fancytree-expander:hover {
background-position: -48px -80px;
}
.fancytree-exp-el span.fancytree-expander,
.fancytree-exp-edl span.fancytree-expander {
background-position: -32px -96px;
}
.fancytree-exp-el span.fancytree-expander:hover,
.fancytree-exp-edl span.fancytree-expander:hover {
background-position: -48px -96px;
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-left: 3px;
background-position: 0px -32px;
}
span.fancytree-checkbox:hover {
background-position: -16px -32px;
}
.fancytree-partsel span.fancytree-checkbox {
background-position: -64px -32px;
}
.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -32px;
}
.fancytree-selected span.fancytree-checkbox {
background-position: -32px -32px;
}
.fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -32px;
}
.fancytree-unselectable span.fancytree-checkbox {
opacity: 0.4;
filter: alpha(opacity=40);
}
.fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -32px;
}
.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover {
background-position: -64px -32px;
}
.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover {
background-position: -32px -32px;
}
/*------------------------------------------------------------------------------
* Radiobutton icon
* This is a customization, that may be activated by overriding the 'checkbox'
* class name as 'fancytree-radio' in the tree options.
*----------------------------------------------------------------------------*/
.fancytree-radio span.fancytree-checkbox {
background-position: 0px -48px;
}
.fancytree-radio span.fancytree-checkbox:hover {
background-position: -16px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox {
background-position: -64px -48px;
}
.fancytree-radio .fancytree-partsel span.fancytree-checkbox:hover {
background-position: -80px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox {
background-position: -32px -48px;
}
.fancytree-radio .fancytree-selected span.fancytree-checkbox:hover {
background-position: -48px -48px;
}
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox,
.fancytree-radio .fancytree-unselectable span.fancytree-checkbox:hover {
background-position: 0px -48px;
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon {
margin-left: 3px;
background-position: 0px 0px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:hover {
background-position: -16px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
background-position: -32px 0px;
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
background-position: -48px 0px;
}
.fancytree-ico-e span.fancytree-icon {
background-position: -64px 0px;
}
.fancytree-ico-e span.fancytree-icon:hover {
background-position: -80px 0px;
}
/* Folders */
.fancytree-ico-cf span.fancytree-icon {
background-position: 0px -16px;
}
.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -16px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
background-position: -32px -16px;
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
background-position: -48px -16px;
}
.fancytree-ico-ef span.fancytree-icon {
background-position: -64px -16px;
}
.fancytree-ico-ef span.fancytree-icon:hover {
background-position: -80px -16px;
}
.fancytree-loading span.fancytree-expander,
.fancytree-loading span.fancytree-expander:hover,
.fancytree-statusnode-wait span.fancytree-icon,
.fancytree-statusnode-wait span.fancytree-icon:hover {
background-image: url('data:image/gif;base64,R0lGODlhEAAQAKIFAAAAAAAApUJC/4SE/8bGxgAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAFACwAAAAAEAAQAAADKli63K4hPBZLJWTWhZ0QU7d8YTadxTCgosqa6CM6c1Eztw3rJZ83v1gjAQAh+QQFCgAFACwBAAIACwAHAAADFFgqUhEOrqZiGaNqhbf/BUGA4QgmACH5BAUKAAUALAIAAQAMAAUAAAMTWKoi+2OUVkKAcllFyHtW92lBAgAh+QQFCgAFACwEAAEACwAIAAADFlg6o16EFFaEcPHZx1UInfOFZDeSXwIAIfkEBQoABQAsBwABAAcACwAAAxRIVMxaYzQWZxPCYstZ4F83BWFDJgAh+QQFCgAFACwKAAIABQAMAAADFEhUrPxjQPlqEeJhy0J4XhF2H5MAACH5BAUKAAUALAcABAAIAAsAAAMUWKpEu+3JOQa1cwqh+QrBF4LilAAAIfkEBQoABQAsBAAHAAsABwAAAxRYukvE0MFJyxjV4hCYEAtXiN+SAAAh+QQFCgAFACwCAAoADAAFAAADEhhR3ExEOQeZbGM4KUTJE9NNCQAh+QQFCgAFACwBAAcACwAIAAADFhhR3K0uSglnqbYI4QhpWzEMhSeNTQIAIfkEBQoABQAsAgAEAAcACwAAAxMYUczaMC4ZKxMiYjtG7AVBRGICACH5BAUKAAUALAEAAgAFAAwAAAMTWBqhxa8t6ZQQ7tY9husbQThiAgA7');
background-position: 0px 0px;
}
/* Status node icons */
.fancytree-statusnode-error span.fancytree-icon,
.fancytree-statusnode-error span.fancytree-icon:hover {
background-position: 0px -112px;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
/* See #117 */
display: inherit;
width: 100%;
margin-top: 1px;
min-height: 16px;
}
span.fancytree-title {
color: #000000;
cursor: pointer;
display: inline-block;
vertical-align: top;
min-height: 16px;
padding: 0 3px 0 3px;
margin: 0px 0 0 3px;
border: 0 solid transparent;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-ms-border-radius: 0px;
-o-border-radius: 0px;
border-radius: 0px;
}
span.fancytree-node.fancytree-error span.fancytree-title {
color: #ff0000;
}
/*------------------------------------------------------------------------------
* Drag'n'drop support
*----------------------------------------------------------------------------*/
div.fancytree-drag-helper span.fancytree-childcounter,
div.fancytree-drag-helper span.fancytree-dnd-modifier {
display: inline-block;
color: #fff;
background: #337ab7;
border: 1px solid gray;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
div.fancytree-drag-helper span.fancytree-childcounter {
position: absolute;
top: -6px;
right: -6px;
}
div.fancytree-drag-helper span.fancytree-dnd-modifier {
background: #5cb85c;
border: none;
font-weight: bolder;
}
div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img {
background-position: -32px -112px;
}
div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img {
background-position: -16px -112px;
}
/*** Drop marker icon *********************************************************/
#fancytree-drop-marker {
width: 32px;
position: absolute;
background-position: 0px -128px;
margin: 0;
}
#fancytree-drop-marker.fancytree-drop-after,
#fancytree-drop-marker.fancytree-drop-before {
width: 64px;
background-position: 0px -144px;
}
#fancytree-drop-marker.fancytree-drop-copy {
background-position: -64px -128px;
}
#fancytree-drop-marker.fancytree-drop-move {
background-position: -32px -128px;
}
/*** Source node while dragging ***********************************************/
span.fancytree-drag-source.fancytree-drag-remove {
opacity: 0.15;
}
/*** Target node while dragging cursor is over it *****************************/
/*------------------------------------------------------------------------------
* 'table' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table span.fancytree-node {
display: inline-block;
}
/*------------------------------------------------------------------------------
* 'columnview' extension
*----------------------------------------------------------------------------*/
table.fancytree-ext-columnview tbody tr td {
position: relative;
border: 1px solid gray;
vertical-align: top;
overflow: auto;
}
table.fancytree-ext-columnview tbody tr td > ul {
padding: 0;
}
table.fancytree-ext-columnview tbody tr td > ul li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
-moz-background-clip: border;
-moz-background-inline-policy: continuous;
-moz-background-origin: padding;
background-attachment: scroll;
background-color: transparent;
background-position: 0px 0px;
background-repeat: repeat-y;
background-image: none;
/* no v-lines */
margin: 0;
}
table.fancytree-ext-columnview span.fancytree-node {
position: relative;
/* allow positioning of embedded spans */
display: inline-block;
}
table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded {
background-color: #CBE8F6;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right {
position: absolute;
right: 3px;
background-position: 0px -80px;
}
table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover {
background-position: -16px -80px;
}
/*------------------------------------------------------------------------------
* 'filter' extension
*----------------------------------------------------------------------------*/
.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: bold;
}
.fancytree-ext-filter-hide tr.fancytree-hide,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide {
display: none;
}
.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title {
color: #c0c0c0;
font-weight: lighter;
}
.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title,
.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title {
color: black;
font-weight: normal;
}
.fancytree-ext-childcounter span.fancytree-icon,
.fancytree-ext-filter span.fancytree-icon {
position: relative;
}
.fancytree-ext-childcounter span.fancytree-childcounter,
.fancytree-ext-filter span.fancytree-childcounter {
color: #fff;
background: #777;
border: 1px solid gray;
position: absolute;
top: -6px;
right: -6px;
min-width: 10px;
height: 10px;
line-height: 1;
vertical-align: baseline;
border-radius: 10px;
padding: 2px;
text-align: center;
font-size: 9px;
}
/*------------------------------------------------------------------------------
* 'wide' extension
*----------------------------------------------------------------------------*/
ul.fancytree-ext-wide {
position: relative;
min-width: 100%;
z-index: 2;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.fancytree-ext-wide span.fancytree-node > span {
position: relative;
z-index: 2;
}
ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
position: absolute;
z-index: 1;
left: 0px;
width: 100%;
margin-left: 0;
margin-right: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
/*******************************************************************************
* Tree container
*/
ul.fancytree-container li {
background-image: url("vline.gif");
background-position: 0 0;
}
ul.fancytree-container li.fancytree-lastsib {
background-image: none;
}
ul.fancytree-no-connector > li {
background-image: none;
}
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
border: 0 solid transparent;
}
span.fancytree-title:hover {
background-color: #F2F7FD;
border-color: #B8D6FB;
}
span.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
background-color: #EFEBDE;
}
.fancytree-folder span.fancytree-title {
font-weight: bold;
}
.fancytree-selected span.fancytree-title {
color: green;
font-style: italic;
}
.fancytree-active span.fancytree-title {
background-color: #3169C6 !important;
color: white !important;
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table {
border-collapse: collapse;
}
table.fancytree-ext-table tbody tr.fancytree-focused {
background-color: #99DEFD;
}
table.fancytree-ext-table tbody tr.fancytree-active {
background-color: royalblue;
}
table.fancytree-ext-table tbody tr.fancytree-selected {
background-color: #99FDDE;
}

View File

@@ -1,96 +0,0 @@
/*!
* Fancytree "XP" skin.
*
* DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from
* the LESS templates.
*/
// Import common styles
@import "../skin-common.less";
/*******************************************************************************
* Styles specific to this skin.
*
* This section is automatically generated from the `ui-fancytree.less` template.
******************************************************************************/
// Override the variable after the import.
// NOTE: Variables are always resolved as the last definition, even if it is
// after where it is used.
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
@fancy-hide-connectors: false; // true: show vertical connector lines
@fancy-icon-width: 16px;
@fancy-icon-height: 16px;
@fancy-icon-spacing: 3px;
@fancy-node-border-width: 0;
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
@fancy-loading-url: data-uri("@{fancy-image-dir}/loading.gif");
// Set to `true` to use `data-uri(...)` which will embed icons.gif into CSS
// instead of linking to that file:
// @fancy-inline-sprites: true;
/*******************************************************************************
* Tree container
*/
ul.fancytree-container {
li {
background-image: url("vline.gif");
background-position: 0 0;
}
// Suppress lines for last child node
li.fancytree-lastsib {
background-image: none;
}
}
// Suppress lines if level is fixed expanded (option minExpandLevel)
ul.fancytree-no-connector > li {
background-image: none;
}
/*******************************************************************************
* Node titles
*/
span.fancytree-title {
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
}
span.fancytree-title:hover {
background-color: #F2F7FD; // light blue
border-color: #B8D6FB; // darker light blue
}
span.fancytree-focused span.fancytree-title {
outline: 1px dotted black;
background-color: #EFEBDE; // gray
}
.fancytree-folder span.fancytree-title {
font-weight: bold;
}
.fancytree-selected span.fancytree-title {
color: green;
font-style: italic;
}
.fancytree-active span.fancytree-title {
background-color: #3169C6 !important;
color: white !important; // @ IE6
}
/*******************************************************************************
* 'table' extension
*/
table.fancytree-ext-table {
border-collapse: collapse;
tbody tr.fancytree-focused {
background-color: #99DEFD;
}
tbody tr.fancytree-active {
background-color: royalblue;
}
tbody tr.fancytree-selected {
background-color: #99FDDE;
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 842 B

Some files were not shown because too many files have changed in this diff Show More