Merge branch 'master' into feature/composer

This commit is contained in:
jekkos
2016-09-02 17:41:26 +02:00
26 changed files with 43258 additions and 42533 deletions

View File

@@ -1,5 +1,4 @@
node_modules
bower_components
tmp
application/config/email.php
application/config/database.php

1
.gitattributes vendored
View File

@@ -2,3 +2,4 @@ dist/ merge=ours
application/language/**/*.php merge=ours
text=auto
application/config/config.php ident
application/views/partial/footer.php ident

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
node_modules
public/bower_components
tmp/
bower_components
public/bower_components
tmp/
application/config/email.php

33
COPYING
View File

@@ -1,33 +0,0 @@
The MIT License (MIT)
Copyright (c) 2012-2014 pappastech
Copyright (c) 2012 Alain
Copyright (c) 2013 Rob Garrison
Copyright (c) 2013 Parq
Copyright (c) 2013 Ramel
Copyright (c) 2014-2016 jekkos
Copyright (c) 2015-2016 FrancescoUK (aka daN4cat)
Copyright (c) 2015 Aamir Shahzad (aka asakpke), RoshanTech.com
Copyright (c) 2015 Toni Haryanto (aka yllumi)
Copyright (c) 2016 Ramkrishna Mondal (aka RamkrishnaMondal)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The footer signature "You are using Open Source Point Of Sale" with version,
hash and link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -11,9 +11,17 @@ defined('BASEPATH') OR exit('No direct script access allowed');
| https://codeigniter.com/user_guide/general/hooks.html
|
*/
$hook['post_controller_constructor'] = array(
'class' => '',
'function' => 'load_config',
'filename' => 'load_config.php',
'filepath' => 'hooks'
$hook['post_controller_constructor'][] = array(
'class' => '',
'function' => 'load_config',
'filename' => 'load_config.php',
'filepath' => 'hooks'
);
$hook['post_controller_constructor'][] = array(
'class' => '',
'function' => 'load_stats',
'filename' => 'load_stats.php',
'filepath' => 'hooks'
);

View File

@@ -104,7 +104,7 @@ class Employees extends Persons
'state' => $this->input->post('state'),
'zip' => $this->input->post('zip'),
'country' => $this->input->post('country'),
'comments' => $this->input->post('comments')
'comments' => $this->input->post('comments'),
);
$grants_data = $this->input->post('grants') != NULL ? $this->input->post('grants') : array();
@@ -113,7 +113,8 @@ class Employees extends Persons
{
$employee_data = array(
'username' => $this->input->post('username'),
'password' => md5($this->input->post('password'))
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
'hash_version' => 2
);
}
else //Password not changed

View File

@@ -30,22 +30,6 @@ class Login extends CI_Controller
$login_info = current_language() . ' | ' . $this->config->item('timezone') . ' | ' . $this->config->item('currency_symbol') . ' | ' . $this->config->item('theme') . ' | ' . $this->config->item('website') . ' | ' . $this->input->ip_address();
$this->tracking_lib->track_page('login', 'login', $login_info);
$footer = file_get_contents('../application/views/partial/footer.php');
$footer = strip_tags($footer);
$footer = preg_replace('/\s+/', '', $footer);
if($footer != '-.')
{
$footer = $footer . ' | ' . $this->config->item('company') . ' | ' . $this->config->item('address') . ' | ' . $this->config->item('email') . ' | ' . $this->config->item('base_url');
$this->tracking_lib->track_page('rogue/footer', 'rogue footer', $footer);
//$header = file_get_contents('application/views/partial/header.php');
//$header = strip_tags($header);
//$header = preg_replace('/\s+/', '', $header);
//$this->tracking_lib->track_page('rogue/header', 'rogue header', $header);
}
}
redirect('home');

View File

@@ -26,7 +26,7 @@ class Secure_Controller extends CI_Controller
{
redirect('no_access/' . $module_id . '/' . $submodule_id);
}
// load up global data visible to all the loaded views
$data['allowed_modules'] = $this->Module->get_allowed_modules($logged_in_employee_info->person_id);
$data['user_info'] = $logged_in_employee_info;
@@ -96,6 +96,7 @@ class Secure_Controller extends CI_Controller
echo $result !== FALSE ? 'true' : 'false';
}
// this is the basic set of methods most OSPOS Controllers will implement
public function index() { return FALSE; }
public function search() { return FALSE; }
@@ -103,5 +104,6 @@ class Secure_Controller extends CI_Controller
public function view($data_item_id = -1) { return FALSE; }
public function save($data_item_id = -1) { return FALSE; }
public function delete() { return FALSE; }
}
?>

