racktables
6 months agogateways/git-commit: handle new files better
Denis Ovsienko [Wed, 19 Dec 2018 13:01:36 +0000 (13:01 +0000)] 
gateways/git-commit: handle new files better

The script works as expected updating existing files, but to add new
files to the repository things need to be done slightly differently.

[skip ci]

7 months agodisplay file comment in the SELECT (Mantis#1419)
Denis Ovsienko [Mon, 17 Dec 2018 17:51:30 +0000 (17:51 +0000)] 
display file comment in the SELECT (Mantis#1419)

* getAllUnlinkedFiles(): include the beginning of the comment into the
  result and return the result as it is
* renderFilesForEntity(): add a round to build the printSelect() input

7 months agosimplify getFilesOfEntity()
Denis Ovsienko [Mon, 17 Dec 2018 17:39:55 +0000 (17:39 +0000)] 
simplify getFilesOfEntity()

7 months agosqueeze some blank lines
Denis Ovsienko [Mon, 17 Dec 2018 16:55:05 +0000 (16:55 +0000)] 
squeeze some blank lines

[skip ci]

7 months agosyncdomain.php: just use basename()
Denis Ovsienko [Thu, 13 Dec 2018 13:14:14 +0000 (13:14 +0000)] 
syncdomain.php: just use basename()

7 months agofixup indentation in snmp.php
Denis Ovsienko [Tue, 11 Dec 2018 17:01:54 +0000 (17:01 +0000)] 
fixup indentation in snmp.php

[skip ci]

7 months agorefine platform tests further
Denis Ovsienko [Wed, 5 Dec 2018 23:30:04 +0000 (23:30 +0000)] 
refine platform tests further

In platform_is_ok() convert the PHP extension tests to declarations and
describe the impact of a failed test iff the test is not critical for the
core RackTables features to work in the default configuration. Ibid,
display the impact of an optional test in the output table when it fails
(this did not work before because platform_function_test() ignored one of
its parameters). Ibid, for the test just use extension_loaded(). Remove
platform_function_test(), which now has no purpose.

[skip ci]

7 months agoplatform_is_ok(): add a non-critical test for cURL
Denis Ovsienko [Wed, 5 Dec 2018 16:19:33 +0000 (16:19 +0000)] 
platform_is_ok(): add a non-critical test for cURL

[skip ci]

7 months agosimplify renderObjectHistory()
Denis Ovsienko [Tue, 4 Dec 2018 12:21:33 +0000 (12:21 +0000)] 
simplify renderObjectHistory()

Just use renderTableViewer(), this among other things yields a better
formatted table.

[skip ci]

7 months agoadd basic integrity checks for config variables
Denis Ovsienko [Fri, 30 Nov 2018 23:43:25 +0000 (23:43 +0000)] 
add basic integrity checks for config variables

Use the configuration defaults data in two new checks in
renderDataIntegrityReport(). One of the checks immediately fails because
the data in getConfigDefaults() did not include ENABLE_BULKPORT_FORM, so
fix that right away.

7 months agomake the configuration defaults data shareable
Denis Ovsienko [Fri, 30 Nov 2018 22:42:21 +0000 (22:42 +0000)] 
make the configuration defaults data shareable

Move the array from resetUIConfig() to a new function,
getConfigDefaults(). Place the new function in dictionary.php as that is
the best way to make it available in the installer (which still does not
use it though). Update renderUIResetForm() to use a new opcode that
works better with the hardcoded require_once in index.php.

7 months agotests: update RenderReportsTest
Denis Ovsienko [Fri, 30 Nov 2018 21:01:09 +0000 (21:01 +0000)] 
tests: update RenderReportsTest

Assert that the integrity report prints the "all clear" message.

Remove some dead code: the class props are no longer required since
commit 4829189; the test condition is always true because
renderLocalReports() does not exist since commit df8739f.

7 months agorenderTableViewer(): quote the TD class value
Denis Ovsienko [Fri, 30 Nov 2018 20:29:31 +0000 (20:29 +0000)] 
renderTableViewer(): quote the TD class value

This way specifying more than one class in the calling function isn't
more difficult than it should be.

[skip ci]

7 months agomake RE_L2_SOLID uppercase-only
Denis Ovsienko [Fri, 30 Nov 2018 19:06:52 +0000 (19:06 +0000)] 
make RE_L2_SOLID uppercase-only

This is a fixup to commit 97792a8.

7 months agoUpdate dictionary.php
rychka [Fri, 30 Nov 2018 10:54:13 +0000 (13:54 +0300)] 
Update dictionary.php

add SNMP support for HP Aruba 2530 48 PoE+ Switch and HP Aruba 2530 24 PoE+ Switch (Mantis#1641)

7 months agoUpdate snmp.php
rychka [Fri, 30 Nov 2018 10:52:32 +0000 (13:52 +0300)] 
Update snmp.php

add SNMP support for HP Aruba 2530 48 PoE+ Switch and HP Aruba 2530 24 PoE+ Switch (Mantis#1641)

7 months agorenderObject(): align some TDs in the NATv4 tables
Denis Ovsienko [Wed, 28 Nov 2018 18:15:58 +0000 (18:15 +0000)] 
renderObject(): align some TDs in the NATv4 tables

[skip ci]

7 months agoeliminate a global variable
Denis Ovsienko [Wed, 28 Nov 2018 13:07:02 +0000 (13:07 +0000)] 
eliminate a global variable

Rewrite addPageHeader() so it does not need the helper array.

7 months agorename getObjectClass() to getCellClass()
Denis Ovsienko [Wed, 28 Nov 2018 12:43:58 +0000 (12:43 +0000)] 
rename getObjectClass() to getCellClass()

This completes the change started in the previous commit -- the function
input may come from realms other than 'object'. Update the functions
below.

* printObjectDetailsForRenderRack()
* renderRack()
* renderDepot()
* renderIPSpaceRecords()
* renderAtomGrid()
* renderCell()
* renderRouterCell()
* renderSLBEntityCell()

7 months agofix colour handling in user account search results
Denis Ovsienko [Wed, 28 Nov 2018 12:22:07 +0000 (12:22 +0000)] 
fix colour handling in user account search results

setEntityColors() caused the following log messages when the search
results included any local user accounts:

PHP Notice:  Undefined index: etags in .../inc/interface-lib.php on
line 1344
PHP Warning:  Invalid argument supplied for foreach() in
.../inc/interface-lib.php on line 1344

This was caused by getAccountSearchResult() constructing and returning
a mock user cell structure, which through the search results eventually
ended up in renderCell(). The latter used to have a workaround for that
specific case (see commit 573214e), but only after the call to
setEntityColors(), which needs the 'etags' data, even when it is an
empty list.

Remove the workaround from renderCell() and remove the unnecessary
custom code from getAccountSearchResult(), which now just calls
spotEntity() like other similar search functions. That delivers 'etags'
to renderCell(), which now has input for getObjectClass(), which now
yields another log message:

PHP Notice:  Undefined index: id in .../interface-lib.php on line 1302

To fix that update getObjectClass() to use the proper index for user
cells like mkCellA() does.

[skip ci]

7 months agoreplace includeJQueryUI() with 2 nullary functions
Denis Ovsienko [Mon, 26 Nov 2018 19:16:23 +0000 (19:16 +0000)] 
replace includeJQueryUI() with 2 nullary functions

The only argument to this function was always a constant.

* includeJQueryUI(): mark deprecated
* includeJQueryUIJS(): a new function
* includeJQueryUICSS(): a new function
* enableTagsPicker(): update to use the new functions
* renderRackSortForm(): idem
* renderGridForm: idem
* renderIPForObject: idem
* renderRackSpaceForObject: idem
* renderIPAddressAllocations: idem
* renderPopupPortSelector: idem

[skip ci]

7 months agospell PHP FALSE in upppercase
Denis Ovsienko [Mon, 26 Nov 2018 18:52:03 +0000 (18:52 +0000)] 
spell PHP FALSE in upppercase

[skip ci]

7 months agodeprecate escapeString()
Denis Ovsienko [Tue, 20 Nov 2018 10:10:58 +0000 (10:10 +0000)] 
deprecate escapeString()

[skip ci]

7 months agofixup the previous commit
Denis Ovsienko [Mon, 19 Nov 2018 18:14:46 +0000 (18:14 +0000)] 
fixup the previous commit

Move RE_STATIC_URI from solutions.php to functions.php and address
assorted non-critical issues:

* isUri(): use the same regexp as the chrome module does (update the
  tests respectively)
* addPageHeader(): a new helper function with the common code
* addJSExternal(): simplify by using the above function
* addJSInternal(): idem
* addJSText(): idem
* addCSSExternal(): idem
* addCSSInternal(): idem
* addCSSText(): idem
* checkColumnOfRadios8021Q(): update to make a clean call to addJSText()
* renderRackCodeViewer(): idem
* renderRackCodeEditor(): idem
* addParentNodeOptionsJS(): idem
* getOptionTree(): idem
* renderLocationFilterPortlet(): idem

Put some lettercase and punctuation right and add some missing comments
while at it.

7 months agoenable CSS and JavaScript from external URLs
netniV [Tue, 13 Nov 2018 10:45:20 +0000 (10:45 +0000)] 
enable CSS and JavaScript from external URLs

7 months agotests: default to PHPUnit versions 6 and 7
Denis Ovsienko [Mon, 19 Nov 2018 09:21:47 +0000 (09:21 +0000)] 
tests: default to PHPUnit versions 6 and 7

Versions 4 and 5 still work (that's what is in Travis CI PHP versions
5.5 and 5.6 respectively) with the right bootstrap file, but they are
not available anymore on the system where I happen to run phpunit
without express.sh.

[skip ci]

8 months agorename VIRTUAL_OBJ_LISTSRC to VIRTUAL_OBJ_CSV
Denis Ovsienko [Fri, 16 Nov 2018 15:28:17 +0000 (15:28 +0000)] 
rename VIRTUAL_OBJ_LISTSRC to VIRTUAL_OBJ_CSV

After commit 8dc2a6c the value is no longer a RackCode string, so change
the name for clarity.

8 months agoimprove the object NATv4 tab trigger
Denis Ovsienko [Fri, 16 Nov 2018 14:40:05 +0000 (14:40 +0000)] 
improve the object NATv4 tab trigger

* getNATv4CountForObject(): a new helper function
* trigger_natv4(): update to work like trigger_ip(), i.e. keep the tab
  available so long as the object has associated items

Add some tests while at it.

8 months agoreplace remaining niftyString() occurrences
Denis Ovsienko [Wed, 14 Nov 2018 10:37:52 +0000 (10:37 +0000)] 
replace remaining niftyString() occurrences

This seems to be the last commit in the series, the previous one was
commit a0bdf6d.

* formatVLANAsLabel()
* formatVLANAsPlainText()
* formatVLANAsShortLink()
* formatPatchCableHeapAsPlainText()
* dynamic_title_decoder_throwing()

[skip ci]

8 months agofix allObjectLogs() after the previous commit
Denis Ovsienko [Tue, 13 Nov 2018 16:37:09 +0000 (16:37 +0000)] 
fix allObjectLogs() after the previous commit

Make the <BR> work again, though keep escaping the user name.

[skip ci]

8 months agofix object log TD escaping after commit 274f160
Denis Ovsienko [Tue, 13 Nov 2018 16:24:22 +0000 (16:24 +0000)] 
fix object log TD escaping after commit 274f160

In allObjectLogs() it is the comment column that renderTableViewer()
ought not escape, not the date/user column.

[skip ci]

8 months agotests: use myString() and myStringStatic() more
Denis Ovsienko [Mon, 12 Nov 2018 16:28:06 +0000 (16:28 +0000)] 
tests: use myString() and myStringStatic() more

* EmptySQLWhereTest
* LinkTriggerTest
* RenderDepotTest
* TagTreeCircularReferenceTest

8 months agotests: skip symlinks in tests/
Denis Ovsienko [Mon, 12 Nov 2018 16:25:33 +0000 (16:25 +0000)] 
tests: skip symlinks in tests/

This removes bootstrap.php from the list and the totals.

8 months agotests: check init.php for syntax errors
Denis Ovsienko [Mon, 12 Nov 2018 15:49:26 +0000 (15:49 +0000)] 
tests: check init.php for syntax errors

In express.sh move the checks code out to functions and leave the
simplified main loops to decide which check to run and to count the
errors. Have init.php checked at least syntax-wise.

While at it, update a comment and increase the format width to
accommodate the recently added long file name.

8 months agodrop support for $localreports
Denis Ovsienko [Mon, 12 Nov 2018 10:52:34 +0000 (10:52 +0000)] 
drop support for $localreports

10 years ago this feature seemed to be a useful shortcut, but based on
the experience with both free and proprietary plugins since then it
became clear that it is either not used at all, or can be trivially
implemented without the code in RackTables when really required. Remove
renderLocalReports() and trigger_localreports().

8 months agoadd and use RTTestCase::myStringStatic()
Denis Ovsienko [Mon, 12 Nov 2018 10:47:13 +0000 (10:47 +0000)] 
add and use RTTestCase::myStringStatic()

Even after the introduction of RTTestCase::myString() some tests
continued to use fixed strings for the database props naming in their
static setup methods. When such a test failed in a way that prevented the
teardown method to run, that would fail subsequent attempts to run the
setup method until the props were manually removed or the unit test
database contents was reset.

Introduce a static counterpart of the existing solution and update the
following classes to use it:

* EntityLinkTriggerTest
* GetChildrenListTest
* ObjectCircularReferenceTest
* ObjectLogTest

8 months agorenderTagStats(): remove an unused global
Denis Ovsienko [Mon, 12 Nov 2018 08:51:30 +0000 (08:51 +0000)] 
renderTagStats(): remove an unused global

8 months agofixup some language in the installer messages
Denis Ovsienko [Sun, 11 Nov 2018 21:56:24 +0000 (21:56 +0000)] 
fixup some language in the installer messages

* not_already_installed()
* check_config_access()

[skip ci]

8 months agogateways/git-commit: accept a full commit message
Denis Ovsienko [Fri, 9 Nov 2018 16:19:55 +0000 (16:19 +0000)] 
gateways/git-commit: accept a full commit message

The script used to prepend the first line to the provided message, which
isn't always convenient. Change that and make the message parameter
optional.

[skip ci]

8 months agorenderServerConfigurationReport(): handle InnoDB failures better
Denis Ovsienko [Fri, 9 Nov 2018 15:01:10 +0000 (15:01 +0000)] 
renderServerConfigurationReport(): handle InnoDB failures better

The InnoDB test fails trying to create a trigger when binary logging is
enabled in the database server (in particular, that is required for the
old-style master-slave replication setup). This used to result in an
unhandled PDOException, which effectively blinded all other tests.

Use the exception to generate a separate specific error message and to
skip the InnoDB test only.

8 months agofixup some whitespace in the PHP code
Denis Ovsienko [Fri, 9 Nov 2018 11:42:44 +0000 (11:42 +0000)] 
fixup some whitespace in the PHP code

[skip ci]

8 months agorenderRackSpaceForObject(): improve page layout a bit
Denis Ovsienko [Thu, 8 Nov 2018 22:48:42 +0000 (22:48 +0000)] 
renderRackSpaceForObject(): improve page layout a bit

As a follow-up to commits a302199 and d69e5d6, align the rack diagrams to
the row bottom. Make the labels above them clickable and prepended with
respective row name(s). Add a line break between the TEXTAREA and the
form submit button.

[skip ci]

8 months agoreorganize the reports a little
Denis Ovsienko [Thu, 8 Nov 2018 21:42:29 +0000 (21:42 +0000)] 
reorganize the reports a little

* renderRackCodeReports(): merge into renderSystemReports()
* renderIPv4Reports(): idem
* renderIPv6Reports(): idem
* renderPortsReport(): idem
* renderReports(): change the meters TD to fit better into a wider table
* renderTagStats(): update the table style for readability

8 months agofixup a message code in updateUI()
Denis Ovsienko [Wed, 7 Nov 2018 22:33:04 +0000 (22:33 +0000)] 
fixup a message code in updateUI()

[skip ci]

8 months agoisConfigVarChanged(): use intval() too
Denis Ovsienko [Wed, 7 Nov 2018 22:23:43 +0000 (22:23 +0000)] 
isConfigVarChanged(): use intval() too

This fixes another PHP warning with PHP 7.1 (see commit 272a945).

A non-numeric value encountered in .../inc/functions.php on line 5536

[skip ci]

8 months agoshow colours on the cell background too
Denis Ovsienko [Wed, 7 Nov 2018 18:04:37 +0000 (18:04 +0000)] 
show colours on the cell background too

* renderCell()
* renderSLBEntityCell()
* renderRouterCell()

8 months agorefine renderCellList()
Denis Ovsienko [Wed, 7 Nov 2018 17:21:00 +0000 (17:21 +0000)] 
refine renderCellList()

Do zebra with CSS, not PHP; when the input list is empty display a
message instead of a table with no rows.

[skip ci]

8 months agoremove more unused globals
Denis Ovsienko [Wed, 7 Nov 2018 17:19:28 +0000 (17:19 +0000)] 
remove more unused globals

* renderEditObjectForm()
* renderEditRackForm()
* renderIPv4NetworkAddresses()
* renderIPNetworkProperties()
* renderEditLocationForm()

[skip ci]

8 months agofix some HTML syntax in getColorSelect()
Denis Ovsienko [Wed, 7 Nov 2018 14:43:35 +0000 (14:43 +0000)] 
fix some HTML syntax in getColorSelect()

[skip ci]

8 months agoupdate a comment
Denis Ovsienko [Wed, 7 Nov 2018 10:11:58 +0000 (10:11 +0000)] 
update a comment

[skip ci]

8 months agoput some tag colour CSS processing right
Denis Ovsienko [Tue, 6 Nov 2018 14:09:59 +0000 (14:09 +0000)] 
put some tag colour CSS processing right

getObjectClass() used to accept as one of its parameters a custom string
to prepend to the generated CSS, but the functions that called it didn't
always properly decide what that string should be, if any. Modify
getObjectClass() to accept a mandatory context code, this makes it a
single place to yield the CSS for this purpose, and makes the code in the
calling functions easier to follow.

Fix printObjectDetailsForRenderRack() to highlight the currently selected
nested object with coloured tags.

Fix renderAtomGrid() not to highlight mounted objects with coloured tags
just because they have the "has_problems" flag set.

Fix the same issue in renderRack(), and fix it to highlight the currently
selected zero-U object with coloured tags.

Remove additional zebra style from renderDepot() to make the list of
objects look consistently with the list of networks (which looks better).

In renderIPSpaceRecords() simplify and comment related code.

8 months agoupgrade CodeMirror from 5.40.2 to 5.41.0
Denis Ovsienko [Sat, 3 Nov 2018 09:51:27 +0000 (09:51 +0000)] 
upgrade CodeMirror from 5.40.2 to 5.41.0

[skip ci]

8 months agoshow object names in allocated units (Mantis#1711)
Denis Ovsienko [Fri, 2 Nov 2018 19:28:50 +0000 (19:28 +0000)] 
show object names in allocated units (Mantis#1711)

This change implements the original idea by Bram.

renderAtomGrid() generates forms built into rack diagrams to allow the
user to adjust rack design and to mark rack-specific problems and to
change rackspace allocation for an object. The function used to put a
checkbox into each atom of the diagram regardless if specific atoms
belong to the context (where they did not belong, the checkboxes were
disabled). This was supposedly done to keep the rack diagram unit rows
exactly the same height.

However, that was not convenient as the user could not correlate the
checkboxes of interest with neither names nor exact boundaries of known
objects in the rack and often had to rely on unit numbers only or to flip
between the default and the rackspace tabs.

Port some logic from renderRack() to renderAtomGrid() to show mounted
objects on the said forms. Amend addBulkSelectorJS() to keep the bulk
selector away from the object hyperlinks, which are much more useful if
they remain clickable, especially on the object rackspace tab.

8 months agorefine other rackspace checkboxes JavaScript props
Denis Ovsienko [Fri, 2 Nov 2018 19:06:14 +0000 (19:06 +0000)] 
refine other rackspace checkboxes JavaScript props

8 months agorenderRackSpaceForObject(): wrap LABEL around INPUT
Denis Ovsienko [Fri, 2 Nov 2018 18:48:56 +0000 (18:48 +0000)] 
renderRackSpaceForObject(): wrap LABEL around INPUT

8 months agoimprove the rackspace atoms bulk selector
Denis Ovsienko [Fri, 2 Nov 2018 18:44:55 +0000 (18:44 +0000)] 
improve the rackspace atoms bulk selector

When the rackspace tab summoned more than one rack for the current
object, each rack diagram TABLE would have the same ID. Although this
turned out to work somehow with a single JavaScript block that addressed
the target element by ID, it is better to make it a more correct HTML
document by giving each diagram TABLE a unique ID and amending the
JavaScript respectively.

Also specify that the bulk selector should keep away from TH elements as
the row and column checkbox toggling already uses them.

Also enable the bulk selector on the rack design and rack problems tabs.

* addBulkSelectorJS(): new function to generate the JavaScript
* renderRackSpaceForObject(): use that instead of the fixed JavaScript
* renderGridForm(): enable the selector too
* js/bulkselector.js: delete the file (again)

8 months agomake the "Uncheck all" button rack-specific
Denis Ovsienko [Fri, 2 Nov 2018 18:19:34 +0000 (18:19 +0000)] 
make the "Uncheck all" button rack-specific

When the rackspace tab summoned more than one rack for the current
object, there was a button under each rack, but each button would unset
all checkboxes on the page, so make it work more like it looks.

* uncheckAll(): replace with uncheckAllAtoms(), which unchecks all
  checkboxes within the specified rack only
* renderRackSpaceForObject(): provide required rack-specific arguments to
  the JavaScript function

8 months agoprintObjectDetailsForRenderRack(): swap if() branches
Denis Ovsienko [Fri, 2 Nov 2018 13:48:50 +0000 (13:48 +0000)] 
printObjectDetailsForRenderRack(): swap if() branches

Make it easier to read.

8 months agosimplify markupAtomGrid()
Denis Ovsienko [Fri, 2 Nov 2018 12:39:09 +0000 (12:39 +0000)] 
simplify markupAtomGrid()

8 months agoremove an unnecessary function call
Denis Ovsienko [Fri, 2 Nov 2018 12:24:06 +0000 (12:24 +0000)] 
remove an unnecessary function call

renderMolecule() does not use any of the data set by markAllSpans().

8 months agofixup a comment in pi.css
Denis Ovsienko [Fri, 2 Nov 2018 11:55:54 +0000 (11:55 +0000)] 
fixup a comment in pi.css

8 months agorefine rack unit number inversion
Denis Ovsienko [Fri, 2 Nov 2018 11:08:21 +0000 (11:08 +0000)] 
refine rack unit number inversion

* inverseRackUnit(): let the calling function see if the rack needs its
  unit numbers reversed as this property is the same for each unit; this
  eliminates excess calls to considerConfiguredConstraint() and amounts
  of data from the signature
* renderRack(): update to accommodate the change above
* renderMolecule(): idem
* renderAtomGrid(): idem

8 months agoremove a stale comment
Denis Ovsienko [Fri, 2 Nov 2018 10:12:49 +0000 (10:12 +0000)] 
remove a stale comment

[skip ci]

8 months agofix array printing in exception handlers
Denis Ovsienko [Thu, 1 Nov 2018 23:45:50 +0000 (23:45 +0000)] 
fix array printing in exception handlers

PHP provides means to encode arrays in HTTP request parameters. However,
the existing dumpArray() function used not to print such parameters
properly, also resulting in two PHP warnings. Add another function,
dumpArrayElement(), and rearrange the code to distinguish integers,
arrays and other types (i.e. strings). Drop a reference to an undefined
CSS class while at it.

[skip ci]

8 months agofixup an SQL query in the integrity report
Denis Ovsienko [Thu, 1 Nov 2018 18:20:25 +0000 (18:20 +0000)] 
fixup an SQL query in the integrity report

Have renderDataIntegrityReport() test both parent_objtype_id and
child_objtype_id in ObjectParentCompat when looking for any rows in
EntityLink that do not meet the constraint. This lets the report find
some rows that it did not before.

[skip ci]

8 months agodelete the user tags too (fixup commit ec78e24)
Denis Ovsienko [Thu, 1 Nov 2018 13:17:08 +0000 (13:17 +0000)] 
delete the user tags too (fixup commit ec78e24)

* commitDeleteUserAccount()

[skip ci]

8 months agoAllow webfonts through CSS (#230)
Mark Brugnoli-Vinten [Tue, 30 Oct 2018 21:44:19 +0000 (21:44 +0000)] 
Allow webfonts through CSS (#230)

8 months agoadd D-Link DES-3028 SNMP support (#229)
rychka [Tue, 30 Oct 2018 20:28:38 +0000 (23:28 +0300)] 
add D-Link DES-3028 SNMP support (#229)

9 months agoadd some finish to the HP and IOS 15 code
Denis Ovsienko [Wed, 17 Oct 2018 18:18:52 +0000 (19:18 +0100)] 
add some finish to the HP and IOS 15 code

9 months agorelax whitespace in some IOS 12 regexps
Denis Ovsienko [Wed, 17 Oct 2018 22:56:53 +0000 (23:56 +0100)] 
relax whitespace in some IOS 12 regexps

As far as a draft commit in pull request #225 went, this is supposed to
improve compatibility with IOS 15.

[skip ci]

9 months agonew breeds for HP Procurve and ios15; unit tests for HP Procurve breed 225/head
Vasilii Shashkov [Mon, 13 Aug 2018 12:34:11 +0000 (19:34 +0700)] 
new breeds for HP Procurve and ios15; unit tests for HP Procurve breed

9 months agoput some more IAE/IRAE exceptions right
Denis Ovsienko [Fri, 12 Oct 2018 11:14:53 +0000 (12:14 +0100)] 
put some more IAE/IRAE exceptions right

The functions below did not take into account that the exception could
already be an instance of IRAE raised by assertStringArg() because the
argument was absent from the request. In that case the call to newIRAE()
would result in a PHP warning:

Undefined index: address in .../wwwroot/inc/exceptions.php on line 188

* assertIPArg()
* assertIPv4Arg()
* assertIPv6Arg()

9 months agoupgrade CodeMirror from 5.39.0 to 5.40.2
Denis Ovsienko [Thu, 20 Sep 2018 16:38:17 +0000 (17:38 +0100)] 
upgrade CodeMirror from 5.39.0 to 5.40.2

[skip ci]

9 months agotests: also test deleting user accounts
Denis Ovsienko [Tue, 18 Sep 2018 08:52:24 +0000 (09:52 +0100)] 
tests: also test deleting user accounts

10 months agofixup the previous commit
Denis Ovsienko [Mon, 17 Sep 2018 17:13:40 +0000 (18:13 +0100)] 
fixup the previous commit

Move the call to sha1() back into updateUser() to fix the test that
properly failed after the unintended API change. Add missing hash
argument assertions to commitCreateUserAccount() and
commitUpdateUserAccount() and cover these with new tests. While at it,
update some code for clarity.

10 months agorefine layering around updating user accounts
Denis Ovsienko [Mon, 17 Sep 2018 16:38:36 +0000 (17:38 +0100)] 
refine layering around updating user accounts

Move the logic from updateUser() to commitUpdateUserAccount() as that's
where it belongs.

10 months agoallow to delete local user accounts (Mantis#1089)
Denis Ovsienko [Mon, 17 Sep 2018 15:52:11 +0000 (16:52 +0100)] 
allow to delete local user accounts (Mantis#1089)

* commitDeleteUserAccount(): new database interface function
* renderUserListEditor(): extend the form with a "delete" button
* deleteUser(): a new ophandler function

10 months agoAdded entries for some other Dell machines that were missing that we have. 226/head
Michael C Tiernan [Tue, 21 Aug 2018 12:22:01 +0000 (08:22 -0400)] 
Added entries for some other Dell machines that were missing that we have.

11 months agoMerge pull request #224 from xornet-sl/master
Alexey Andriyanov [Fri, 3 Aug 2018 12:44:12 +0000 (15:44 +0300)] 
Merge pull request #224 from xornet-sl/master

New iif_type SFP28

11 months agoadd Huawei CE6865-48S8CQ-EI 224/head
Vladimir Sukhonosov [Thu, 2 Aug 2018 17:25:15 +0000 (20:25 +0300)] 
add Huawei CE6865-48S8CQ-EI

11 months agoadd hce snmp sync support for 25G ports
Vladimir Sukhonosov [Thu, 2 Aug 2018 17:06:24 +0000 (20:06 +0300)] 
add hce snmp sync support for 25G ports

11 months agoNew iif_type SFP28
Vladimir Sukhonosov [Thu, 2 Aug 2018 16:14:16 +0000 (19:14 +0300)] 
New iif_type SFP28

11 months agobuildVLANFilter: allow 'A1' config for anymode ports
Alexey Andriyanov [Tue, 24 Jul 2018 15:48:41 +0000 (18:48 +0300)] 
buildVLANFilter: allow 'A1' config for anymode ports

11 months agodictionary: add a few Arista switches
Denis Ovsienko [Mon, 23 Jul 2018 10:58:20 +0000 (11:58 +0100)] 
dictionary: add a few Arista switches

[skip ci]

12 months agofixup some code style
Denis Ovsienko [Fri, 13 Jul 2018 15:54:38 +0000 (16:54 +0100)] 
fixup some code style

[skip ci]

12 months agoprintTagsPickerUl(): escape the tag descriptions
Denis Ovsienko [Fri, 13 Jul 2018 15:09:49 +0000 (16:09 +0100)] 
printTagsPickerUl(): escape the tag descriptions

One more bug fix after commit 660b657. If a tag description contained a
single quote, json_encode() would produce a string that would break HTML
syntax for the UL that feeds TagIt! JavaScript. Then the entity
properties tab would display no tags and sumbitting the form would remote
all tags from the entity.

[skip ci]

12 months agofixup once again: spell function name properly
Denis Ovsienko [Fri, 13 Jul 2018 11:38:28 +0000 (12:38 +0100)] 
fixup once again: spell function name properly

12 months agofixup the previous commit not to fail in Travis CI
Denis Ovsienko [Fri, 13 Jul 2018 11:35:43 +0000 (12:35 +0100)] 
fixup the previous commit not to fail in Travis CI

12 months agoadd a new helper script -- reload_dictionary.php
Denis Ovsienko [Fri, 13 Jul 2018 11:14:04 +0000 (12:14 +0100)] 
add a new helper script -- reload_dictionary.php

12 months agoimprove reloadDictionary()
Denis Ovsienko [Fri, 13 Jul 2018 11:12:11 +0000 (12:12 +0100)] 
improve reloadDictionary()

Make the maximum amount of rows per query the function argument rather
than hard-code it. Get rid of the previously unused argument. Add a
helper function to make the code cleaner.

12 months agouse require_once in the CLI scripts
Denis Ovsienko [Fri, 13 Jul 2018 09:50:04 +0000 (10:50 +0100)] 
use require_once in the CLI scripts

[skip ci]

12 months agoformatAgeSeconds(): spell month(s) as "mo"
Denis Ovsienko [Thu, 12 Jul 2018 16:01:55 +0000 (17:01 +0100)] 
formatAgeSeconds(): spell month(s) as "mo"

Various users including myself keep reading strings like "10m ago" as
"10 minutes ago", not "10 months ago". Disambiguate the language.

12 months agorefine some CSS to avoid repetition
Denis Ovsienko [Wed, 11 Jul 2018 13:28:12 +0000 (14:28 +0100)] 
refine some CSS to avoid repetition

This is another small fixup to commit 660b657.

[skip ci]

12 months agorefine a couple exception classes
Denis Ovsienko [Sat, 7 Jul 2018 14:45:57 +0000 (15:45 +0100)] 
refine a couple exception classes

* createIPv4Prefix(): throw IAE instead of IRAE, as the user interface
  is not the only valid path to this code
* createIPv6Prefix(): idem
* addIPv4Prefix(): take care of the IAE->IRAE conversion
* addIPv6Prefix(): idem

12 months agoremove no-op code from buildTagCheckboxRows()
Denis Ovsienko [Sat, 7 Jul 2018 09:04:35 +0000 (10:04 +0100)] 
remove no-op code from buildTagCheckboxRows()

The only function that calls buildTagCheckboxRows() is
printTagCheckboxTable(), and the latter does not look for the "color"
index in the rows returned by the former.

12 months agoserializeTags(): refine the newlines in the TITLE
Denis Ovsienko [Fri, 6 Jul 2018 21:55:03 +0000 (22:55 +0100)] 
serializeTags(): refine the newlines in the TITLE

This is a small fixup to commit 660b657. Do not prepend the tag
description with newlines if the TITLE does not contain any other text
before the description.

12 months agoremove dead code related to magic_quotes
Denis Ovsienko [Fri, 6 Jul 2018 11:43:13 +0000 (12:43 +0100)] 
remove dead code related to magic_quotes

RackTables requires PHP 5.5 or newer, and the magic_quotes feature had
been removed in PHP 5.4.0. In modern PHP get_magic_quotes_gpc() exists,
but always returns FALSE.

12 months agofix some more language in the comments
Denis Ovsienko [Fri, 6 Jul 2018 11:28:26 +0000 (12:28 +0100)] 
fix some more language in the comments

[skip ci]

12 months agogetAccessPortControlCode(): add missing quotes
Denis Ovsienko [Fri, 6 Jul 2018 10:33:29 +0000 (11:33 +0100)] 
getAccessPortControlCode(): add missing quotes

The HTML form was broken for port names that contain a space.

12 months agosave8021QPorts(): refine some code
Denis Ovsienko [Fri, 6 Jul 2018 08:56:05 +0000 (09:56 +0100)] 
save8021QPorts(): refine some code

Use the switch default, add a missing assertion, update a comment.