* Minor fixes in the backend section.

This commit is contained in:
alextselegidis@gmail.com 2013-10-27 12:53:51 +00:00
parent 5385243cb5
commit 140cb62627
12 changed files with 80 additions and 16 deletions

36
doc/thesis/compile.sh Normal file
View file

@ -0,0 +1,36 @@
#!/bin/sh
## ===============================================
## GENERATES THE EASY!APPOINTMENTS THESIS DOCUMENT
## ===============================================
clear
xelatex --output-format=pdf thesis.tex --quiet
bibtex thesis.tex
xelatex --output-format=pdf thesis.tex --quiet
rm *.log
rm *.dvi
rm *.aux
rm *.bbl
rm *.blg
rm *.brf
rm *.out
rm *.log
rm *.bcf
rm *.xml
rm *.toc
rm includes\*.log
rm includes\*.dvi
rm includes\*.aux
rm includes\*.bbl
rm includes\*.blg
rm includes\*.brf
rm includes\*.out
rm includes\*.log
rm includes\*.bcf
rm includes\*.xml
rm includes\*.toc
echo "Process Ended"

View file

@ -9,7 +9,8 @@
\usepackage{float}
\usepackage{listings}
\usepackage{hyperref}
\usepackage {color}
\usepackage{color}
\usepackage{xcolor}
%% ============================================================================
%% ΡΥΘΜΙΣΗ ΤΩΝ HYPERLINKS

View file

@ -118,7 +118,7 @@
Έπειτα θα υπολογιστούν οι διαθέσιμες ώρες στις οποίες θα μπορέσει ο χρήστης να κλείσει ραντεβού. Αυθαίρετα και για λόγους ευχρηστίας έχει τεθεί το χρονικό διάστημα μεταξύ των ελεύθερων ωρών να είναι τα 15 λεπτά. Αυτό που κάνει το συγκεκριμένο κομμάτι κώδικα είναι ουσιαστικά ο διαχωρισμός των ελεύθερων χρονικών διαστημάτων του πάροχου σε ώρες τις οποίες χωρίζουν 15 λεπτά τουλάχιστον και οι οποίες μπορούν να χωρέσουν την διάρκεια της υπηρεσίας για την οποία ενδιαφέρεται ο πελάτης, πριν την λήξη του διαθέσιμου χρονικού διαστήματος (γραμμές 43 - 76).
Στο τελευταίο μέρος αυτής της μεθόδους ελέγχεται αν η επιλεγμένη ημερομηνία αντιστοιχεί στην σημερινή και αν αυτό ισχύει αφαιρούνται οι παρελθοντικές διαθέσιμες ώρες έτσι ώστε να μην μπορεί ο πελάτης να κλείσει ραντεβού σε μια παρελθοντική χρονική στιγμή. Το σύστημα στο frontend δεν επιτρέπει ούτως ή άλλος την επιλογή παρελθοντικής ημερομηνίας, αλλά απαιτείται στην συγκεκριμένη περίπτωση να ελεγχθούν οι παρελθοντικές ώρες του ραντεβού. Επίσης είναι σημαντικό να αναφερθεί ότι η εφαρμογή παρέχει μια παράμετρο η οποία ορίζει το χρονικό διάστημα που θα πρέπει να χωρίζει ένα ραντεβού από την ώρα που αυτό γίνεται κράτηση ή επεξεργάζεται. Ο λόγος γίνεται για την ρύθμιση του συστήματος με το όνομα "book_advance_timeout" η οποία μετράται σε λεπτά και λαμβάνεται υπόψιν στον υπολογισμό των διαθέσιμων ωρών.
Στο τελευταίο μέρος αυτής της μεθόδους ελέγχεται αν η επιλεγμένη ημερομηνία αντιστοιχεί στην σημερινή και αν αυτό ισχύει αφαιρούνται οι παρελθοντικές διαθέσιμες ώρες έτσι ώστε να μην μπορεί ο πελάτης να κλείσει ραντεβού σε μια παρελθοντική χρονική στιγμή. Το σύστημα στο frontend δεν επιτρέπει ούτως ή άλλος την επιλογή παρελθοντικής ημερομηνίας, αλλά απαιτείται στην συγκεκριμένη περίπτωση να ελεγχθούν οι παρελθοντικές ώρες του ραντεβού. Επίσης είναι σημαντικό να αναφερθεί ότι η εφαρμογή παρέχει μια παράμετρο η οποία ορίζει το χρονικό διάστημα που θα πρέπει να χωρίζει ένα ραντεβού από την ώρα που αυτό γίνεται κράτηση ή επεξεργάζεται. Ο λόγος γίνεται για την ρύθμιση του συστήματος με το όνομα "book\_advance\_timeout" η οποία μετράται σε λεπτά και λαμβάνεται υπόψιν στον υπολογισμό των διαθέσιμων ωρών.
%% ==================================================
%% ΔΙΑΓΡΑΜΜΑΤΑ ΚΩΔΙΚΑ

Binary file not shown.

View file

