chilek / lms Goto Github PK
View Code? Open in Web Editor NEWLan Management System (LMS) public GIT repo
Home Page: http://lms.org.pl
Lan Management System (LMS) public GIT repo
Home Page: http://lms.org.pl
Odwołanie do nie istniejącego pliku
https://github.com/lmsgit/lms/blob/master/modules/transferforms2.php#L118
https://github.com/lmsgit/lms/blob/master/modules/transferforms.php#L101
Jest problem z menu polagający na tym, że kliknięcie w pozycję w menu generuje dwa żądania GET zamiast jednego. Normalnie użytkownik tego nie jest w stanie zauważyć, ale skrypty po stronie serwer wykonują się dwukrotnie. Aby to odtworzyć można użyć polecenia error_log np w welcome.php - w logach Apache zobaczymy podwójne wpisy. Można także zobaczyć to włączając Firebuga. Problem prawdopodobnie związany jest z zdarzeniem onclick na elemecie div i trzeba jakoś zablokować propagacje zdarzenia kliknięcia, ale na razie coś mi to nie działa...
Będę przepisywał dodatek ADESCOM spinający LMS z ich platforma VoIP. Poprzedni, poza tym że nie działa z nowszymi wersjami LMS, miał opinię zbyt daleko ingerującego w LMS. Myślałem jakby pozbyć się na przyszłość tego problemu w tym przypadku, a także w przypadku innych dodatków firm trzecich, które chciałyby jakoś spiąć swoje systemy z LMS.
Pomysł jest taki, aby te dodatki włączać/wyłączać z uiconfig, po czym te włączone rejestrowały by się w jakiś sposób w LMS. Działałoby to na zasadzie wzorca obserwator. Podczas wykonywania się modułów LMS w pewnych krytycznych momentach (start modułu, przyjście zmiennych w tablicy POST, walidacja tablicy POST, zapisywanie zmian) obserwatorzy (moduły zewnętrznych dostawców) powiadamiane by były o zdarzeniu i mogłyby wpływać bądź nie na zmienne. W ten sposób można by odseparować od siebie LMS i dodatki do niego. Co o tym myślicie?
Dziś zrobiłem update do najnowszej wersji z git. Po czym nie działały faktury w PDF. W logach:
[Wed Mar 12 08:27:22.206676 2014] [:error] [pid 4086] [client 127.0.0.1:45052] PHP Warning: include(invoice_tcpdf.php): failed to open stream: No such file or directory in /var/www/lms/modules/invoice.php on line 29, referer: http://localhost/lms/?m=customerinfo&id=282
Rozwiązałem to poprzez zmianę linii nr 29 w pliku invoice.php z
include('invoice_tcpdf.php');
na
include('invoice_pdf.php');
Coś się zmieniło w kwestii generowania PDF w LMSie czy to zwykły czeski błąd?
Najnowszy LMS. Wywołanie netdevedit
czyli edycja urządzenia w osprzęcie sieciowym powoduje, że w lokalizacji zamiast: 'miasto, ulica numer' mam tylko 'miasto numer'
Mam problem z commitem w do swojego forka. Zmieniam po jednej linii w pliku, a po przesłaniu do githuba jest to widoczne jako zmiana całego pliku. Wydaje mi się że mam problem z ustawieniami formatowania w NetBeans. Próbowałem już ustawić "Tab size" na 4 i wyłączyć zmianę tabulatorów na spacje ale nie pomaga. Jakie macie ustawienia formatowania w NB? Albo może ktoś wie o co innego może tu chodzić?
Rozwiązałem problem resetując forka... :-)
Kończy się takim błędem:
PHP Catchable fatal error: Argument 1 passed to ConfigLoader::parseRawConfig() must be of the type array, null given, called in /usr/share/lmsgit/lib/LMSConfig/ConfigLoader.php on line 51 and defined in /usr/share/lmsgit/lib/LMSConfig/ConfigLoader.php on line 105
a
Gdy chcę zmienić rodzaj, szybkość etc. połączeń pomiędzy urządzeniami przy zapisie dostaję:
TypeError: form.elements.radiosector is undefined
Akurat nie mam jeszcze żadnego sektora dodanego do urządzenia.
Proponuje zmienić obecne sortowanie taryf (ORDER BY a.datefrom, value), które przy większej ilości taryf jest chaotyczne na sortowanie wg nazwy przypisanej taryfy, czyli (ORDER BY t.name, a.datefrom, value), a nawet samo ORDER BY t.name.
Dla klientów, którzy mają powiedzmy mniej niż 5 taryf to nie ma znaczenia, ale jak klient ma ponad 30 i więcej to robi się młyn.
Zmiana dotyczy pliku LMS.class.php funkcja GetCustomerAssignments.
Najświeższy LMS 1.11-git DB:DB: 2014090600 z dzisiaj
Helpdesk - Nowe zgłoszenie Kolejka: nie wyświetla się nic - brak listy rozwijanej. (oczywiście istnieje)
Wystąpiły błędy w obsłudze bazy danych!
[ Błąd! ] Zapytanie: SELECT id FROM rtqueues WHERE id IN ()
Błąd: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 2
Zapytanie: SELECT id, name FROM rtqueues WHERE id IN ()
Błąd: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
Nie przypisuje do kategorii zgłoszenia.
Wszystko poprzypisywane poprawnie - wszystko działało prawdopodobnie do któregoś upgrade do GIT
Pytanie: dlaczego wygenerowane pliki html nie mają rozszerzeń .html? Pytam bo chciałbym zaimplementować generowanie dokumentów do pdf.
Na własne potrzeby przerabiam LMSa i zauważyłem dwie rzeczy, które uważam, że wymagają poprawek.
Pierwsza to umiejscowienie funkcji getdir. W mojej opinii powinna znajdować się w pliku common.php, gdyż jest używana bezpośrednio przez moduły.
Druga to brak modułu documentsearch.php . Nie ma go nawet w tym repozytorium, a znajduje się do niego bezużyteczny odnośnik w menu, więc albo usuńcie do niego odnośniki skoro nikt nie wykazuje na niego zapotrzebowania.
Z moimi uwagami zróbcie co chcecie.
Pozdro,
Luke
Sugestia: Implementacja naliczania odsetek ustawowych.
Jeśli macie jakieś sugestie w tym temacie - z chęcią wysłucham, przymierzam się do jakiejś implementacji tego tematu, ale to moje początki w LMS, więc sugestie developerów będą b. mile widziane.
Użytkownik, pomimo włączonej możliwości modyfikacji danych kontaktowych w userpanelu, nie może samodzielnie zaktualizować pola email - wpis nie dodaje się do bazy. Pole phone działa, pole email nie.
Zastanawiam się jaki był cel wstawiania w niektórych miejscach przeźroczystego obrazka empty.gif? Wydaje mi się że po jego usunięciu nic się nie zmienia i chyba tak zaraz zrobię :), ale może ktoś wie o co chodziło i ma to jakiś głębszy sens :)
Chodzi mi na przykład o występowanie tego na listach w nodelist.html.
Czy to już tak ma być, że po dodaniu 'sektorów radiowych' strona będzie rozciągnięta w poziomie ?? czy mógłbym spróbować to przywrócić do poprzedniego zachowania ?
bug ?:
po użyciu 'lms-teryt -f -l nr,nr -u' zaimportowało się wszystko oprócz ulic.
próby 'lms-teryt -f -u' również import bez ulic.
aktualizacja 'lms-teryt -u' nic nie dawała
import wykonał się poprawnie dopiero gdy usunałem województwa dodane w Konfiguracja->Województwa ( zmiana nazwy województw na cokolwiek tez przyniosła efekt )
zaktualizowalem przez 'lms-teryt -C /etc/lms/lms.ini -u'
Konfiguracja:
pomysł:
Może w kolejnej odsłonie związać wsystkie adresy z teryt, tj adresy klienta zamieszkanie,korespondencja, a nie tylko nodów i urządzeń sieciowych.
Ułatwi to pracę z zewnętrznymi firmami zajmującymi się wysyłką i wykluczy powstające błędy w adresach zameldowania.
Moduł: m=nodelist
Klikając kilka razy w różny status po którymś razie sortowanie zaczyna głupieć i nie sortuje. Sprawdzane w najnowszej wersji z git (choć problem miałem także we wcześniejszych wersjach, ale zapomniałem zgłosić).
URL robi się mniej więcej taki:
m=nodelist&page=1&s=2&n=0&ng=&g=&m=nodelist&s=1&o=name%2Casc&page=
Jak widać parametr "s" dubluje się.
Aby reprodukować wystarczy wstawić zobowiązanie, dodać rabat i ustawić limit -99%.
Zostanie naliczony wobec zobowiązania, a nie kwoty finalnej zobowiązania.
Nie jestem w stanie wyedytować nazwy Sieci IP z formularza edycji, po zatwierdzeniu formularza nie zmienia tej nazwy.
Jedyną możliwość wyłączenia zakładek (modułów) w userpanel, to usunięcie lub wyłączenie dostępu do katalogów poszczególnych modułów w katalogu /userpanel/modules.
Oczywiście to powoduje rozsynchronizowanie mojej kopii roboczej z master i spowoduje problemy w przyszłości.
Jako workaround mógłbym skonfigurować ścieżkę do modułów, ale… nie mogę tego zrobić, ponieważ:
https://github.com/lmsgit/lms/blob/master/userpanel/index.php#L61
Wobec powyższego, kod używany w:
https://github.com/lmsgit/lms/blob/master/userpanel/index.php#L55 nie ma chyba najmniejszego sensu - wartość z $CONFIG, jeśli w ogóle jest gdzieś wykorzystywana, to moze być nieprzystajaca do zestawu modułów zczytanych w:
https://github.com/lmsgit/lms/blob/master/userpanel/index.php#L160
Pytania:
lms-sendinvoices.php
(C) 2001-2013 LMS Developers
Using file /etc/lms/lms.ini as config.
PHP Warning: Unable to read ini file! in /usr/sbin/lms-sendinvoices.php on line 129
Warning: Unable to read ini file! in /usr/sbin/lms-sendinvoices.php on line 129
Fatal error: cannot connect to database!
Najnowsza wersja z repo.
Plik /etc/lms/lms.ini oczywiście istnieje, jest do odczytu i posiada informacje o bazie danych.
W kodzie pojawiają się tajemnicze znaczniki
W przypadku, gdy taryf jest kilkadziesiąt lub więcej robi się chaos.
Pomysły:
Co o tym myślicie?
Udało mi się zaktualizować do najnowszej wersji GIT (wcześniejsza wersja miała z 3 miesiące), w tym czasie było dużo zmian m. innymi z demonem. Po upgradzie dostaje:
Database driver 'mysql' does not exist. Could not find '/usr/lib64/lms//mysql.so'.
Z tego co widzę to teraz nie jest generowany plik .so tylko mysql_la-mysql.o, skąd taka zmiana?
Czy wystarczy, że będę używać .o zamiast .so ?
Puste pola:
Witam
W tabeli customers stworzyłem nowe pole nrumowy. Niestety nie wiem jak wyświetlić ten numer w customerinfobox {$customerinfo.nrumowy}. Może ktoś mnie naprowadzić co muszę zrobić?
Chciałbym zrobić na nowo ładowanie configów. Zamiast globalnej tablicy $CONFIG dostępny byłby singleton LMSConfig. Byłaby możliwość ładowania ustawień z plików ini oraz bazy danych, z możliwością rozszerzenia na inne źródła w przyszłości.
Przykładowe użycie wyglądałoby następująco:
LMSConfig::getConfig()->getSection('directories')->getVariable('sys_dir');
LMSConfig::getConfig(array('lms_ini_path' => '/etc/lms/lms2.ini'))->getSection('directories')->getVariable('sys_dir');
LMSConfig::getIniConfig()->getSection('directories')->getVariable('sys_dir');
LMSConfig::getConfig()->getSection('jakas_sekcja_z_bazy')->getVariable('jakas_wartość_z_bazy');
LMSConfig::getDbConfig()->getSection('jakas_sekcja_z_bazy')->getVariable('jakas_wartość_z_bazy');
Zanim zacznę pisać to może ktoś ma jakieś spostrzeżenia do tego pomysłu?
Wydaje mi się że tu jest bug: https://github.com/lmsgit/lms/blob/master/modules/netdevedit.php#L495
brak tej zmiennej powoduje że pozwalamy na współdzielenie adresów MAC.
Natomiast tu: https://github.com/lmsgit/lms/blob/master/modules/nodeadd.php#L118
brak tej zmiennej powoduje że nie pozwalamy na współdzielenie adresów MAC.
Chyba że jednak tak ma być...
Problem wystąpił u klienta w documentadd.html, w linii 39, w funkcji setnumberplan, powstaje gdy w nazwie planu numeracyjnego znajduje się apostrof. Po błedzie nie działa już pozostała część JS na tej stronie :)
Zastanawiam się czy zrobić escape po stronie html, czy lepiej nie dopuszczać do powstawania nazw planów z apostrofami?
Hi,
TinyMCE dont work with czech language.
The problem is in "code name" of language, tinymce uses "cs", but LMS uses "cz". And then LMS set language in TinyMCE, LMS use variable $_ui_language, where is stored "cz" and TinyMCE doesn't know any language like that.
Jeśli taryfa ma niezdefiniowany okres naliczania to podczas tworzenia zobowiązania zawsze będzie kopiowana. Czy to jest bug czy jest w tym jakiś głębszy sens?
Problem od strony technicznej jest w LMSFinanceManager::AddAssignment. Podczas sprawdzania czy taryfa istnieje należałoby dodać warnek "OR period IS NULL".
Pytanie dotyczy: https://github.com/lmsgit/lms/blob/master/modules/invoice_tcpdf.inc.php
Nijak nie rozumiem zasadności umieszczenia jednocześnie ID i PIN na fakturach.
Myślę, że tego typu dane nie powinny znajdować się na fakturze, ale może jestem w błędzie?
Czy można dodać do listy dokumentów nową pozycję - billing.
Można pociągnąć do LMSa biling i odpowiednio go za kategoryzować a następnie udostępnić np. poprzez panel.
Nie wiem jaki był zamysł tego, lecz włącza się je dla komputera a samą informację tworzy w karcie klienta. Czy mógłbym ewentualnie przenieść to wszystko do karty klienta ??
Odpalony wątek, lecą "urządzenie sieciowe jest nieosiągalne" a w sekcji summary [razem] stoi w miejscu.
Podczas gdy urządzenie odpowiada, nie liczy przerw jak i pakietów na które nie odpowiedziało urządzenie.
Nie można utworzyć tabeli nodes.
Błąd występuje w momencie tworzenia kolumny netid.
Usunięcie NOT NULL usuwa ten problem.
Proponuje usunąc z template/default/header.html kod:
<body onload="start_login_timeout({get_conf('phpui.timeout')})">
i zostawić samo <body>
przez ten timeout często trace swoje zapiski. W szczególności, gdy tworzę mailing.
Aktualnie w LMS-UI->IU dla tej opcji jest opis: "Limit wyświetlanych rekordów na jednej stronie bilansu klienta. Domyślnie: 100"
Po zmianie wartości tego parametru nie zmienia się limit rekordów dla konkretnego klienta, tylko dla LMS-UI->Finanse->Historia operacji.
Może to nie jest problem, lecz tylko źle interpretuję ten opis.
Technicy posiadają smartfony z dostępem do internetu, więc zrodził się pomysł.
Mianowice, aby usprawnić przepływ informacji (bynajmniej u nas) przydałaby się mobilna wersja strony terminarza oraz możliwość powiadamiania mail/sms o nowym/zmodyfikowanym zdarzeniu w terminarzu.
Rzucam pomysł pod rozwagę może ktoś dorzuci swoje pięć groszy zanim ja lub ktoś inny podejmie się tematu.
Chciałem trochę odświeżyć frontend, ale według mnie szkoda czasu na grzebanie w obecnym dość archaicznym kodzie. Chcę przerobić aktualny kod na coś zgodnego z HTML5. Teraz pytania, który kierunek obrać:
Domyślnie: templates/default
Nowe szablony: templates/nazwa_szablonu
Inne pomysły?
Nowo generowane noty obciążeniowe, nie uzupełniają w bazie rekordów z danymi wystawcy.
Dokładniej opisałem to pod commitem
9d58511#commitcomment-5850998
W sytuacji gdy mamy taryfę np. 'instalacja', którą dodaję do klienta żeby naliczała się jednorazowo (period = 0), z datą np. 2013/05/01, nie znika po 1 maja. Wyświetla się dalej na karcie klienta, bez zaznaczonego 'Pokaż przeterminowane'. To co zauważyłem, dzieje się tak tylko jeśli dodaliśmy zobowiązanie, które jest taryfą, jeśli zobowiązanie jest zwykłą pozycją z tabeli liabilities (zobowiązanie beztaryfowe) to pozycja normalnie znika.
I teraz pytanie jak zmienić linijkę 2223 w funkcji GetCustomerAssignments() z LMS.class.php, żeby było dobrze. Najprawdopodobniej wadliwa linijka:
AND (a.liabilityid = 0 OR (a.liabilityid != 0 AND (a.at >= ' . $now . ' OR a.at < 531)))' : '')
zastanawiam się czy można tak zrobić:
AND (a.at >= ' . $now . ' OR a.at < 531)' : '')
Po czymś takim, pojawia się to co ma się pojawiać, i nie wiszą już stare zobowiązania jednodniowe, ale nie sprawdzałem wszystkich przypadków.
Chyba, że nie dodajemy takich zobowiązań taryfowych w takiej sytuacji.
Hello
my english is poor, I'm sorry
On the new installation i have problem
/var/www# /var/www/lms/devel/smarty_install.sh
Downloading Smarty sources... done.
Extracting... done.
Merging... cp: target `/var/www/lms/devel/../lib//Smarty/' is not a directory
when I'm create Smarty dir is it ok
Then
Fatal error: cannot connect to database!
/var/log/apache2/error.log
Unable to read ini file! in /var/www/lms/index.php on line 75
editing "index.php" line 75 to /etc/lms/lms.ini then is it ok
when I'm netdevadd
PHP Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/var/www/lms/templates/default/netdevinfobox.html" on line 127 "{if c('phpui.radius')}" unknown function "c" <-- \n thrown in /var/www/lms/lib/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 127,
deleting line 127 in "netdevinfobox.html" if c('phpui.radius')}
is it ok
then
PHP Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/var/www/lms/templates/default/netdevinfobox.html" on line 192 "{/if}" unexpected closing tag <-- \n thrown in /var/www/lms/lib/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 192, referer: http://thor.rajnet.sk/lms/?m=netdevadd
deleting line in "netdevinfobox.html" 192(193) {/if}
is it ok
Witam,
planuje przygotować u siebie taki commit, który rozszerza tabele networks o kolumnę 'hostid'. Hostid to ID hosta z tabeli 'hosts'. Przez co możemy przypisać hosta do konkretnej sieci. Ma to na celu wyłapać z którego routera jest dany adres IP. Będzie można to później wykorzystać np. do arpingowania: arping_helper mógłby wyglądać tak: ssh root@%hostname.example.pl -c 'arping %i -c 1 -w 1.0'.
Zainteresowani, czy macie na to inny pomysł?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.