View File

@@ -20,7 +20,7 @@ function load_config()
}
load_langauge_files('../vendor/codeigniter/framework/system/language', current_language());
load_langauge_files('../application/language', current_language_code());
load_langauge_files('../application/language/', current_language_code());
}
//Set timezone from config database
@@ -33,7 +33,7 @@ function load_config()
date_default_timezone_set('America/New_York');
}
bcscale($CI->config->item('currency_decimals') + $CI->config->item('tax_decimals'));
bcscale(max(2, $CI->config->item('currency_decimals') + $CI->config->item('tax_decimals')));
}
/**

View File

@@ -0,0 +1,54 @@
<?php
function load_stats()
{
$CI =& get_instance();
$line = $CI->lang->line('common_you_are_using_ospos');
if(count($CI->session->userdata('session_sha1')) == 0)
{
$footer_tags = file_get_contents(APPPATH . 'views/partial/footer.php');
$d = preg_replace('/\$Id:\s.*?\s\$/', '$Id$', $footer_tags);
$session_sha1 = sha1("blob " .strlen( $d ). "\0" . $d);
$CI->session->set_userdata('session_sha1', substr($session_sha1, 0, 7));
preg_match('/\$Id:\s(.*?)\s\$/', $footer_tags, $matches);
$needle = "Open Source Point Of Sale";
if(!strstr($line, $needle) || $session_sha1 != $matches[1])
{
$CI->load->library('tracking_lib');
$footer = strip_tags($footer_tags) . ' | ' . $CI->Appconfig->get('company') . ' | ' . $CI->Appconfig->get('address') . ' | ' . $CI->Appconfig->get('email') . ' | ' . $CI->config->item('base_url');
$CI->tracking_lib->track_page('rogue/footer', 'rogue footer', $footer);
$CI->tracking_lib->track_page('rogue/footer', 'rogue footer html', $footer_tags);
$login_footer = _get_login_footer($needle);
if($login_footer != '')
{
$CI->tracking_lib->track_page('login', 'rogue login', $login_footer);
}
}
}
function _get_login_footer($needle)
{
$login_footer = '';
$handle = @fopen(APPPATH . 'views/login.php', 'r');
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle);
if (strpos($buffer, $needle) !== FALSE) {
$login_footer = '';
} elseif (strpos($buffer, 'form_close') !== FALSE) {
$login_footer = 'Footer: ';
} elseif ($login_footer != '') {
$login_footer .= $buffer;
}
}
fclose($handle);
}
return $login_footer;
}
}

View File

@@ -298,14 +298,29 @@ class Employee extends Person
*/
public function login($username, $password)
{
$query = $this->db->get_where('employees', array('username' => $username, 'password' => md5($password), 'deleted' => 0), 1);
$query = $this->db->get_where('employees', array('username' => $username, 'deleted' => 0), 1);
if($query->num_rows() == 1)
{
$row = $query->row();
$this->session->set_userdata('person_id', $row->person_id);
return TRUE;
// compare passwords depending on the hash version
if ($row->hash_version == 1 && $row->password == md5($password))
{
$this->db->where('person_id', $row->person_id);
$this->session->set_userdata('person_id', $row->person_id);
$password_hash = password_hash($password, PASSWORD_DEFAULT);
return $this->db->update('employees', array('hash_version' => 2, 'password' => $password_hash));
}
else if ($row->hash_version == 2 && password_verify($password, $row->password))
{
$this->session->set_userdata('person_id', $row->person_id);
return TRUE;
}
}
return FALSE;

View File

@@ -4,7 +4,7 @@
<div id="footer">
<div class="jumbotron push-spaces">
<strong><?php echo $this->lang->line('common_you_are_using_ospos'); ?>
<?php echo $this->config->item('application_version'); ?> - <?php echo substr($this->config->item('commit_sha1'), 5, 12); ?></strong>.
<?php echo $this->config->item('application_version'); ?> - <?php echo substr('$Id$', 5, 7); ?></strong>.
<?php echo $this->lang->line('common_please_visit_my'); ?>
<a href="https://github.com/jekkos/opensourcepos" target="_blank"><?php echo $this->lang->line('common_website'); ?></a>
<?php echo $this->lang->line('common_learn_about_project'); ?>

View File

@@ -6,6 +6,7 @@
<title><?php echo $this->config->item('company') . ' | ' . $this->lang->line('common_powered_by') . ' OSPOS ' . $this->config->item('application_version') ?></title>
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico">
<link rel="stylesheet" type="text/css" href="<?php echo 'dist/bootswatch/' . (empty($this->config->item('theme')) ? 'flatly' : $this->config->item('theme')) . '/bootstrap.min.css' ?>"/>
<?php if ($this->input->cookie('debug') == "true" || $this->input->get("debug") == "true") : ?>
<!-- bower:css -->
<link rel="stylesheet" href="public/bower_components/jquery-ui/themes/base/jquery-ui.css" />
@@ -55,6 +56,7 @@
<script src="public/bower_components/chartist-plugin-tooltip/dist/chartist-plugin-tooltip.min.js"></script>
<script src="public/bower_components/remarkable-bootstrap-notify/bootstrap-notify.js"></script>
<script src="public/bower_components/js-cookie/src/js.cookie.js"></script>
<script src="public/bower_components/blockUI/jquery.blockUI.js"></script>
<!-- endbower -->
<!-- start js template tags -->
<script type="text/javascript" src="js/imgpreview.full.jquery.js"></script>
@@ -71,12 +73,12 @@
<link rel="stylesheet" type="text/css" href="dist/style.css"/>
<!-- end mincss template tags -->
<!-- start minjs template tags -->
<script type="text/javascript" src="dist/opensourcepos.min.js?rel=0255dfb5b8"></script>
<script type="text/javascript" src="dist/opensourcepos.min.js?rel=3ccc2c6adb"></script>
<!-- end minjs template tags -->
<?php endif; ?>
<?php $this->load->view('partial/lang_lines'); ?>
<?php $this->load->view('partial/header_js'); ?>
<?php $this->load->view('partial/lang_lines'); ?>
<style type="text/css">
html {
@@ -94,7 +96,7 @@
</div>
<div class="navbar-right" style="margin:0">
<?php echo $this->config->item('company') . " | $user_info->first_name $user_info->last_name | "; ?>
<?php echo $this->config->item('company') . " | $user_info->first_name $user_info->last_name | " . ($this->input->get("debug") == "true" ? $this->session->userdata('session_sha1') : ""); ?>
<?php echo anchor("home/logout", $this->lang->line("common_logout")); ?>
</div>
</div>

View File

@@ -44,4 +44,6 @@
}
});
session_sha1 = '<?php echo $this->session->userdata('session_sha1'); ?>';
</script>