@ -42,7 +42,8 @@
<div id="calendar-actions">
<div class="btn-group">
<?php //if ($privileges[PRIV_USERS]['edit'] == TRUE) { ?>
<?php if ($role_slug == DB_SLUG_ADMIN || $role_slug == DB_SLUG_PROVIDER) { ?>
<?php if (($role_slug == DB_SLUG_ADMIN || $role_slug == DB_SLUG_PROVIDER)
&& $this->config->item('ea_google_sync') == TRUE) { ?>
<button id="google-sync" class="btn btn-primary"
title="Trigger the Google Calendar synchronization process.">
<i class="icon-refresh icon-white"></i>

View file

@ -64,7 +64,7 @@
</div>
<div id="save-cancel-group" class="btn-group" style="display:none;">
<button id="save-customer" class="btn">
<button id="save-customer" class="btn btn-primary">
<i class="icon-ok"></i>
Save</button>
<button id="cancel-customer" class="btn">

View file

@ -66,7 +66,7 @@
</div>
<div class="save-cancel-group btn-group" style="display:none;">
<button id="save-service" class="btn">
<button id="save-service" class="btn btn-primary">
<i class="icon-ok"></i>
Save</button>
<button id="cancel-service" class="btn">
@ -143,7 +143,7 @@
</div>
<div class="save-cancel-group btn-group" style="display:none;">
<button id="save-category" class="btn">
<button id="save-category" class="btn btn-primary">
<i class="icon-ok"></i>
Save</button>
<button id="cancel-category" class="btn">

View file

@ -92,7 +92,7 @@
</div>
<div class="save-cancel-group btn-group" style="display:none;">
<button id="save-admin" class="btn">
<button id="save-admin" class="btn btn-primary">
<i class="icon-ok"></i>
Save</button>
<button id="cancel-admin" class="btn">
@ -200,7 +200,7 @@
</div>
<div class="save-cancel-group btn-group" style="display:none;">
<button id="save-provider" class="btn">
<button id="save-provider" class="btn btn-primary">
<i class="icon-ok"></i>
Save</button>
<button id="cancel-provider" class="btn">
@ -408,7 +408,7 @@
</div>
<div class="save-cancel-group btn-group" style="display:none;">
<button id="save-secretary" class="btn">
<button id="save-secretary" class="btn btn-primary">
<i class="icon-ok"></i>
Save</button>
<button id="cancel-secretary" class="btn">

View file

@ -186,6 +186,11 @@ var BackendCalendar = {
classes: 'qtip-green qtip-shadow custom-qtip'
}
});
// Fine tune the footer's position only for this page.
if (window.innerHeight < 700) {
$('#footer').css('position', 'static');
}
},
/**

View file

@ -349,10 +349,17 @@ AdminsHelper.prototype.filter = function(key, selectId, display) {
* @returns {string} The html code that represents the record on the filter results list.
*/
AdminsHelper.prototype.getFilterHtml = function(admin) {
var name = admin.first_name + ' ' + admin.last_name;
var info = admin.email;
info = (admin.mobile_number != '' && admin.mobile_number != null)
? info + ', ' + admin.mobile_number : info;
info = (admin.phone_number != '' && admin.phone_number != null)
? info + ', ' + admin.phone_number : info;
var html =
'<div class="admin-row" data-id="' + admin.id + '">' +
'<strong>' + admin.first_name + ' ' + admin.last_name + '</strong><br>' +
admin.email + ', ' + admin.mobile_number + ', ' + admin.phone_number + '<br>' +
'<strong>' + name + '</strong><br>' +
info + '<br>' +
'</div><hr>';
return html;

View file

@ -426,10 +426,17 @@ ProvidersHelper.prototype.filter = function(key, selectId, display) {
* @returns {string} The html code that represents the record on the filter results list.
*/
ProvidersHelper.prototype.getFilterHtml = function(provider) {
var name = provider.first_name + ' ' + provider.last_name;
var info = provider.email;
info = (provider.mobile_number != '' && provider.mobile_number != null)
? info + ', ' + provider.mobile_number : info;
info = (provider.phone_number != '' && provider.phone_number != null)
? info + ', ' + provider.phone_number : info;
var html =
'<div class="provider-row" data-id="' + provider.id + '">' +
'<strong>' + provider.first_name + ' ' + provider.last_name + '</strong><br>' +
provider.email + ', ' + provider.mobile_number + ', ' + provider.phone_number + '<br>' +
'<strong>' + name + '</strong><br>' +
info + '<br>' +
'</div><hr>';
return html;

View file

@ -370,10 +370,17 @@ SecretariesHelper.prototype.filter = function(key, selectId, display) {
* @returns {string} The html code that represents the record on the filter results list.
*/
SecretariesHelper.prototype.getFilterHtml = function(secretary) {
var name = secretary.first_name + ' ' + secretary.last_name;
var info = secretary.email;
info = (secretary.mobile_number != '' && secretary.mobile_number != null)
? info + ', ' + secretary.mobile_number : info;
info = (secretary.phone_number != '' && secretary.phone_number != null)
? info + ', ' + secretary.phone_number : info;
var html =
'<div class="secretary-row" data-id="' + secretary.id + '">' +
'<strong>' + secretary.first_name + ' ' + secretary.last_name + '</strong><br>' +
secretary.email + ', ' + secretary.mobile_number + ', ' + secretary.phone_number + '<br>' +
'<strong>' + name + '</strong><br>' +
info + '<br>' +
'</div><hr>';
return html;