Penambahan printer kapabilitas via webservice

1 parent d73cc916
5.0.4 2026-06-01
1. Penambahan parameter
- ws_print_url
- is_pylpr
2. Penambahan Table
- tabel text_printer
3. Penambahan URL
- printer
- printer-add
- printer-edit
- printer-edit
- printer-delete
5.0.3 2026-04-28 5.0.3 2026-04-28
- Penambahan field session_id pada table users digunakan untuk membatasi jumlah - Penambahan field session_id pada table users digunakan untuk membatasi jumlah
login hanya bisa ada pada satu device login hanya bisa ada pada satu device
......
...@@ -520,14 +520,17 @@ class BaseApp(): ...@@ -520,14 +520,17 @@ class BaseApp():
self.reg_nip = 0 self.reg_nip = 0
self.single_device = "false" self.single_device = "false"
self.is_pylpr = False self.is_pylpr = False
self.ws_print_url = ""
self.ws_print_id = ""
def get_route_file(self, filename="routes.csv"): def get_route_file(self, filename="routes.csv"):
fullpath = os.path.join(self.base_dir, 'scripts', 'data', filename) fullpath = os.path.join(self.base_dir, 'scripts', 'data', filename)
return open(fullpath) return open(fullpath, encoding="utf-8")
def static_view(self, config, settings=None): def static_view(self, config, settings=None):
if not settings: settings = settings or config.registry.settings
settings = get_settings() # if not settings:
# settings = get_settings()
self.temp_files = settings.get("temp_files") self.temp_files = settings.get("temp_files")
if not os.path.exists(self.temp_files): if not os.path.exists(self.temp_files):
os.makedirs(self.temp_files) os.makedirs(self.temp_files)
...@@ -564,6 +567,8 @@ class BaseApp(): ...@@ -564,6 +567,8 @@ class BaseApp():
self.login_tpl = get_params("login_tpl", "", settings=settings) self.login_tpl = get_params("login_tpl", "", settings=settings)
self.login_captcha = int(get_params( self.login_captcha = int(get_params(
"login_captcha", 0, settings=settings)) "login_captcha", 0, settings=settings))
self.ws_print_url = settings.get("ws_print_url", "")
self.ws_print_id = settings.get("ws_print_id", "")
def add_menu(self, config, route_menus, parent=None, paket="opensipkd.base.views", def add_menu(self, config, route_menus, parent=None, paket="opensipkd.base.views",
template_path="views/templates/"): template_path="views/templates/"):
...@@ -784,18 +789,33 @@ def set_routes(config, app_id=None): ...@@ -784,18 +789,33 @@ def set_routes(config, app_id=None):
from pyramid.httpexceptions import HTTPBadRequest, HTTPFound from pyramid.httpexceptions import HTTPBadRequest, HTTPFound
from pyramid.security import forget from pyramid.security import forget
from pyramid.view import exception_view_config from pyramid.view import exception_view_config
from pyramid.response import Response
import json
@exception_view_config(HTTPBadRequest) @exception_view_config(HTTPBadRequest)
def bad_request_view(exc, request): def bad_request_view(exc, request):
# Bersihkan sesi autentikasi (logout) if request.matched_route.name=='base-login' :
headers = forget(request) # Bersihkan sesi autentikasi (logout)
headers = forget(request)
# Arahkan ulang ke halaman login (misalnya route 'login')
request.session.flash("Permintaan tidak valid. Silakan ulangi kembali. atau origin tidak diizinkan.", "error") # Arahkan ulang ke halaman login (misalnya route 'login')
_logging.debug(f"Bad Request: {exc} from {request.url}") request.session.flash("Permintaan tidak valid. Silakan ulangi kembali. atau origin tidak diizinkan.", "error")
referrer = request.route_url('base-home') _logging.debug(f"Bad Request: {exc} from {request.url}")
response = HTTPFound(location=referrer) referrer = request.route_url('base-login')
response.headers.extend(headers) response = HTTPFound(location=referrer)
return response response.headers.extend(headers)
return response
elif request.is_xhr:
payload = {
"status": "error",
"message": exc.detail or str(exc)
}
return Response(
json_body=payload,
status=400,
content_type='application/json'
)
return exc
from .depreciated_base import * from .depreciated_base import *
$(function () {
$('#deformcheck').click(function (e) {
var url = '%s';
e.preventDefault();
console.log('Check button clicked: ' + url);
$.get(url, function (data) {
console.log("Data loaded:", data);
$('#errors').hide();
$('#success').text(data.message).show();
}).fail(function (jqXHR, textStatus, errorThrown,) {
var err = ("Error printing: " + errorThrown + " " + jqXHR.responseJSON.message);
$('#success').hide();
$('#errors').text(err).show();
});
});
});
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!