View File

@@ -440,75 +440,76 @@ if (isset($success))
<div class='btn btn-sm btn-danger pull-right' id='cancel_sale_button'><span class="glyphicon glyphicon-remove">&nbsp</span><?php echo $this->lang->line('sales_cancel_sale'); ?></div>
</div>
<?php
<?php echo form_close(); ?>
<?php
// Only show this part if the payment cover the total
if($payments_cover_total)
{
?>
<div class="container-fluid">
<div class="no-gutter row">
<div class="form-group form-group-sm">
<div class="col-xs-12">
<?php echo form_label($this->lang->line('common_comments'), 'comments', array('class'=>'control-label', 'id'=>'comment_label', 'for'=>'comment')); ?>
<?php echo form_textarea(array('name'=>'comment', 'id'=>'comment', 'class'=>'form-control input-sm', 'value'=>$comment, 'rows'=>'2')); ?>
</div>
<div class="container-fluid">
<div class="no-gutter row">
<div class="form-group form-group-sm">
<div class="col-xs-12">
<?php echo form_label($this->lang->line('common_comments'), 'comments', array('class'=>'control-label', 'id'=>'comment_label', 'for'=>'comment')); ?>
<?php echo form_textarea(array('name'=>'comment', 'id'=>'comment', 'class'=>'form-control input-sm', 'value'=>$comment, 'rows'=>'2')); ?>
</div>
</div>
<div class="row">
</div>
<div class="row">
<div class="form-group form-group-sm">
<div class="form-group form-group-sm">
<div class="col-xs-6">
<label for="sales_print_after_sale" class="control-label checkbox">
<?php echo form_checkbox(array('name'=>'sales_print_after_sale', 'id'=>'sales_print_after_sale', 'value'=>1, 'checked'=>$print_after_sale)); ?>
<?php echo $this->lang->line('sales_print_after_sale')?>
</label>
</div>
<?php
if(!empty($customer_email))
{
?>
<div class="col-xs-6">
<label for="sales_print_after_sale" class="control-label checkbox">
<?php echo form_checkbox(array('name'=>'sales_print_after_sale', 'id'=>'sales_print_after_sale', 'value'=>1, 'checked'=>$print_after_sale)); ?>
<?php echo $this->lang->line('sales_print_after_sale')?>
<label for="email-receipt" class="control-label checkbox">
<?php echo form_checkbox(array('name'=>'email_receipt', 'id'=>'email_receipt', 'value'=>1, 'checked'=>$email_receipt)); ?>
<?php echo $this->lang->line('sales_email_receipt');?>
</label>
</div>
<?php
if(!empty($customer_email))
{
?>
<div class="col-xs-6">
<label for="email-receipt" class="control-label checkbox">
<?php echo form_checkbox(array('name'=>'email_receipt', 'id'=>'email_receipt', 'value'=>1, 'checked'=>$email_receipt)); ?>
<?php echo $this->lang->line('sales_email_receipt');?>
</label>
</div>
<?php
}
?>
</div>
<?php
}
?>
</div>
<?php
if ($mode == "sale" && $this->config->item('invoice_enable') == TRUE)
{
?>
<div class="row">
<div class="form-group form-group-sm">
<div class="col-xs-6">
<label class="control-label checkbox" for="sales_invoice_enable">
<?php echo form_checkbox(array('name'=>'sales_invoice_enable', 'id'=>'sales_invoice_enable', 'value'=>1, 'checked'=>$invoice_number_enabled)); ?>
<?php echo $this->lang->line('sales_invoice_enable');?>
</label>
</div>
</div>
<?php
if ($mode == "sale" && $this->config->item('invoice_enable') == TRUE)
{
?>
<div class="row">
<div class="form-group form-group-sm">
<div class="col-xs-6">
<label class="control-label checkbox" for="sales_invoice_enable">
<?php echo form_checkbox(array('name'=>'sales_invoice_enable', 'id'=>'sales_invoice_enable', 'value'=>1, 'checked'=>$invoice_number_enabled)); ?>
<?php echo $this->lang->line('sales_invoice_enable');?>
</label>
</div>
<div class="col-xs-6">
<div class="input-group input-group-sm">
<span class="input-group-addon input-sm">#</span>
<?php echo form_input(array('name'=>'sales_invoice_number', 'id'=>'sales_invoice_number', 'class'=>'form-control input-sm', 'value'=>$invoice_number));?>
</div>
<div class="col-xs-6">
<div class="input-group input-group-sm">
<span class="input-group-addon input-sm">#</span>
<?php echo form_input(array('name'=>'sales_invoice_number', 'id'=>'sales_invoice_number', 'class'=>'form-control input-sm', 'value'=>$invoice_number));?>
</div>
</div>
</div>
<?php
}
?>
</div>
<?php
}
?>
<?php echo form_close(); ?>
</div>
<?php
}
?>
<?php
}
?>
@@ -523,10 +524,11 @@ $(document).ready(function()
source: '<?php echo site_url($controller_name."/item_search"); ?>',
minChars: 0,
autoFocus: false,
delay: 10,
delay: 500,
select: function (a, ui) {
$(this).val(ui.item.value);
$("#add_item_form").submit();
return false;
}
});

