mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-07-13 00:12:43 -04:00
Merge branch 'master' into feature/composer
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
node_modules
|
||||
bower_components
|
||||
tmp
|
||||
application/config/email.php
|
||||
application/config/database.php
|
||||
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
||||
node_modules
|
||||
public/bower_components
|
||||
tmp/
|
||||
bower_components
|
||||
public/bower_components
|
||||
tmp/
|
||||
application/config/email.php
|
||||
|
||||
33
COPYING
33
COPYING
@@ -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.
|
||||
@@ -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'
|
||||
);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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; }
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -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')));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
54
application/hooks/load_stats.php
Normal file
54
application/hooks/load_stats.php
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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'); ?>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -44,4 +44,6 @@
|
||||
}
|
||||
});
|
||||
|
||||
session_sha1 = '<?php echo $this->session->userdata('session_sha1'); ?>';
|
||||
|
||||
</script>
|
||||
|
||||
@@ -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"> </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;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
||||
@@ -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: '' });
|
||||
}
|
||||
});
|
||||
@@ -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)
|
||||
}))
|
||||
})))
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
85340
public/dist/opensourcepos.js
vendored
85340
public/dist/opensourcepos.js
vendored
File diff suppressed because one or more lines are too long
61
public/dist/opensourcepos.min.js
vendored
61
public/dist/opensourcepos.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user