/* ------------------------------------------------------------------------------ * * # Handsontable - Excel-like tables with extensive funtionality * * Specific JS code additions for handsontable_ac_password.html page * * Version: 1.0 * Latest update: Nov 1, 2015 * * ---------------------------------------------------------------------------- */ $(function() { // Autocomplete lazy mode // ------------------------------ // Add sample data var hot_date_data = [ {car: "Mercedes", qty: 100, date: "11/01/2015", color: "yellow", price: 32500}, {car: "Chevrolet", qty: 100, date: "11/02/2015", color: "red", price: 42400}, {car: "Dodge", qty: 100, date: "11/03/2015", color: "orange", price: 24900}, {car: "Hummer", qty: 100, date: "11/04/2015", color: "green", price: 54000}, {car: "Suzuki", qty: 100, date: "11/05/2015", color: "blue", price: 29300}, {car: "Toyota", qty: 100, date: "11/06/2015", color: "gray", price: 54500}, {car: "Nissan", qty: 100, date: "11/07/2015", color: "black", price: 44900}, {car: "Porsche", qty: 100, date: "11/08/2015", color: "white", price: 35000}, {car: "Volkswagen", qty: 100, date: "11/09/2015", color: "purple", price: 41000}, {car: "BMW", qty: 100, date: "11/10/2015", color: "lime", price: 48800}, {car: "Audi", qty: 100, date: "11/11/2015", color: "olive", price: 21000}, {car: "Cadillac", qty: 100, date: "11/12/2015", color: "cyan", price: 63900} ]; // Define element var hot_ac_lazy = document.getElementById('hot_ac_lazy'); // Initialize with options var hot_ac_lazy_init = new Handsontable(hot_ac_lazy, { data: hot_date_data, stretchH: 'all', colHeaders: ['Car', 'Qty', 'Date', 'Color', 'Price'], columns: [ { data: 'car', type: 'autocomplete', source: ['Mercedes', 'Chevrolet', 'Dodge', 'Hummer', 'Suzuki', 'Toyota', 'Nissan', 'Porsche', 'Volkswagen', 'BMW', 'Audi', 'Cadillac'], strict: false }, { data: 'qty', type: 'numeric', className: 'htLeft' }, { data: 'date', type: 'date', dateFormat: 'MM/DD/YYYY', correctFormat: true, defaultDate: '01/01/1900' }, { data: 'color', type: 'autocomplete', source: ['yellow', 'red', 'orange', 'green', 'blue', 'gray', 'black', 'white', 'purple', 'lime', 'olive', 'cyan'], strict: false }, { data: 'price', type: 'numeric', className: 'htLeft', format: '0,0.00 $' } ] }); // Autocomplete strict mode // ------------------------------ // Define element var hot_ac_strict = document.getElementById('hot_ac_strict'); // Initialize with options var hot_ac_strict_init = new Handsontable(hot_ac_strict, { data: hot_date_data, stretchH: 'all', colHeaders: ['Car
(allowInvalid true)', 'Qty', 'Date', 'Color
(allowInvalid false)', 'Price'], columns: [ { data: 'car', type: 'autocomplete', source: ['Mercedes', 'Chevrolet', 'Dodge', 'Hummer', 'Suzuki', 'Toyota', 'Nissan', 'Porsche', 'Volkswagen', 'BMW', 'Audi', 'Cadillac'], strict: true }, { data: 'qty', className: 'htLeft', type: 'numeric' }, { data: 'date', type: 'date', dateFormat: 'MM/DD/YYYY', correctFormat: true, defaultDate: '01/01/1900' }, { data: 'color', type: 'autocomplete', source: ['yellow', 'red', 'orange', 'green', 'blue', 'gray', 'black', 'white', 'purple', 'lime', 'olive', 'cyan'], strict: true, allowInvalid: false }, { data: 'price', type: 'numeric', className: 'htLeft', format: '0,0.00 $' } ] }); // Autocomplete strict mode (AJAX) // ------------------------------ // Define element var hot_ac_ajax = document.getElementById('hot_ac_ajax'); // Initialize with options var hot_ac_ajax_init = new Handsontable(hot_ac_ajax, { data: hot_date_data, stretchH: 'all', colHeaders: ['Car', 'Year', 'Chassis color', 'Bumper color'], columns: [ { data: 'car', type: 'autocomplete', source: function (query, process) { $.ajax({ url: 'assets/demo_data/handsontable/cars.json', dataType: 'json', data: { query: query }, success: function (response) { console.log("response", response); process(response.data); } }); }, strict: true }, { data: 'qty', className: 'htLeft', type: 'numeric' }, { data: 'date', type: 'date', dateFormat: 'MM/DD/YYYY', correctFormat: true, defaultDate: '01/01/1900' }, { data: 'color', type: 'autocomplete', source: function (query, process) { $.ajax({ url: 'assets/demo_data/handsontable/colors.json', dataType: 'json', data: { query: query }, success: function (response) { console.log("response", response); process(response.data); } }); }, strict: true, allowInvalid: false }, { data: 'price', type: 'numeric', className: 'htLeft', format: '0,0.00 $' } ] }); // Password cell type // ------------------------------ // Add sample data used in all password example var people = [ {id: 1, name: {first: 'Joe', last: 'Fabiano'}, email: 'joe.fabiano@ex.com', password: 'djeiryt812ewe'}, {id: 2, name: {first: 'Fred', last: 'Wecler'}, email: 'fred.wecler@ex.com', password: 'sdfw78273e2d'}, {id: 3, name: {first: 'Steve', last: 'Wilson'}, email: 'steve.wilson@ex.com', password: 'asdk3uasce'}, {id: 4, name: {first: 'Maria', last: 'Fernandez'}, email: 'm.fernandez@ex.com', password: '12438127we'}, {id: 5, name: {first: 'Pierre', last: 'Barbault'}, email: 'pierre.barbault@ex.com', password: 'aksdiuw3'}, {id: 6, name: {first: 'Nancy', last: 'Moore'}, email: 'nancy.moore@ex.com', password: '18894ksdf'}, {id: 7, name: {first: 'Barbara', last: 'MacDonald'}, email: 'b.macdonald@ex.com', password: 'asd9834r3e'}, {id: 8, name: {first: 'Wilma', last: 'Williams'}, email: 'wilma.williams@ex.com', password: '323908jffwe'}, {id: 9, name: {first: 'Sasha', last: 'Silver'}, email: 'sasha.silver@ex.com', password: 's8884ijs3asdf2'}, {id: 10, name: {first: 'Don', last: 'Pérignon'}, email: 'don.pérignon@ex.com', password: 'e89293234434f'}, {id: 11, name: {first: 'Aaron', last: 'Kinley'}, email: 'aaron.kinley@ex.com', password: '12e3932asdw'} ]; // Define element var hot_password = document.getElementById('hot_password'); // Initialize with options var hot_password_init = new Handsontable(hot_password, { data: people, stretchH: 'all', colHeaders: ['ID', 'First name', 'Last name', 'Email', 'Password'], columns: [ {data: 'id'}, {data: 'name.first'}, {data: 'name.last'}, {data: 'email', renderer: "html"}, {data: 'password', type: 'password', width: 50} ] }); // Fixed hash length // ------------------------------ // Define element var hot_password_fixed = document.getElementById('hot_password_fixed'); // Initialize with options var hot_password_fixed_init = new Handsontable(hot_password_fixed, { data: people, stretchH: 'all', colHeaders: ['ID', 'First name', 'Last name', 'Email', 'Password'], columns: [ {data: 'id'}, {data: 'name.first'}, {data: 'name.last'}, {data: 'email', renderer: "html"}, {data: 'password', type: 'password', hashLength: 8, width: 50} ] }); // Custom hash symbol // ------------------------------ // Define element var hot_password_custom = document.getElementById('hot_password_custom'); // initialize with options var hot_password_custom_init = new Handsontable(hot_password_custom, { data: people, stretchH: 'all', colHeaders: ['ID', 'First name', 'Last name', 'Email', 'Password'], columns: [ {data: 'id'}, {data: 'name.first'}, {data: 'name.last'}, {data: 'email', renderer: "html"}, {data: 'password', type: 'password', hashSymbol: '■', width: 50} ] }); });