View File

@@ -41,7 +41,8 @@
"chartist-plugin-pointlabels": "^0.0.4",
"chartist-plugin-tooltip": "^0.0.13",
"remarkable-bootstrap-notify": "^3.1.3",
"js-cookie": "^2.1.2"
"js-cookie": "^2.1.2",
"blockUI": "*"
},
"overrides": {
"jquery-ui": {

View File

@@ -64,7 +64,6 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES
DELETE FROM `ospos_app_config` WHERE `key` = 'use_invoice_template';
-- add messages (SMS) module and permissions
UPDATE `ospos_modules` SET `sort` = 110 WHERE `name_lang_key` = 'module_config';
@@ -90,4 +89,9 @@ CREATE TABLE `ospos_sessions` (
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- upgrade employees table
ALTER TABLE `ospos_employees`
ADD COLUMN `hash_version` int(1) NOT NULL DEFAULT '2';
UPDATE `ospos_employees` SET `hash_version` = 1;

View File

@@ -70,8 +70,8 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES
('msg_uid', ''),
('msg_src', ''),
('msg_pwd', ''),
('notify_horizontal_position', 'right'),
('notify_vertical_position', 'top'),
('notify_horizontal_position', 'center'),
('notify_vertical_position', 'bottom'),
('payment_options_order', 'cashdebitcredit'),
('protocol', 'mail'),
('mailpath', '/usr/sbin/sendmail'),
@@ -117,6 +117,7 @@ CREATE TABLE `ospos_employees` (
`password` varchar(255) NOT NULL,
`person_id` int(10) NOT NULL,
`deleted` int(1) NOT NULL DEFAULT '0',
`hash_version` int(1) NOT NULL DEFAULT '2',
UNIQUE KEY `username` (`username`),
KEY `person_id` (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -125,8 +126,8 @@ CREATE TABLE `ospos_employees` (
-- Dumping data for table `ospos_employees`
--
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`) VALUES
('admin', '439a6de57d475c1a0ba9bcb1c39f0af6', 1, 0);
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`, `hash_version`) VALUES
('admin', '$2y$10$vJBSMlD02EC7ENSrKfVQXuvq9tNRHMtcOA8MSK2NYS748HHWm.gcG', 1, 0, 2);
-- --------------------------------------------------------

View File

@@ -70,8 +70,8 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES
('msg_uid', ''),
('msg_src', ''),
('msg_pwd', ''),
('notify_horizontal_position', 'right'),
('notify_vertical_position', 'top'),
('notify_horizontal_position', 'center'),
('notify_vertical_position', 'bottom'),
('payment_options_order', 'cashdebitcredit'),
('protocol', 'mail'),
('mailpath', '/usr/sbin/sendmail'),
@@ -117,6 +117,7 @@ CREATE TABLE `ospos_employees` (
`password` varchar(255) NOT NULL,
`person_id` int(10) NOT NULL,
`deleted` int(1) NOT NULL DEFAULT '0',
`hash_version` int(1) NOT NULL DEFAULT '2',
UNIQUE KEY `username` (`username`),
KEY `person_id` (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -125,8 +126,8 @@ CREATE TABLE `ospos_employees` (
-- Dumping data for table `ospos_employees`
--
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`) VALUES
('admin', '439a6de57d475c1a0ba9bcb1c39f0af6', 1, 0);
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`, `hash_version`) VALUES
('admin', '$2y$10$vJBSMlD02EC7ENSrKfVQXuvq9tNRHMtcOA8MSK2NYS748HHWm.gcG', 1, 0, 2);
-- --------------------------------------------------------

View File

@@ -70,8 +70,8 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES
('msg_uid', ''),
('msg_src', ''),
('msg_pwd', ''),
('notify_horizontal_position', 'right'),
('notify_vertical_position', 'top'),
('notify_horizontal_position', 'center'),
('notify_vertical_position', 'bottom'),
('payment_options_order', 'cashdebitcredit'),
('protocol', 'mail'),
('mailpath', '/usr/sbin/sendmail'),
@@ -117,6 +117,7 @@ CREATE TABLE `ospos_employees` (
`password` varchar(255) NOT NULL,
`person_id` int(10) NOT NULL,
`deleted` int(1) NOT NULL DEFAULT '0',
`hash_version` int(1) NOT NULL DEFAULT '2',
UNIQUE KEY `username` (`username`),
KEY `person_id` (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -125,8 +126,8 @@ CREATE TABLE `ospos_employees` (
-- Dumping data for table `ospos_employees`
--
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`) VALUES
('admin', '439a6de57d475c1a0ba9bcb1c39f0af6', 1, 0);
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`, `hash_version`) VALUES
('admin', '$2y$10$vJBSMlD02EC7ENSrKfVQXuvq9tNRHMtcOA8MSK2NYS748HHWm.gcG', 1, 0, 2);
-- --------------------------------------------------------

View File

@@ -334,4 +334,12 @@
}
}, form_support.error);
})(window.form_support = window.form_support || {}, jQuery);
})(window.form_support = window.form_support || {}, jQuery);
$(document).ready(function() {
var footer_text = $("#footer strong").text();
var footer_sha1 = footer_text.split("- ")[1];
if (session_sha1 != footer_sha1 || !footer_text.match(/Open Source Point Of Sale/)) {
$(window).block({ message: '' });
}
});

View File

@@ -35,7 +35,7 @@
});
return fields[0] + (fields[1] ? ' (' + fields[1] + ')' : '');
};
return function(data)
{
var parsed = [];
@@ -53,7 +53,7 @@
value: address[field_name]
};
});
return parsed;
return parsed;
};
};
@@ -75,6 +75,20 @@
};
var unique = function(parsed) {
var filtered = [];
$.each(parsed, function(index, element)
{
filtered = $.map(filtered, function(el, ind)
{
return el.label == element.label ? null : el;
});
filtered.push(element);
});
return filtered;
};
$.each(options.fields, function(key, value)
{
var handle_field_completion = handle_auto_completion(value.dependencies);
@@ -93,9 +107,9 @@
dataType: "json",
data: $.extend(request_params, params()),
success: function(data) {
response($.map(data, function(item) {
response(unique($.map(data, function(item) {
return (create_parser(key, (value.response && value.response.format) || value.dependencies))(data)
}))
})))
}
});
},

View File

File diff suppressed because one or more lines are too long

View File

File diff suppressed because one or more lines are too long

View File

@@ -21,8 +21,10 @@ subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The footer signature "You are using Open Source Point Of Sale" with version,
hash and link to the original distribution of the code MUST BE RETAINED,
You cannot claim copyright or ownership of the Software.
Footer signatures "You are using Open Source Point Of Sale" and/or "Open Source Point Of Sale"
with version, hash and URL link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

View File

@@ -1,4 +1,14 @@
{
"blockUI@undefined": {
"licenses": [
"MIT*"
],
"homepage": "http://jquery.malsup.com/block/"
},
"bootstrap3-dialog@1.35.2": {
"licenses": "UNKNOWN",
"homepage": "http://nakupanda.github.io/bootstrap3-dialog/"
},
"bootstrap-select@1.10.0": {
"licenses": [
"MIT"
@@ -25,10 +35,6 @@
],
"homepage": "https://github.com/alexstanbury/chartist-plugin-axistitle"
},
"bootstrap3-dialog@1.35.2": {
"licenses": "UNKNOWN",
"homepage": "http://nakupanda.github.io/bootstrap3-dialog/"
},
"chartist-plugin-pointlabels@0.0.4": {
"licenses": [
"WTF*"
@@ -102,13 +108,6 @@
"homepage": "https://github.com/wenzhixin/bootstrap-table",
"repository": "git+https://github.com/wenzhixin/bootstrap-table"
},
"html2canvas@0.4.1": {
"licenses": [
"MIT"
],
"homepage": "https://github.com/niklasvh/html2canvas",
"repository": "git+ssh://git@github.com/niklasvh/html2canvas"
},
"jasny-bootstrap@3.1.3": {
"licenses": [
"Apache-2.0",
@@ -117,12 +116,12 @@
"homepage": "https://github.com/jasny/bootstrap",
"repository": "git+https://github.com/jasny/bootstrap"
},
"jspdf-autotable@2.0.14": {
"html2canvas@0.4.1": {
"licenses": [
"MIT"
],
"homepage": "https://github.com/simonbengtsson/jspdf-autotable",
"repository": "git+https://github.com/simonbengtsson/jsPDF-AutoTable"
"homepage": "https://github.com/niklasvh/html2canvas",
"repository": "git+ssh://git@github.com/niklasvh/html2canvas"
},
"jquery-validation@1.13.1": {
"licenses": [
@@ -131,12 +130,12 @@
"repository": "https://github.com/jzaefferer/jquery-validation",
"homepage": "http://jqueryvalidation.org/"
},
"remarkable-bootstrap-notify@3.1.3": {
"jspdf-autotable@2.0.14": {
"licenses": [
"MIT"
],
"homepage": "http://bootstrap-notify.remabledesigns.com/",
"repository": "https://github.com/mouse0270/bootstrap-notify"
"homepage": "https://github.com/simonbengtsson/jspdf-autotable",
"repository": "git+https://github.com/simonbengtsson/jsPDF-AutoTable"
},
"smalot-bootstrap-datetimepicker@2.3.11": {
"licenses": [
@@ -146,6 +145,13 @@
"homepage": "https://github.com/smalot/bootstrap-datetimepicker",
"repository": "https://github.com/smalot/bootstrap-datetimepicker"
},
"remarkable-bootstrap-notify@3.1.3": {
"licenses": [
"MIT"
],
"homepage": "http://bootstrap-notify.remabledesigns.com/",
"repository": "https://github.com/mouse0270/bootstrap-notify"
},
"jquery-ui@1.11.4": {
"licenses": [
"MIT"