Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HuasoFoundries/phpPgAdmin6.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.data.methods.txt241
-rw-r--r--.php_cs142
-rw-r--r--.php_cs.cache1
-rw-r--r--.scrutinizer.yml24
-rw-r--r--.styleci.yml16
-rw-r--r--Makefile3
-rw-r--r--assets/js/jquery-3.4.1.min.js2
-rw-r--r--assets/js/jquery-3.4.1.min.map1
-rw-r--r--assets/templates/browser.twig66
-rw-r--r--assets/templates/components/common_head.twig10
-rw-r--r--assets/templates/details_components/footer_scripts.twig (renamed from assets/templates/components/footer_scripts.twig)10
-rw-r--r--assets/templates/footer.twig2
-rw-r--r--assets/templates/footer_iframe.twig27
-rw-r--r--assets/templates/iframe_view.twig18
-rw-r--r--assets/templates/main.twig43
-rw-r--r--assets/templates/main_sections/browser.twig23
-rw-r--r--assets/templates/main_sections/main_footer.twig59
-rw-r--r--assets/themes/global.less107
-rw-r--r--index.php1
-rwxr-xr-xsimple_to_phpunit.php2
-rw-r--r--src/classes/ADONewConnection.php6
-rw-r--r--src/classes/ADORecordSet.php11
-rw-r--r--src/classes/ADOdbException.php5
-rw-r--r--src/classes/ArrayRecordSet.php6
-rw-r--r--src/classes/ContainerUtils.php78
-rw-r--r--src/classes/Misc.php75
-rw-r--r--src/classes/PluginManager.php4
-rw-r--r--src/classes/Translations.php2
-rw-r--r--src/controllers/AcinsertController.php4
-rw-r--r--src/controllers/AggregatesController.php4
-rw-r--r--src/controllers/AlldbController.php4
-rw-r--r--src/controllers/BaseController.php112
-rw-r--r--src/controllers/BrowserController.php4
-rw-r--r--src/controllers/CastsController.php4
-rw-r--r--src/controllers/ColpropertiesController.php4
-rw-r--r--src/controllers/ConstraintsController.php16
-rw-r--r--src/controllers/ConversionsController.php4
-rw-r--r--src/controllers/DatabaseController.php152
-rw-r--r--src/controllers/DataexportController.php4
-rw-r--r--src/controllers/DataimportController.php10
-rw-r--r--src/controllers/DbexportController.php4
-rw-r--r--src/controllers/DisplayController.php16
-rw-r--r--src/controllers/DomainsController.php4
-rw-r--r--src/controllers/FulltextController.php4
-rw-r--r--src/controllers/FunctionsController.php24
-rw-r--r--src/controllers/GroupsController.php4
-rw-r--r--src/controllers/HelpController.php4
-rw-r--r--src/controllers/HistoryController.php48
-rw-r--r--src/controllers/IndexesController.php4
-rw-r--r--src/controllers/InfoController.php12
-rw-r--r--src/controllers/IntroController.php4
-rw-r--r--src/controllers/LanguagesController.php4
-rw-r--r--src/controllers/LoginController.php4
-rw-r--r--src/controllers/MaterializedviewpropertiesController.php4
-rw-r--r--src/controllers/MaterializedviewsController.php4
-rw-r--r--src/controllers/OpclassesController.php4
-rw-r--r--src/controllers/OperatorsController.php4
-rw-r--r--src/controllers/PrivilegesController.php6
-rw-r--r--src/controllers/RolesController.php4
-rw-r--r--src/controllers/RulesController.php4
-rw-r--r--src/controllers/SchemasController.php4
-rw-r--r--src/controllers/SequencesController.php4
-rw-r--r--src/controllers/ServersController.php4
-rw-r--r--src/controllers/SqlController.php10
-rw-r--r--src/controllers/SqleditController.php60
-rw-r--r--src/controllers/TablesController.php282
-rw-r--r--src/controllers/TablespacesController.php4
-rw-r--r--src/controllers/TblpropertiesController.php8
-rw-r--r--src/controllers/TriggersController.php4
-rw-r--r--src/controllers/TypesController.php10
-rw-r--r--src/controllers/UsersController.php4
-rw-r--r--src/controllers/ViewpropertiesController.php4
-rw-r--r--src/controllers/ViewsController.php4
-rw-r--r--src/decorators/ActionUrlDecorator.php2
-rw-r--r--src/decorators/ArrayMergeDecorator.php2
-rw-r--r--src/decorators/BranchUrlDecorator.php2
-rw-r--r--src/decorators/CallbackDecorator.php2
-rw-r--r--src/decorators/ConcatDecorator.php2
-rw-r--r--src/decorators/Decorator.php2
-rw-r--r--src/decorators/FieldDecorator.php2
-rw-r--r--src/decorators/IfEmptyDecorator.php2
-rw-r--r--src/decorators/RedirectUrlDecorator.php2
-rw-r--r--src/decorators/ReplaceDecorator.php2
-rw-r--r--src/decorators/UrlDecorator.php2
-rw-r--r--src/help/PostgresDoc10.php2
-rw-r--r--src/help/PostgresDoc74.php2
-rw-r--r--src/help/PostgresDoc80.php2
-rw-r--r--src/help/PostgresDoc81.php2
-rw-r--r--src/help/PostgresDoc82.php2
-rw-r--r--src/help/PostgresDoc83.php2
-rw-r--r--src/help/PostgresDoc84.php2
-rw-r--r--src/help/PostgresDoc90.php2
-rw-r--r--src/help/PostgresDoc91.php2
-rw-r--r--src/help/PostgresDoc92.php2
-rw-r--r--src/help/PostgresDoc93.php2
-rw-r--r--src/help/PostgresDoc94.php2
-rw-r--r--src/help/PostgresDoc95.php2
-rw-r--r--src/help/PostgresDoc96.php2
-rw-r--r--src/lib.inc.php36
-rw-r--r--src/middleware/PopulateRequestResponse.php7
-rw-r--r--src/traits/AdminTrait.php2
-rw-r--r--src/traits/ExportTrait.php2
-rw-r--r--src/traits/FormTrait.php2
-rw-r--r--src/traits/HelperTrait.php4
-rw-r--r--src/traits/InsertEditRowTrait.php2
-rw-r--r--src/traits/MiscTrait.php6
-rw-r--r--src/traits/ServersTrait.php2
-rw-r--r--src/traits/ViewsMatViewsPropertiesTrait.php2
-rw-r--r--src/traits/ViewsMatviewsTrait.php22
-rw-r--r--src/translations/Afrikaans.php4
-rw-r--r--src/translations/Arabic.php4
-rw-r--r--src/translations/Catalan.php4
-rw-r--r--src/translations/ChineseSim.php4
-rw-r--r--src/translations/ChineseTr.php4
-rw-r--r--src/translations/ChineseUtf8ZhCn.php4
-rw-r--r--src/translations/ChineseUtf8ZhTw.php4
-rw-r--r--src/translations/Czech.php4
-rw-r--r--src/translations/Danish.php4
-rw-r--r--src/translations/Dutch.php4
-rw-r--r--src/translations/English.php4
-rw-r--r--src/translations/French.php4
-rw-r--r--src/translations/Galician.php4
-rw-r--r--src/translations/German.php4
-rw-r--r--src/translations/Greek.php4
-rw-r--r--src/translations/Hebrew.php4
-rw-r--r--src/translations/Hungarian.php4
-rw-r--r--src/translations/Italian.php4
-rw-r--r--src/translations/Japanese.php4
-rw-r--r--src/translations/Lithuanian.php4
-rw-r--r--src/translations/Mongol.php4
-rw-r--r--src/translations/Polish.php4
-rw-r--r--src/translations/PortugueseBr.php4
-rw-r--r--src/translations/PortuguesePt.php4
-rw-r--r--src/translations/Romanian.php4
-rw-r--r--src/translations/Russian.php4
-rw-r--r--src/translations/RussianUtf8.php4
-rw-r--r--src/translations/Slovak.php4
-rw-r--r--src/translations/Spanish.php4
-rw-r--r--src/translations/Swedish.php4
-rw-r--r--src/translations/Turkish.php4
-rw-r--r--src/translations/Ukrainian.php4
-rw-r--r--src/xhtml/HTMLController.php2
-rw-r--r--src/xhtml/HTMLFooterController.php50
-rw-r--r--src/xhtml/HTMLHeaderController.php2
-rw-r--r--src/xhtml/HTMLNavbarController.php2
-rw-r--r--src/xhtml/HTMLTableController.php8
-rw-r--r--src/xhtml/TreeController.php86
-rw-r--r--src/xhtml/XHtmlButton.php2
-rw-r--r--src/xhtml/XHtmlElement.php2
-rw-r--r--src/xhtml/XHtmlOption.php2
-rw-r--r--src/xhtml/XHtmlSelect.php2
-rw-r--r--src/xhtml/XHtmlSimpleElement.php2
-rw-r--r--tests/_support/AcceptanceTester.php3
-rw-r--r--tests/_support/FunctionalTester.php3
-rw-r--r--tests/_support/Helper/Acceptance.php2
-rw-r--r--tests/_support/Helper/Functional.php2
-rw-r--r--tests/_support/Helper/Unit.php2
-rw-r--r--tests/_support/UnitTester.php3
-rw-r--r--tests/_support/_generated/UnitTesterActions.php2
-rw-r--r--tests/unit/ContainerTest.php3
-rw-r--r--tests/unit/ViewTest.php3
-rw-r--r--tests/views/acinsert.php3
-rw-r--r--tests/views/aggregates.php2
-rw-r--r--tests/views/alldb.php2
-rw-r--r--tests/views/browser.php3
-rw-r--r--tests/views/casts.php2
-rw-r--r--tests/views/colproperties.php2
-rw-r--r--tests/views/constraints.php2
-rw-r--r--tests/views/conversions.php2
-rw-r--r--tests/views/database.php2
-rw-r--r--tests/views/dataexport.php3
-rw-r--r--tests/views/dataimport.php3
-rw-r--r--tests/views/dbexport.php3
-rw-r--r--tests/views/display.php2
-rw-r--r--tests/views/domains.php2
-rw-r--r--tests/views/fulltext.php2
-rw-r--r--tests/views/functions.php2
-rw-r--r--tests/views/groups.php2
-rw-r--r--tests/views/help.php2
-rw-r--r--tests/views/history.php2
-rw-r--r--tests/views/indexes.php2
-rw-r--r--tests/views/info.php2
-rw-r--r--tests/views/intro.php3
-rw-r--r--tests/views/languages.php2
-rw-r--r--tests/views/login.php3
-rw-r--r--tests/views/materializedviewproperties.php2
-rw-r--r--tests/views/materializedviews.php2
-rw-r--r--tests/views/opclasses.php2
-rw-r--r--tests/views/operators.php2
-rw-r--r--tests/views/privileges.php3
-rw-r--r--tests/views/roles.php2
-rw-r--r--tests/views/rules.php2
-rw-r--r--tests/views/schemas.php2
-rw-r--r--tests/views/sequences.php2
-rw-r--r--tests/views/servers.php3
-rw-r--r--tests/views/sql.php2
-rw-r--r--tests/views/sqledit.php2
-rw-r--r--tests/views/tables.php3
-rw-r--r--tests/views/tablespaces.php2
-rw-r--r--tests/views/tblproperties.php2
-rw-r--r--tests/views/triggers.php2
-rw-r--r--tests/views/types.php2
-rw-r--r--tests/views/users.php2
-rw-r--r--tests/views/viewproperties.php2
-rw-r--r--tests/views/views.php2
205 files changed, 1043 insertions, 1378 deletions
diff --git a/.data.methods.txt b/.data.methods.txt
deleted file mode 100644
index ed3ef0a6..00000000
--- a/.data.methods.txt
+++ /dev/null
@@ -1,241 +0,0 @@
-data->addCheckConstraint
-data->addColumn
-data->addDomainCheckConstraint
-data->addForeignKey
-data->addGroupMember
-data->addPrimaryKey
-data->addUniqueKey
-data->alreadyClustered
-data->alterAggregate
-data->alterColumn
-data->alterDatabase
-data->alterDomain
-data->alterMatView
-data->alterSequence
-data->alterTable
-data->alterTablespace
-data->alterTrigger
-data->alterView
-data->analyzeDB
-data->beginDump
-data->beginTransaction
-data->browseQuery
-data->browseRow
-data->changeFtsMapping
-data->changePassword
-data->clusterIndex
-data->createAggregate
-data->createCompositeType
-data->createDatabase
-data->createDomain
-data->createEnumType
-data->createFtsConfiguration
-data->createFtsDictionary
-data->createFunction
-data->createGroup
-data->createIndex
-data->createRole
-data->createRule
-data->createSchema
-data->createSequence
-data->createTable
-data->createTableLike
-data->createTablespace
-data->createTrigger
-data->createType
-data->createUser
-data->createView
-data->deleteRow
-data->disableTrigger
-data->dropAggregate
-data->dropAutovacuum
-data->dropColumn
-data->dropConstraint
-data->dropDatabase
-data->dropDomain
-data->dropDomainConstraint
-data->dropFtsConfiguration
-data->dropFtsDictionary
-data->dropFunction
-data->dropGroup
-data->dropGroupMember
-data->dropIndex
-data->dropOperator
-data->dropRole
-data->dropRule
-data->dropSchema
-data->dropSequence
-data->dropTable
-data->droptablespace
-data->dropTrigger
-data->dropType
-data->dropUser
-data->dropView
-data->dumpRelation
-data->editRow
-data->emptyTable
-data->enableTrigger
-data->endDump
-data->endTransaction
-data->escapeBytea
-data->execute
-data->executeScript
-data->fieldArrayClean
-data->fieldClean
-data->findObject
-data->formatType
-data->getAggregate
-data->getAggregates
-data->getAllTables
-data->getAttributeNames
-data->getAutovacuum
-data->getCasts
-data->getConstraints
-data->getConstraintsWithFields
-data->getconversions
-data->getDatabaseComment
-data->getDatabaseEncoding
-data->getDatabaseOwner
-data->getDatabases
-data->getDefaultWithOid
-data->getDomain
-data->getDomainConstraints
-data->getDomains
-data->getEnumValues
-data->getFtsConfigurationByName
-data->getFtsConfigurationMap
-data->getFtsConfigurations
-data->getFtsDictionaries
-data->getFtsDictionaryByName
-data->getFtsDictionaryTemplates
-data->getFtsMappingByName
-data->getFtsMappings
-data->getFtsParsers
-data->getFunction
-data->getFunctionDef
-data->getFunctionProperties
-data->getFunctions
-data->getGroup
-data->getGroups
-data->getHelp
-data->getHelpPages
-data->getIndexes
-data->getLanguages
-data->getLinkingKeys
-data->getLocks
-data->getMaterializedViews
-data->getMemberOf
-data->getMembers
-data->getOpClasses
-data->getOperator
-data->getOperators
-data->getPreparedXacts
-data->getPrivileges
-data->getProcesses
-data->getReferrers
-data->getRole
-data->getRoles
-data->getRowIdentifier
-data->getRules
-data->getSchemaByName
-data->getSchemas
-data->getSearchPath
-data->getSelectSQL
-data->getSequence
-data->getSequences
-data->getStatsIndexIO
-data->getStatsIndexTuples
-data->getStatsTableIO
-data->getStatsTableTuples
-data->getTable
-data->getTableAttributes
-data->getTableAutovacuum
-data->getTableChildren
-data->getTableDefPrefix
-data->getTableDefSuffix
-data->getTableParents
-data->getTables
-data->getTablespace
-data->getTablespaces
-data->getTrigger
-data->getTriggerFunctions
-data->getTriggers
-data->getType
-data->getTypes
-data->getUser
-data->getUsers
-data->getVariables
-data->getView
-data->getViews
-data->hasAggregateSortOp
-data->hasAlterAggregate
-data->hasAlterColumnType
-data->hasAlterDatabase
-data->hasAlterDatabaseOwner
-data->hasAlterDomains
-data->hasAlterSchema
-data->hasAlterSchemaOwner
-data->hasAlterSequenceSchema
-data->hasAlterSequenceStart
-data->hasAlterTableSchema
-data->hasAutovacuum
-data->hasByteaHexDefault
-data->hasConcurrentIndexBuild
-data->hasCreateFieldWithConstraints
-data->hasCreateTableLike
-data->hasCreateTableLikeWithConstraints
-data->hasCreateTableLikeWithIndexes
-data->hasDatabaseCollation
-data->hasDisableTriggers
-data->hasDomainConstraints
-data->hasEnumTypes
-data->hasForceReindex
-data->hasFTS
-data->hasFunctionAlterOwner
-data->hasFunctionAlterSchema
-data->hasFunctionCosting
-data->hasGrantOption
-data->hasMagicTypes
-data->hasNamedParams
-data->hasObjectID
-data->hasPreparedXacts
-data->hasQueryCancel
-data->hasQueryKill
-data->hasRecluster
-data->hasRoles
-data->hasServerAdminFuncs
-data->hasSharedComments
-data->hasTablespaces
-data->hasUserRename
-data->hasUserSignals
-data->hasVirtualTransactionId
-data->insertRow
-data->isSuperUser
-data->moveNext
-data->nextvalSequence
-data->phpArray
-data->phpBool
-data->printField
-data->recordCount
-data->RecordCount
-data->reindex
-data->resetSequence
-data->restartSequence
-data->rollbackTransaction
-data->saveAutovacuum
-data->selectSet
-data->sendSignal
-data->setFunction
-data->setPrivileges
-data->setRenameRole
-data->setRenameUser
-data->setRole
-data->setSchema
-data->setSearchPath
-data->setUser
-data->setvalSequence
-data->setView
-data->updateFtsConfiguration
-data->updateFtsDictionary
-data->updateSchema
-data->vacuumDB
diff --git a/.php_cs b/.php_cs
index 49d208af..767ad378 100644
--- a/.php_cs
+++ b/.php_cs
@@ -3,64 +3,93 @@
$composerinfo = json_decode(file_get_contents('composer.json'));
$version = $composerinfo->version;
-$header = "PHPPgAdmin v$version";
+$header = "PHPPgAdmin v$version.";
$rules=[
- 'no_php4_constructor'=>true,
- '@PHP56Migration' => true,
- '@PHPUnit60Migration:risky' => true,
- '@Symfony' => true,
- '@Symfony:risky' => false,
- '@PSR1'=>true,
- '@PSR2'=>true,
- 'align_multiline_comment' => true,
- 'array_syntax' => ['syntax' => 'short'],
- 'blank_line_before_statement' => true,
- 'combine_consecutive_issets' => true,
- 'combine_consecutive_unsets' => true,
- 'compact_nullable_typehint' => true,
- 'escape_implicit_backslashes' => true,
- 'explicit_indirect_variable' => true,
- 'no_whitespace_in_blank_line'=> true,
- 'no_unused_imports'=>true,
- 'elseif'=>true,
- 'explicit_string_variable' => true,
- 'final_internal_class' => true,
- 'modernize_types_casting'=>true,
- 'header_comment' => ['commentType'=>'PHPDoc','header' => $header],
- 'heredoc_to_nowdoc' => true,
- 'phpdoc_no_package' => false,
- 'list_syntax' => ['syntax' => 'long'],
- 'method_chaining_indentation' => true,
- 'method_argument_space' => ['ensure_fully_multiline' => true],
- 'multiline_comment_opening_closing' => true,
- 'no_extra_blank_lines' => ['tokens' => ['break', 'case', 'continue', 'curly_brace_block', 'default', 'extra', 'parenthesis_brace_block', 'return', 'square_brace_block', 'switch', 'throw', 'use', 'useTrait', 'use_trait']],
- 'no_null_property_initialization' => true,
- 'no_short_echo_tag' => true,
- 'no_superfluous_elseif' => true,
- 'no_unneeded_curly_braces' => true,
- 'no_unneeded_final_method' => true,
- 'no_unreachable_default_argument_value' => true,
- 'no_useless_else' => true,
- 'no_useless_return' => true,
- 'ordered_class_elements' => false,
- 'ordered_imports' => true,
- 'php_unit_strict' => true,
- 'php_unit_test_annotation' => true,
- 'php_unit_test_class_requires_covers' => true,
- 'phpdoc_add_missing_param_annotation' => true,
- 'phpdoc_align'=>true,
- 'phpdoc_order' => true,
- 'phpdoc_separation'=>true,
- 'phpdoc_scalar'=>true,
- 'phpdoc_trim'=>true,
- 'phpdoc_types_order' => true,
- 'semicolon_after_instruction' => true,
- 'single_line_comment_style' => false,
- 'strict_comparison' => false,
- 'strict_param' => true,
- 'single_quote'=>true,
- 'yoda_style' => false,
+ '@PHP56Migration' => true,
+ '@PHPUnit60Migration:risky' => true,
+ '@PSR1'=>true,
+ '@PSR2'=>true,
+ '@Symfony' => true,
+ '@Symfony:risky' => false,
+ 'align_multiline_comment' => true,
+ 'align_double_arrow' => true,
+ 'align_equals' => true,
+ 'array_syntax' => ['syntax' => 'short'],
+ 'blank_line_before_statement' => true,
+ 'blank_line_after_namespace'=>false,
+ 'blank_line_after_opening_tag'=>false,
+ 'blank_line_before_break'=>false,
+ 'blank_line_before_continue'=>false,
+ 'blank_line_before_declare'=>false,
+ 'blank_line_before_return'=>false,
+ 'blank_line_before_throw'=>false,
+ 'blank_line_before_try'=>false,
+ 'combine_consecutive_issets' => true,
+ 'combine_consecutive_unsets' => true,
+ 'compact_nullable_typehint' => true,
+ 'elseif'=>true,
+ 'escape_implicit_backslashes' => true,
+ 'explicit_indirect_variable' => true,
+ 'explicit_string_variable' => true,
+ 'final_internal_class' => true,
+ 'header_comment' => ['commentType'=>'PHPDoc','header' => $header],
+ 'heredoc_to_nowdoc' => true,
+ 'list_syntax' => ['syntax' => 'long'],
+ 'method_argument_space' => ['ensure_fully_multiline' => true],
+ 'method_chaining_indentation' => true,
+ 'modernize_types_casting'=>true,
+ 'multiline_comment_opening_closing' => true,
+ 'no_null_property_initialization' => true,
+ 'no_php4_constructor'=>true,
+ 'no_short_echo_tag' => true,
+ 'no_superfluous_elseif' => true,
+ 'no_unneeded_curly_braces' => true,
+ 'no_unneeded_final_method' => true,
+ 'no_unreachable_default_argument_value' => true,
+ 'no_unused_imports'=>true,
+ 'no_useless_else' => true,
+ 'no_useless_return' => true,
+ 'no_whitespace_in_blank_line'=> true,
+ 'ordered_class_elements' => false,
+ 'ordered_imports' => true,
+ 'php_unit_strict' => true,
+ 'php_unit_test_annotation' => true,
+ 'php_unit_test_class_requires_covers' => true,
+ 'phpdoc_add_missing_param_annotation' => true,
+ 'phpdoc_align'=>true,
+ 'phpdoc_no_package' => false,
+ 'phpdoc_order' => true,
+ 'phpdoc_scalar'=>true,
+ 'phpdoc_separation'=>true,
+ 'phpdoc_trim'=>true,
+ 'phpdoc_types_order' => true,
+ 'semicolon_after_instruction' => true,
+ 'single_line_comment_style' => false,
+ 'single_quote'=>true,
+ 'strict_comparison' => false,
+ 'strict_param' => true,
+ 'yoda_style' => false,
+ 'no_extra_blank_lines' => [
+ 'tokens' =>
+ [
+ 'if',
+ 'break',
+ 'case',
+ 'continue',
+ 'curly_brace_block',
+ 'default', 'extra',
+ 'parenthesis_brace_block',
+ 'return',
+ 'square_brace_block',
+ 'switch',
+ 'throw',
+ 'use',
+ 'useTrait',
+ 'use_trait'
+ ]
+ ],
+
'binary_operator_spaces' => [
'align_double_arrow' => true,
'align_equals' => true
@@ -74,6 +103,7 @@ $config = PhpCsFixer\Config::create()
->setFinder(
PhpCsFixer\Finder::create()
->in(__DIR__.'/src/classes')
+ ->in(__DIR__.'/src/middleware')
->in(__DIR__.'/src/controllers')
->in(__DIR__.'/src/database')
->in(__DIR__.'/src/decorators')
diff --git a/.php_cs.cache b/.php_cs.cache
deleted file mode 100644
index 50bf5853..00000000
--- a/.php_cs.cache
+++ /dev/null
@@ -1 +0,0 @@
-{"php":"7.2.25-1+ubuntu18.04.1+deb.sury.org+1","version":"2.16.1:v2.16.1#c8afb599858876e95e8ebfcd97812d383fa23f02","indent":" ","lineEnding":"\n","rules":{"no_php4_constructor":true,"php_unit_namespaced":{"target":"6.0"},"php_unit_dedicate_assert":{"target":"5.6"},"php_unit_expectation":{"target":"5.6"},"php_unit_mock":{"target":"5.5"},"php_unit_no_expectation_annotation":{"target":"4.3"},"array_syntax":{"syntax":"short"},"binary_operator_spaces":{"align_double_arrow":true,"align_equals":true},"blank_line_after_opening_tag":true,"blank_line_before_statement":true,"braces":true,"cast_spaces":true,"class_attributes_separation":{"elements":["method"]},"class_definition":true,"concat_space":true,"declare_equal_normalize":true,"function_typehint_space":true,"include":true,"increment_style":true,"lowercase_cast":true,"lowercase_static_reference":true,"magic_constant_casing":true,"magic_method_casing":true,"method_argument_space":{"ensure_fully_multiline":true},"native_function_casing":true,"native_function_type_declaration_casing":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_blank_lines":{"tokens":["break","case","continue","curly_brace_block","default","extra","parenthesis_brace_block","return","square_brace_block","switch","throw","use","useTrait","use_trait"]},"no_leading_import_slash":true,"no_leading_namespace_whitespace":true,"no_mixed_echo_print":true,"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_superfluous_phpdoc_tags":{"allow_mixed":true,"allow_unused_params":true},"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":true,"no_unneeded_curly_braces":true,"no_unneeded_final_method":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"no_whitespace_in_blank_line":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"ordered_imports":true,"php_unit_fqcn_annotation":true,"phpdoc_align":true,"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_types":true,"phpdoc_types_order":true,"phpdoc_var_without_name":true,"return_type_declaration":true,"semicolon_after_instruction":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_throw":true,"single_quote":true,"single_trait_insert_per_statement":true,"space_after_semicolon":{"remove_in_empty_for_expressions":true},"standardize_increment":true,"standardize_not_equals":true,"ternary_operator_spaces":true,"trailing_comma_in_multiline_array":true,"trim_array_spaces":true,"unary_operator_spaces":true,"whitespace_after_comma_in_array":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":true,"encoding":true,"full_opening_tag":true,"modernize_types_casting":true,"align_multiline_comment":true,"combine_consecutive_issets":true,"combine_consecutive_unsets":true,"compact_nullable_typehint":true,"escape_implicit_backslashes":true,"explicit_indirect_variable":true,"explicit_string_variable":true,"final_internal_class":true,"header_comment":{"commentType":"PHPDoc","header":"PHPPgAdmin v6.0.0-RC2"},"heredoc_to_nowdoc":true,"list_syntax":{"syntax":"long"},"method_chaining_indentation":true,"multiline_comment_opening_closing":true,"no_null_property_initialization":true,"no_short_echo_tag":true,"no_superfluous_elseif":true,"no_unreachable_default_argument_value":true,"no_useless_else":true,"no_useless_return":true,"php_unit_strict":true,"php_unit_test_annotation":true,"php_unit_test_class_requires_covers":true,"phpdoc_add_missing_param_annotation":true,"phpdoc_order":true,"strict_param":true},"hashes":{"src\/classes\/ADOdbException.php":1097491072,"src\/classes\/ContainerUtils.php":2957333705,"src\/classes\/Translations.php":2147137122,"src\/classes\/ADONewConnection.php":544499645,"src\/classes\/ADORecordSet.php":1559156762,"src\/classes\/Misc.php":2157200445,"src\/classes\/ArrayRecordSet.php":2052457821,"src\/classes\/PluginManager.php":3572781574,"src\/controllers\/OperatorsController.php":470701308,"src\/controllers\/InfoController.php":576767415,"src\/controllers\/SequencesController.php":1405547551,"src\/controllers\/LoginController.php":4004079939,"src\/controllers\/BrowserController.php":1754226339,"src\/controllers\/LanguagesController.php":3644852414,"src\/controllers\/OpclassesController.php":2073251162,"src\/controllers\/SqlController.php":3764080337,"src\/controllers\/CastsController.php":2252205653,"src\/controllers\/TblpropertiesController.php":1459908123,"src\/controllers\/ConversionsController.php":2511317519,"src\/controllers\/FulltextController.php":2082793492,"src\/controllers\/IndexesController.php":3382162653,"src\/controllers\/MaterializedviewpropertiesController.php":1536615153,"src\/controllers\/BaseController.php":927554780,"src\/controllers\/TablespacesController.php":323887674,"src\/controllers\/ServersController.php":436969094,"src\/controllers\/PrivilegesController.php":3763197500,"src\/controllers\/DataexportController.php":3171322312,"src\/controllers\/TablesController.php":2830154991,"src\/controllers\/MaterializedviewsController.php":2194088487,"src\/controllers\/ViewpropertiesController.php":1296035440,"src\/controllers\/SchemasController.php":2086899783,"src\/controllers\/DisplayController.php":1466781734,"src\/controllers\/FunctionsController.php":1971399617,"src\/controllers\/TriggersController.php":3192912867,"src\/controllers\/UsersController.php":3212064099,"src\/controllers\/DatabaseController.php":2195643557,"src\/controllers\/AcinsertController.php":502648987,"src\/controllers\/SqleditController.php":1776678561,"src\/controllers\/ViewsController.php":800560320,"src\/controllers\/IntroController.php":3550479857,"src\/controllers\/AlldbController.php":2152027820,"src\/controllers\/ColpropertiesController.php":691420862,"src\/controllers\/TypesController.php":4042582911,"src\/controllers\/DomainsController.php":249732800,"src\/controllers\/ConstraintsController.php":271905798,"src\/controllers\/RolesController.php":539217818,"src\/controllers\/HelpController.php":2620811373,"src\/controllers\/RulesController.php":1348497740,"src\/controllers\/HistoryController.php":3063360579,"src\/controllers\/AggregatesController.php":2715572466,"src\/controllers\/DbexportController.php":3715289421,"src\/controllers\/GroupsController.php":679976093,"src\/controllers\/DataimportController.php":621565722,"src\/database\/Postgres90.php":2096076494,"src\/database\/ADOdbBase.php":984020031,"src\/database\/Postgres84.php":3234660857,"src\/database\/Postgres13.php":1867053530,"src\/database\/Postgres82.php":3835597548,"src\/database\/Postgres.php":596085637,"src\/database\/Postgres80.php":2400193418,"src\/database\/Postgres11.php":3798712456,"src\/database\/Postgres74.php":257739454,"src\/database\/Postgres81.php":3333110559,"src\/database\/databasetraits\/StatsTrait.php":3293485427,"src\/database\/databasetraits\/SchemaTrait.php":2431811631,"src\/database\/databasetraits\/ColumnTrait.php":3612782545,"src\/database\/databasetraits\/AggregateTrait.php":3157773827,"src\/database\/databasetraits\/TriggerTrait.php":2142917071,"src\/database\/databasetraits\/PrivilegesTrait.php":1789813903,"src\/database\/databasetraits\/RoleTrait.php":4191770019,"src\/database\/databasetraits\/FtsTrait.php":453760167,"src\/database\/databasetraits\/HasTrait.php":2750573919,"src\/database\/databasetraits\/TableTrait.php":113874573,"src\/database\/databasetraits\/FunctionTrait.php":430195664,"src\/database\/databasetraits\/RowTrait.php":3400489522,"src\/database\/databasetraits\/TablespaceTrait.php":864298299,"src\/database\/databasetraits\/DatabaseTrait.php":599378828,"src\/database\/databasetraits\/SequenceTrait.php":4250634907,"src\/database\/databasetraits\/DomainTrait.php":4121415019,"src\/database\/databasetraits\/OperatorTrait.php":1127847400,"src\/database\/databasetraits\/IndexTrait.php":2286920134,"src\/database\/databasetraits\/ViewTrait.php":4276182108,"src\/database\/databasetraits\/TypeTrait.php":121536899,"src\/database\/Postgres94.php":935549495,"src\/database\/Postgres83.php":1166489872,"src\/database\/Postgres92.php":1625264404,"src\/database\/Postgres12.php":69432272,"src\/database\/Postgres10.php":1696039654,"src\/database\/Connection.php":1632750582,"src\/database\/Postgres95.php":3728302706,"src\/database\/Postgres91.php":2310492938,"src\/database\/Postgres96.php":4164705294,"src\/database\/Postgres93.php":2905452290,"src\/decorators\/UrlDecorator.php":2505976546,"src\/decorators\/BranchUrlDecorator.php":198430527,"src\/decorators\/FieldDecorator.php":1312668669,"src\/decorators\/ArrayMergeDecorator.php":2910683727,"src\/decorators\/ReplaceDecorator.php":1618471319,"src\/decorators\/CallbackDecorator.php":1607319898,"src\/decorators\/ActionUrlDecorator.php":3944317159,"src\/decorators\/ConcatDecorator.php":810552627,"src\/decorators\/IfEmptyDecorator.php":2335052815,"src\/decorators\/Decorator.php":4278799685,"src\/decorators\/RedirectUrlDecorator.php":711880635,"src\/help\/PostgresDoc10.php":3449515298,"src\/help\/PostgresDoc74.php":2107863935,"src\/help\/PostgresDoc82.php":949165892,"src\/help\/PostgresDoc83.php":3679111983,"src\/help\/PostgresDoc91.php":2467608124,"src\/help\/PostgresDoc96.php":2148995230,"src\/help\/PostgresDoc95.php":2551032518,"src\/help\/PostgresDoc84.php":2478927416,"src\/help\/PostgresDoc93.php":962547211,"src\/help\/PostgresDoc92.php":2219494822,"src\/help\/PostgresDoc90.php":1972615098,"src\/help\/PostgresDoc80.php":2877311258,"src\/help\/PostgresDoc94.php":3431332382,"src\/help\/PostgresDoc81.php":2462428955,"src\/translations\/French.php":2900581310,"src\/translations\/Afrikaans.php":3843624292,"src\/translations\/Catalan.php":3125152865,"src\/translations\/Arabic.php":2896257608,"src\/translations\/Polish.php":174809615,"src\/translations\/ChineseTr.php":2103676439,"src\/translations\/Lithuanian.php":1658005174,"src\/translations\/Danish.php":378573604,"src\/translations\/PortugueseBr.php":3460007783,"src\/translations\/Hungarian.php":2990877355,"src\/translations\/Hebrew.php":3302577937,"src\/translations\/Slovak.php":637666921,"src\/translations\/Mongol.php":2403068300,"src\/translations\/Romanian.php":1195460850,"src\/translations\/ChineseUtf8ZhTw.php":1162498993,"src\/translations\/Italian.php":3083041091,"src\/translations\/Spanish.php":991756966,"src\/translations\/Dutch.php":1875163377,"src\/translations\/ChineseUtf8ZhCn.php":3781203035,"src\/translations\/Greek.php":3888255532,"src\/translations\/Galician.php":1319096822,"src\/translations\/Turkish.php":1245693085,"src\/translations\/PortuguesePt.php":241394404,"src\/translations\/Ukrainian.php":3086575546,"src\/translations\/ChineseSim.php":4141508349,"src\/translations\/Japanese.php":966339825,"src\/translations\/English.php":1725331114,"src\/translations\/Russian.php":82512951,"src\/translations\/Czech.php":185899745,"src\/translations\/Swedish.php":1948073022,"src\/translations\/RussianUtf8.php":1502547838,"src\/translations\/German.php":2602483370,"src\/xhtml\/TreeController.php":3423898703,"src\/xhtml\/HTMLTableController.php":3787018150,"src\/xhtml\/XHtmlSelect.php":2028374650,"src\/xhtml\/HTMLController.php":3638032806,"src\/xhtml\/HTMLFooterController.php":3828479937,"src\/xhtml\/XHtmlButton.php":1334196050,"src\/xhtml\/HTMLHeaderController.php":1535125141,"src\/xhtml\/XHtmlElement.php":3190122729,"src\/xhtml\/XHtmlOption.php":3362358254,"src\/xhtml\/XHtmlSimpleElement.php":2030665893,"src\/xhtml\/HTMLNavbarController.php":283452528,"src\/traits\/HelperTrait.php":2232641164,"src\/traits\/FormTrait.php":2196884978,"src\/traits\/ServersTrait.php":3709435057,"src\/traits\/InsertEditRowTrait.php":4017457784,"src\/traits\/MiscTrait.php":1562416265,"src\/traits\/ExportTrait.php":4221711042,"src\/traits\/ViewsMatviewsTrait.php":900881504,"src\/traits\/AdminTrait.php":3499533950,"src\/traits\/ViewsMatViewsPropertiesTrait.php":3115792778,"tests\/views\/casts.php":2330626489,"tests\/views\/conversions.php":3926033835,"tests\/views\/dataimport.php":1037902631,"tests\/views\/intro.php":710704041,"tests\/views\/servers.php":669497897,"tests\/views\/tables.php":1453930874,"tests\/views\/operators.php":1004519351,"tests\/views\/triggers.php":2366249494,"tests\/views\/alldb.php":1786133718,"tests\/views\/acinsert.php":527582123,"tests\/views\/aggregates.php":3379792902,"tests\/views\/dbexport.php":3297272606,"tests\/views\/functions.php":1879109397,"tests\/views\/groups.php":3800131412,"tests\/views\/viewproperties.php":2615869823,"tests\/views\/dataexport.php":1719727600,"tests\/views\/sequences.php":1305353813,"tests\/views\/info.php":1762104070,"tests\/views\/materializedviews.php":2453533217,"tests\/views\/types.php":765806930,"tests\/views\/tablespaces.php":2929706843,"tests\/views\/opclasses.php":1049013265,"tests\/views\/login.php":2478472511,"tests\/views\/schemas.php":1505975510,"tests\/views\/help.php":3150447109,"tests\/views\/tblproperties.php":1970556957,"tests\/views\/display.php":909152643,"tests\/views\/indexes.php":3553078684,"tests\/views\/rules.php":482571170,"tests\/views\/roles.php":1965593260,"tests\/views\/materializedviewproperties.php":1212558310,"tests\/views\/domains.php":392952547,"tests\/views\/languages.php":2546295598,"tests\/views\/privileges.php":635931495,"tests\/views\/history.php":4238560281,"tests\/views\/colproperties.php":1982535772,"tests\/views\/views.php":74802447,"tests\/views\/fulltext.php":1922853031,"tests\/views\/sql.php":538244924,"tests\/views\/sqledit.php":2696078153,"tests\/views\/database.php":4263100028,"tests\/views\/users.php":3124195766,"tests\/views\/browser.php":1868164557,"tests\/views\/constraints.php":1088053640,"tests\/unit\/ContainerTest.php":1043558151,"tests\/unit\/ViewTest.php":1184024510,"tests\/_support\/Helper\/Acceptance.php":3309569460,"tests\/_support\/Helper\/Functional.php":3973290552,"tests\/_support\/Helper\/Unit.php":1900820317,"tests\/_support\/UnitTester.php":1311252506,"tests\/_support\/AcceptanceTester.php":2850705594,"tests\/_support\/_generated\/UnitTesterActions.php":3819975904,"tests\/_support\/FunctionalTester.php":1806881718,"index.php":3642887716}} \ No newline at end of file
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index ef4af680..6e6d4888 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -20,7 +20,7 @@ checks:
verify_documented_constraints: true
verify_parent_constraints: true
no_short_method_names:
- minimum: '3'
+ minimum: "3"
too_many_arguments: false
no_goto: true
fix_use_statements:
@@ -33,28 +33,28 @@ checks:
filter:
paths: [src/*]
excluded_paths:
- - 'tests/*'
- - '*.min.js'
- - 'assets/js/'
+ - "tests/*"
+ - "*.min.js"
+ - "assets/js/"
tools:
php_code_sniffer:
config:
standard: PSR2
filter:
- paths: ['src']
+ paths: ["src"]
build:
environment:
- php: '7.1'
+ php: "7.2"
#postgresql: true
#dependencies:
- #before:
- # - psql -c "CREATE DATABASE scrutinizer WITH OWNER = scrutinizer ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' TEMPLATE template0"
+ #before:
+ # - psql -c "CREATE DATABASE scrutinizer WITH OWNER = scrutinizer ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' TEMPLATE template0"
tests:
override:
- - 'php-scrutinizer-run'
- - 'phpcs-run ./src/'
- - 'make test'
+ - "php-scrutinizer-run"
+ - "phpcs-run ./src/"
+ - "make test"
nodes:
- tests: true \ No newline at end of file
+ tests: true
diff --git a/.styleci.yml b/.styleci.yml
new file mode 100644
index 00000000..d68b7532
--- /dev/null
+++ b/.styleci.yml
@@ -0,0 +1,16 @@
+preset: recommended
+risky: true
+enabled:
+ - align_equals
+
+disabled:
+ - unalign_equals
+
+finder:
+ exclude:
+ - modules
+ - node_modules
+ - storage
+ - vendor
+ name: "*.php"
+ not-name: "*.blade.php"
diff --git a/Makefile b/Makefile
index ab12fa7b..d45b3bac 100644
--- a/Makefile
+++ b/Makefile
@@ -18,8 +18,7 @@ default: install
.PHONY: tag install test csfixer create_testdb destroy_testdb run_local phpmd
version:
- @echo $(VERSION)
- echo CURRENT_BRANCH is $(CURRENT_BRANCH)
+ @echo -e "Current version is: ${GREEN} $(VERSION) ${WHITE}"
diff --git a/assets/js/jquery-3.4.1.min.js b/assets/js/jquery-3.4.1.min.js
new file mode 100644
index 00000000..a1c07fd8
--- /dev/null
+++ b/assets/js/jquery-3.4.1.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
diff --git a/assets/js/jquery-3.4.1.min.map b/assets/js/jquery-3.4.1.min.map
new file mode 100644
index 00000000..e15edef2
--- /dev/null
+++ b/assets/js/jquery-3.4.1.min.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery-3.4.1.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","isFunction","obj","nodeType","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","rtrim","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","trim","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","div","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","opt","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery-3.4.1.min.js"} \ No newline at end of file
diff --git a/assets/templates/browser.twig b/assets/templates/browser.twig
deleted file mode 100644
index 71d71325..00000000
--- a/assets/templates/browser.twig
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html>
-<html xml:lang="{{lang.applocale}}" lang="{{lang.applocale}}" dir="{{lang.applangdir}}">
-
- <head data-headertemplate="{{headertemplate}}">
- <link rel="stylesheet" href="{{subfolder}}/assets/js/jstree/themes/phppgadmin/style.css" /> {% include 'components/common_head.twig' %}
-
- <script src="{{subfolder}}/assets/js/jstree/jstree.min.js"></script>
- <style type="text/css">
- .refreshTree {
- position: absolute;
- right: 0;
- z-index: 1000;
- }
- </style>
- </head>
-
- <body class="browser">
-
- <div dir="{{lang.applangdir}}">
-
- <div class="logo">
- <a href="{{subfolder}}/" target="_parent">{{appName}}</a>
- </div>
- <div class="refreshTree">
- <a href="{{subfolder}}/src/views/browser" target="browser">
- <img src="{{icon.Refresh}}" alt="{{lang.strrefresh}}" title="{{lang.strrefresh}}" />
- </a>
- </div>
-
- <div id="lazy" class="demo"></div>
-
- </div>
-
- <script>
- $('#lazy').jstree({
- "state": {
- "key": "jstree"
- },
- "plugins": ["state"],
- 'core': {
- 'data': {
- "url": function (node) {
- if (node.id === '#') {
- return '{{subfolder}}/src/views/browser?action=tree';
- } else {
- return node.original.url;
- }
- }
- }
- }
- });
-
-
- $('#lazy').on("activate_node.jstree", function (e, data) {
- if (window.parent.frames.detail) {
- window.parent.frames.detail.location.replace(data.node.a_attr.href);
- }
- });
- $('#lazy').on("loaded.jstree", function (e, data) {
- $('#lazy').data('jstree').show_dots();
- });
- </script>
-
- </body>
-
-</html> \ No newline at end of file
diff --git a/assets/templates/components/common_head.twig b/assets/templates/components/common_head.twig
index d3ca1c7f..fe83696c 100644
--- a/assets/templates/components/common_head.twig
+++ b/assets/templates/components/common_head.twig
@@ -3,13 +3,13 @@
<script src="{{subfolder}}/assets/js/polyfills.js" type="text/javascript"></script>
<script src="{{subfolder}}/assets/js/less.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="{{subfolder}}/assets/themes/{{theme}}/global.css" type="text/css" id="csstheme" />
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.css" type="text/css" />
- <link rel="shortcut icon" href="{{Favicon}}" type="image/vnd.microsoft.icon" />
- <link rel="icon" href="{{Introduction}}" type="image/png" />
-
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.css" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js"></script>
{{script|raw}}
- <title data-headertemplate="{{headertemplate}}" data-subfolder="{{subfolder}}">{{appName}}{{title}}</title> \ No newline at end of file
+ <title data-headertemplate="{{headertemplate}}" data-subfolder="{{subfolder}}">{{template}} {{appName}}{{title}}</title> \ No newline at end of file
diff --git a/assets/templates/components/footer_scripts.twig b/assets/templates/details_components/footer_scripts.twig
index 8a1ce686..082eed95 100644
--- a/assets/templates/components/footer_scripts.twig
+++ b/assets/templates/details_components/footer_scripts.twig
@@ -22,8 +22,14 @@ var reload = '{{reload}}';
if (!window.inPopUp) {
- if (reload !== 'none') {
- parent.frames && parent.frames.browser && parent.frames.browser.location.replace('{{subfolder}}/src/views/browser');
+ if (reload !== 'none' && parent && typeof parent.$==='function') {
+ try {
+
+ parent.$('#lazy').jstree().refresh()
+ } catch (err) {
+ parent.console.warn(err);
+ }
+
}
if (reload === 'other' && !parent.frames.length && in_test === '0') {
diff --git a/assets/templates/footer.twig b/assets/templates/footer.twig
index a431e32a..03e2cd64 100644
--- a/assets/templates/footer.twig
+++ b/assets/templates/footer.twig
@@ -1,4 +1,4 @@
- {% include 'components/footer_scripts.twig' %}
+ {% include 'details_components/footer_scripts.twig' %}
</body>
diff --git a/assets/templates/footer_iframe.twig b/assets/templates/footer_iframe.twig
deleted file mode 100644
index 936f9bd1..00000000
--- a/assets/templates/footer_iframe.twig
+++ /dev/null
@@ -1,27 +0,0 @@
-<script type="text/javascript">
-var dir = '{{lang.applangdir}}';
-
-jQuery('#browser_container').resizable({
- handles: (dir === 'ltr') ? "e" : "w",
- start: function () {
- jQuery('#masking_overlay').css('display', 'block');
- },
- stop: function () {
- jQuery('#masking_overlay').css('display', 'none');
- }
-
-});
-
-window.onpopstate = function (event) {
- console.log('onpopstate', {
- state: event.state
- });
- if (event.state && event.state.realurl) {
- var ifr = document.getElementById('detail')
- ifr.contentWindow.location.replace(event.state.realurl);
- }
-};
-</script>
-</body>
-
-</html> \ No newline at end of file
diff --git a/assets/templates/iframe_view.twig b/assets/templates/iframe_view.twig
deleted file mode 100644
index ee8f4d10..00000000
--- a/assets/templates/iframe_view.twig
+++ /dev/null
@@ -1,18 +0,0 @@
-{% include 'header.twig' %}
-
-<body class="flexbox_body {{lang.applangdir}}">
- <div class="flexbox_wrapper">
- <div id="masking_overlay"></div>
- <div id="browser_container">
-
- <iframe src="{{subfolder}}/src/views/browser" name="browser" id="browser" class="browser_container" frameborder="0" />
- <p>Your browser does not support iframes.</p>
- </iframe>
- </div>
-
- <iframe src="{{subfolder}}{{url}}" name="detail" id="detail" class="detail_container" frameborder="0" />
- <p>Your browser does not support iframes.</p>
- </iframe>
-
- </div>
- {% include 'footer_iframe.twig' %} \ No newline at end of file
diff --git a/assets/templates/main.twig b/assets/templates/main.twig
new file mode 100644
index 00000000..2fc103dc
--- /dev/null
+++ b/assets/templates/main.twig
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html xml:lang="{{lang.applocale}}" lang="{{lang.applocale}}" dir="{{lang.applangdir}}">
+
+ <head data-headertemplate="{{headertemplate}}">
+<link rel="shortcut icon" href="{{Favicon}}" type="image/vnd.microsoft.icon" />
+ <link rel="icon" href="{{Introduction}}" type="image/png" />
+
+{% set template = 'main' %}
+ {% include 'components/common_head.twig' %}
+</head>
+<body class="flexbox_body {{lang.applangdir}}">
+ <div class="flexbox_wrapper">
+ <div id="masking_overlay"></div>
+
+ {% include 'main_sections/browser.twig' %}
+
+<div id="detail_container">
+ <div id="tabs">
+ <ul>
+ <li><a href="#fragment-1"><span>One</span></a></li>
+ <li><a href="#fragment-2"><span>Two</span></a></li>
+ <li><a href="#fragment-3"><span>Three</span></a></li>
+ </ul>
+ <div id="fragment-1">
+ <p>First tab is active by default:</p>
+ <pre><code>$( "#tabs" ).tabs(); </code></pre>
+ </div>
+ <div id="fragment-2">
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ </div>
+ <div id="fragment-3">
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ </div>
+</div>
+ <iframe src="{{subfolder}}{{url}}" name="detail" id="detail" class="detail_content" frameborder="0" />
+ <p>Your browser does not support iframes.</p>
+ </iframe>
+</div>
+ </div>
+ {% include 'main_sections/main_footer.twig' %} \ No newline at end of file
diff --git a/assets/templates/main_sections/browser.twig b/assets/templates/main_sections/browser.twig
new file mode 100644
index 00000000..5836ced4
--- /dev/null
+++ b/assets/templates/main_sections/browser.twig
@@ -0,0 +1,23 @@
+ <link rel="stylesheet" href="{{subfolder}}/assets/js/jstree/themes/phppgadmin/style.css" /> {% include 'components/common_head.twig' %}
+
+ <script src="{{subfolder}}/assets/js/jstree/jstree.min.js"></script>
+ <div id="browser_container">
+ <div class="browser">
+
+ <div dir="{{lang.applangdir}}">
+
+ <div class="logo">
+ <a href="{{subfolder}}/" target="_parent">{{appName}}</a>
+ </div>
+ <div class="refreshTree">
+ <img src="{{icon.Refresh}}" alt="{{lang.strrefresh}}" title="{{lang.strrefresh}}" />
+
+ </div>
+
+ <div id="lazy" class="demo"></div>
+
+ </div>
+
+
+ </div>
+</div> \ No newline at end of file
diff --git a/assets/templates/main_sections/main_footer.twig b/assets/templates/main_sections/main_footer.twig
new file mode 100644
index 00000000..498d3120
--- /dev/null
+++ b/assets/templates/main_sections/main_footer.twig
@@ -0,0 +1,59 @@
+<script type="text/javascript">
+var dir = '{{lang.applangdir}}';
+
+jQuery('#browser_container').resizable({
+ handles: (dir === 'ltr') ? "e" : "w",
+ start: function () {
+ jQuery('#masking_overlay').css('display', 'block');
+ },
+ stop: function () {
+ jQuery('#masking_overlay').css('display', 'none');
+ }
+
+});
+$( "#tabs" ).tabs();
+
+window.onpopstate = function (event) {
+ console.log('onpopstate', {
+ state: event.state
+ });
+ if (event.state && event.state.realurl) {
+ var ifr = document.getElementById('detail')
+ ifr.contentWindow.location.replace(event.state.realurl);
+ }
+};
+
+ $('.refreshTree').on('click',function(e) {
+ $('#lazy').jstree().refresh();
+ })
+ $('#lazy').jstree({
+ "state": {
+ "key": "jstree"
+ },
+ "plugins": ["state"],
+ 'core': {
+ 'data': {
+ "url": function (node) {
+ if (node.id === '#') {
+ return '{{subfolder}}/src/views/browser?action=tree';
+ } else {
+ return node.original.url;
+ }
+ }
+ }
+ }
+ });
+
+
+ $('#lazy').on("activate_node.jstree", function (e, data) {
+ if (window.parent.frames.detail) {
+ window.parent.frames.detail.location.replace(data.node.a_attr.href);
+ }
+ });
+ $('#lazy').on("loaded.jstree", function (e, data) {
+ $('#lazy').data('jstree').show_dots();
+ });
+</script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/assets/themes/global.less b/assets/themes/global.less
index 7980a2d3..296e165f 100644
--- a/assets/themes/global.less
+++ b/assets/themes/global.less
@@ -209,7 +209,7 @@ html {
display: none;
}
- & > .detail_container {
+ & > #detail_container {
height: 100%;
width: 100%;
margin: 0px;
@@ -217,6 +217,16 @@ html {
text-align: left;
float: left;
flex: 1 1;
+
+ .detail_content {
+ height: 100%;
+ width: 100%;
+ margin: 0px;
+ padding: 0px;
+ text-align: left;
+ float: left;
+ flex: 1 1;
+ }
}
& > #browser_container {
@@ -227,15 +237,6 @@ html {
float: left;
flex: 0 0 300px;
- & > .browser_container {
- height: 100%;
- margin: 0px;
- padding: 0px;
- text-align: left;
- float: left;
- width: 100%;
- }
-
&.ui-resizable {
width: 300px;
flex: unset;
@@ -281,46 +282,6 @@ html {
}
}
- /** Browser Tree using XLoadTree 2 **/
- &.browser {
- height: 100%;
- margin: 0px;
- padding: 0px;
- text-align: left;
-
- .refreshTree {
- float: right;
- text-align: right;
- padding: 0 3px;
- }
-
- .webfx-tree-row {
- white-space: nowrap;
- }
-
- .webfx-tree-children {
- background-repeat: repeat-y;
- background-position-y: 1px !important;
- /* IE only */
- }
-
- .webfx-tree-row img {
- vertical-align: middle;
- }
-
- .webfx-tree-item-label {
- margin-left: 0.5ex;
- }
-
- .webfx-tree-icon {
- margin-left: 1px;
- }
-
- .webfx-tree-hide-root {
- display: none;
- }
- }
-
img {
border: none;
}
@@ -506,7 +467,53 @@ html {
}
}
}
+body > .browser {
+ border: 2px solid red;
+}
+/** Browser Tree using XLoadTree 2 **/
+body.browser,
+body .browser {
+ height: 100%;
+ margin: 0px;
+ padding: 0px;
+ text-align: left;
+ .refreshTree {
+ position: absolute;
+ right: 0;
+ z-index: 1000;
+ }
+ .refreshTree {
+ float: right;
+ text-align: right;
+ padding: 0 3px;
+ }
+ .webfx-tree-row {
+ white-space: nowrap;
+ }
+
+ .webfx-tree-children {
+ background-repeat: repeat-y;
+ background-position-y: 1px !important;
+ /* IE only */
+ }
+
+ .webfx-tree-row img {
+ vertical-align: middle;
+ }
+
+ .webfx-tree-item-label {
+ margin-left: 0.5ex;
+ }
+
+ .webfx-tree-icon {
+ margin-left: 1px;
+ }
+
+ .webfx-tree-hide-root {
+ display: none;
+ }
+}
@media print {
@page {
size: 215.9mm 279.4mm;
diff --git a/index.php b/index.php
index e379ef1e..f1674fe7 100644
--- a/index.php
+++ b/index.php
@@ -3,7 +3,6 @@
/**
* PHPPgAdmin v6.0.0-RC2
*/
-
require_once __DIR__.'/src/lib.inc.php';
// This section is made to be able to parse requests coming from PHP Builtin webserver
diff --git a/simple_to_phpunit.php b/simple_to_phpunit.php
index e1ad0253..cdeb2108 100755
--- a/simple_to_phpunit.php
+++ b/simple_to_phpunit.php
@@ -22,7 +22,7 @@ if (in_array('-h', $argv, true) || in_array('--help', $argv, true)) {
// handle diff output
if (in_array('-d', $argv, true)) {
- passthru('php ' . __FILE__ . " {$argv[1]} -o | diff -u {$argv[1]} -");
+ passthru('php '.__FILE__." {$argv[1]} -o | diff -u {$argv[1]} -");
exit(0);
}
diff --git a/src/classes/ADONewConnection.php b/src/classes/ADONewConnection.php
index 19f89da4..d8308376 100644
--- a/src/classes/ADONewConnection.php
+++ b/src/classes/ADONewConnection.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
@@ -9,14 +9,10 @@ namespace PHPPgAdmin;
/**
* @file
* Extends ADONewConnection to let correct inference on PHPDoc params
- *
- * @package PHPPgAdmin
*/
/**
* Extends ADONewConnection to let correct inference on PHPDoc params.
- *
- * @package PHPPgAdmin
*/
class ADONewConnection extends \ADONewConnection
{
diff --git a/src/classes/ADORecordSet.php b/src/classes/ADORecordSet.php
index 1fce8893..fd739503 100644
--- a/src/classes/ADORecordSet.php
+++ b/src/classes/ADORecordSet.php
@@ -1,22 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
/**
- * @file
- * Extends ADORecordSet to let correct inference on PHPDoc params
- *
- * @package PHPPgAdmin
- */
-
-/**
* Extends ADORecordSet to let correct inference on PHPDoc params.
- *
- * @package PHPPgAdmin
*/
class ADORecordSet extends \ADORecordSet
{
diff --git a/src/classes/ADOdbException.php b/src/classes/ADOdbException.php
index 3817f0b8..3ecc6e63 100644
--- a/src/classes/ADOdbException.php
+++ b/src/classes/ADOdbException.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
@@ -19,7 +19,6 @@ namespace PHPPgAdmin;
* Latest version is available at http://php.weblogs.com
* Exception-handling code using PHP5 exceptions (try-catch-throw).
*
- * @package PHPPgAdmin
*
* @author John Lim
* @copyright 2000-2013 John Lim <jlim@natsoft.com>
@@ -158,6 +157,6 @@ class ADOdbException extends \Exception
//\PC::debug(['errno' => $errno, 'fn' => $fn, 'errmsg' => $errmsg], $tag);
- throw new \PHPPgAdmin\ADOdbException($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection);
+ throw new self($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection);
}
}
diff --git a/src/classes/ArrayRecordSet.php b/src/classes/ArrayRecordSet.php
index 0e18e3d6..b7d61932 100644
--- a/src/classes/ArrayRecordSet.php
+++ b/src/classes/ArrayRecordSet.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
@@ -11,8 +11,6 @@ namespace PHPPgAdmin;
* Really simple RecordSet to allow printTable of arrays.
*
* Id: ArrayRecordSet.php,v 1.3 2007/01/10 01:46:28 soranzo Exp $
- *
- * @package PHPPgAdmin
*/
/**
@@ -20,8 +18,6 @@ namespace PHPPgAdmin;
* Mimics the behavior of an ADORecordset.
*
* Id: ArrayRecordSet.php,v 1.3 2007/01/10 01:46:28 soranzo Exp $
- *
- * @package PHPPgAdmin
*/
class ArrayRecordSet
{
diff --git a/src/classes/ContainerUtils.php b/src/classes/ContainerUtils.php
index 1e13fb20..b416e6af 100644
--- a/src/classes/ContainerUtils.php
+++ b/src/classes/ContainerUtils.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
@@ -13,8 +13,6 @@ namespace PHPPgAdmin;
/**
* A class that adds convenience methods to the container.
- *
- * @package PHPPgAdmin
*/
class ContainerUtils
{
@@ -31,7 +29,7 @@ class ContainerUtils
*/
public function __construct()
{
- $composerinfo = json_decode(file_get_contents(BASE_PATH.'/composer.json'));
+ $composerinfo = json_decode(file_get_contents(BASE_PATH . '/composer.json'));
$appVersion = $composerinfo->version;
$phpMinVer = (str_replace(['<', '>', '='], '', $composerinfo->require->php));
@@ -49,14 +47,14 @@ class ContainerUtils
'base_path' => BASE_PATH,
'debug' => DEBUGMODE,
- 'routerCacheFile' => BASE_PATH.'/temp/route.cache.php',
+ 'routerCacheFile' => BASE_PATH . '/temp/route.cache.php',
// Configuration file version. If this is greater than that in config.inc.php, then
// the app will refuse to run. This and $conf['version'] should be incremented whenever
// backwards incompatible changes are made to config.inc.php-dist.
'base_version' => 60,
// Application version
- 'appVersion' => 'v'.$appVersion,
+ 'appVersion' => 'v' . $appVersion,
// Application name
'appName' => 'phpPgAdmin6',
@@ -73,7 +71,7 @@ class ContainerUtils
// Fetch DI Container
$container = $this->app->getContainer();
$container['utils'] = $this;
- $container['version'] = 'v'.$appVersion;
+ $container['version'] = 'v' . $appVersion;
$container['errors'] = [];
$this->container = $container;
@@ -88,24 +86,76 @@ class ContainerUtils
return [self::$instance->container, self::$instance->app];
}
+ public function icon($icon)
+ {
+
+ $conf = $this->container->conf;
+ if (is_string($icon)) {
+ $path = "/assets/images/themes/{$conf['theme']}/{$icon}";
+ if (file_exists(\BASE_PATH . $path . '.png')) {
+ return SUBFOLDER . $path . '.png';
+ }
+
+ if (file_exists(\BASE_PATH . $path . '.gif')) {
+ return SUBFOLDER . $path . '.gif';
+ }
+
+ if (file_exists(\BASE_PATH . $path . '.ico')) {
+ return SUBFOLDER . $path . '.ico';
+ }
+
+ $path = "/assets/images/themes/default/{$icon}";
+ if (file_exists(\BASE_PATH . $path . '.png')) {
+ return SUBFOLDER . $path . '.png';
+ }
+
+ if (file_exists(\BASE_PATH . $path . '.gif')) {
+ return SUBFOLDER . $path . '.gif';
+ }
+
+ if (file_exists(\BASE_PATH . $path . '.ico')) {
+ return SUBFOLDER . $path . '.ico';
+ }
+ } else {
+ // Icon from plugins
+ $path = "/plugins/{$icon[0]}/images/{$icon[1]}";
+ if (file_exists(\BASE_PATH . $path . '.png')) {
+ return SUBFOLDER . $path . '.png';
+ }
+
+ if (file_exists(\BASE_PATH . $path . '.gif')) {
+ return SUBFOLDER . $path . '.gif';
+ }
+
+ if (file_exists(\BASE_PATH . $path . '.ico')) {
+ return SUBFOLDER . $path . '.ico';
+ }
+ }
+
+ return '';
+ }
+
public function maybeRenderIframes($response, $subject, $query_string)
{
$c = $this->container;
$in_test = $c->view->offsetGet('in_test');
if ($in_test === '1') {
- $className = '\PHPPgAdmin\Controller\\'.ucfirst($subject).'Controller';
+ $className = '\PHPPgAdmin\Controller\\' . ucfirst($subject) . 'Controller';
$controller = new $className($c);
return $controller->render();
}
-
$viewVars = [
- 'url' => '/src/views/'.$subject.($query_string ? '?'.$query_string : ''),
+ 'icon' => [
+ 'Refresh' => $this->icon('Refresh'),
+ 'Servers' => $this->icon('Servers'),
+ ],
+ 'url' => '/src/views/' . $subject . ($query_string ? '?' . $query_string : ''),
'headertemplate' => 'header.twig',
];
- return $c->view->render($response, 'iframe_view.twig', $viewVars);
+ return $c->view->render($response, 'main.twig', $viewVars);
}
/**
@@ -206,10 +256,10 @@ class ContainerUtils
// if server_id isn't set, then you will be redirected to intro
if ($this->container->requestobj->getQueryParam('server') === null) {
- $destinationurl = \SUBFOLDER.'/src/views/intro';
+ $destinationurl = \SUBFOLDER . '/src/views/intro';
} else {
// otherwise, you'll be redirected to the login page for that server;
- $destinationurl = \SUBFOLDER.'/src/views/login'.($query_string ? '?'.$query_string : '');
+ $destinationurl = \SUBFOLDER . '/src/views/login' . ($query_string ? '?' . $query_string : '');
}
return $destinationurl;
@@ -233,7 +283,7 @@ class ContainerUtils
$destinationurl = $this->getRedirectUrl();
} else {
$url = $this->container->misc->getLastTabURL($subject);
- $this->addFlash($url, 'getLastTabURL for '.$subject);
+ $this->addFlash($url, 'getLastTabURL for ' . $subject);
// Load query vars into superglobal arrays
if (isset($url['urlvars'])) {
$urlvars = [];
diff --git a/src/classes/Misc.php b/src/classes/Misc.php
index c364f895..a5c5e554 100644
--- a/src/classes/Misc.php
+++ b/src/classes/Misc.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
@@ -11,16 +11,12 @@ namespace PHPPgAdmin;
* Class to hold various commonly used functions
*
* Id: Misc.php,v 1.171 2008/03/17 21:35:48 ioguix Exp $
- *
- * @package PHPPgAdmin
*/
/**
* Class to hold various commonly used functions.
*
* Release: Misc.php,v 1.171 2008/03/17 21:35:48 ioguix Exp $
- *
- * @package PHPPgAdmin
*/
class Misc
{
@@ -112,7 +108,7 @@ class Misc
if (count($this->conf['servers']) === 1) {
$info = $this->conf['servers'][0];
- $this->_server_id = sha1($info['host'].':'.$info['port'].':'.$info['sslmode']);
+ $this->_server_id = sha1($info['host'] . ':' . $info['port'] . ':' . $info['sslmode']);
} elseif ($request_server !== null) {
$this->_server_id = $request_server;
} elseif (isset($_SESSION['webdbLogin']) && count($_SESSION['webdbLogin']) > 0) {
@@ -182,8 +178,8 @@ class Misc
{
if ($help !== null) {
$helplink = $this->getHelpLink($help);
- $str .= '<a class="help" href="'.$helplink.'" title="'.$this->lang['strhelp'].'" target="phppgadminhelp">';
- $str .= $this->lang['strhelpicon'].'</a>';
+ $str .= '<a class="help" href="' . $helplink . '" title="' . $this->lang['strhelp'] . '" target="phppgadminhelp">';
+ $str .= $this->lang['strhelpicon'] . '</a>';
}
if ($do_print) {
echo $str;
@@ -201,7 +197,7 @@ class Misc
*/
public function getHelpLink($help)
{
- return htmlspecialchars(SUBFOLDER.'/help?help='.urlencode($help).'&server='.urlencode($this->getServerId()));
+ return htmlspecialchars(SUBFOLDER . '/help?help=' . urlencode($help) . '&server=' . urlencode($this->getServerId()));
}
/**
@@ -332,7 +328,7 @@ class Misc
return null;
}
- $_type = '\PHPPgAdmin\Database\\'.$_type;
+ $_type = '\PHPPgAdmin\Database\\' . $_type;
$this->prtrace('driver:', $_type);
@@ -454,7 +450,7 @@ class Misc
// Otherwise, look for it in the conf file
foreach ($this->conf['servers'] as $idx => $info) {
- $server_string = $info['host'].':'.$info['port'].':'.$info['sslmode'];
+ $server_string = $info['host'] . ':' . $info['port'] . ':' . $info['sslmode'];
$server_sha = sha1($server_string);
if ($this->_server_id === $server_string ||
@@ -609,13 +605,13 @@ class Misc
$schema = $this->container->schema || isset($_REQUEST['schema']) ? $_REQUEST['schema'] : null;
if ($server && $exclude_from !== 'server') {
- $href[] = 'server='.urlencode($server);
+ $href[] = 'server=' . urlencode($server);
}
if ($database && $exclude_from !== 'database') {
- $href[] = 'database='.urlencode($database);
+ $href[] = 'database=' . urlencode($database);
}
if ($schema && $exclude_from !== 'schema') {
- $href[] = 'schema='.urlencode($schema);
+ $href[] = 'schema=' . urlencode($schema);
}
$this->href = htmlentities(implode('&', $href));
@@ -630,14 +626,14 @@ class Misc
{
$form = [];
if ($this->container->server) {
- $form[] = '<input type="hidden" name="server" value="'.htmlspecialchars($this->container->server).'" />';
+ $form[] = '<input type="hidden" name="server" value="' . htmlspecialchars($this->container->server) . '" />';
}
if ($this->container->database) {
- $form[] = '<input type="hidden" name="database" value="'.htmlspecialchars($this->container->database).'" />';
+ $form[] = '<input type="hidden" name="database" value="' . htmlspecialchars($this->container->database) . '" />';
}
if ($this->container->schema) {
- $form[] = '<input type="hidden" name="schema" value="'.htmlspecialchars($this->container->schema).'" />';
+ $form[] = '<input type="hidden" name="schema" value="' . htmlspecialchars($this->container->schema) . '" />';
}
$this->form = implode("\n", $form);
@@ -729,49 +725,8 @@ class Misc
public function icon($icon)
{
- if (is_string($icon)) {
- $path = "/assets/images/themes/{$this->conf['theme']}/{$icon}";
- if (file_exists(\BASE_PATH.$path.'.png')) {
- return SUBFOLDER.$path.'.png';
- }
-
- if (file_exists(\BASE_PATH.$path.'.gif')) {
- return SUBFOLDER.$path.'.gif';
- }
-
- if (file_exists(\BASE_PATH.$path.'.ico')) {
- return SUBFOLDER.$path.'.ico';
- }
-
- $path = "/assets/images/themes/default/{$icon}";
- if (file_exists(\BASE_PATH.$path.'.png')) {
- return SUBFOLDER.$path.'.png';
- }
-
- if (file_exists(\BASE_PATH.$path.'.gif')) {
- return SUBFOLDER.$path.'.gif';
- }
-
- if (file_exists(\BASE_PATH.$path.'.ico')) {
- return SUBFOLDER.$path.'.ico';
- }
- } else {
- // Icon from plugins
- $path = "/plugins/{$icon[0]}/images/{$icon[1]}";
- if (file_exists(\BASE_PATH.$path.'.png')) {
- return SUBFOLDER.$path.'.png';
- }
-
- if (file_exists(\BASE_PATH.$path.'.gif')) {
- return SUBFOLDER.$path.'.gif';
- }
-
- if (file_exists(\BASE_PATH.$path.'.ico')) {
- return SUBFOLDER.$path.'.ico';
- }
- }
+ return $this->container->utils->icon($icon);
- return '';
}
/**
@@ -814,7 +769,7 @@ class Misc
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$data->fieldClean($str);
- return '"'.$str.'"';
+ return '"' . $str . '"';
}
return escapeshellcmd($str);
diff --git a/src/classes/PluginManager.php b/src/classes/PluginManager.php
index 1dac7470..5bbdbcaf 100644
--- a/src/classes/PluginManager.php
+++ b/src/classes/PluginManager.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
@@ -13,8 +13,6 @@ namespace PHPPgAdmin;
/**
* A class that implements the plugin's system.
- *
- * @package PHPPgAdmin
*/
class PluginManager
{
diff --git a/src/classes/Translations.php b/src/classes/Translations.php
index 98b12c8d..31a80b70 100644
--- a/src/classes/Translations.php
+++ b/src/classes/Translations.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin;
diff --git a/src/controllers/AcinsertController.php b/src/controllers/AcinsertController.php
index 05a4b183..656554d5 100644
--- a/src/controllers/AcinsertController.php
+++ b/src/controllers/AcinsertController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -76,7 +76,7 @@ class AcinsertController extends BaseController
}
}
echo '</tr>'.PHP_EOL;
- ++$i;
+ $i++;
$res->moveNext();
}
echo '</table>'.PHP_EOL;
diff --git a/src/controllers/AggregatesController.php b/src/controllers/AggregatesController.php
index 20ba4db1..e134b594 100644
--- a/src/controllers/AggregatesController.php
+++ b/src/controllers/AggregatesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class AggregatesController extends BaseController
{
diff --git a/src/controllers/AlldbController.php b/src/controllers/AlldbController.php
index 6ec0952b..c6ccfdf7 100644
--- a/src/controllers/AlldbController.php
+++ b/src/controllers/AlldbController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class AlldbController extends BaseController
{
diff --git a/src/controllers/BaseController.php b/src/controllers/BaseController.php
index d9676681..df151334 100644
--- a/src/controllers/BaseController.php
+++ b/src/controllers/BaseController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -9,8 +9,6 @@ namespace PHPPgAdmin\Controller;
ini_set('display_errors', 1);
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class BaseController
{
@@ -45,7 +43,8 @@ class BaseController
public $controller_title = 'base';
protected $table_controller;
protected $trail_controller;
- protected $tree_controller;
+ private static $_tree_controller = null;
+
protected $footer_controller;
protected $header_controller;
protected $scripts = '';
@@ -68,7 +67,7 @@ class BaseController
$this->container = $container;
$this->lang = $container->get('lang');
- $this->controller_name = str_replace(__NAMESPACE__.'\\', '', get_class($this));
+ $this->controller_name = str_replace(__NAMESPACE__ . '\\', '', get_class($this));
$this->view_name = str_replace('controller', '', strtolower($this->controller_name));
$this->script = $this->view_name;
@@ -153,7 +152,7 @@ class BaseController
{
$title = $title ? $title : $this->controller_title;
- return $prefix.$this->lang[$title].($suffix ? ': '.$suffix : '');
+ return $prefix . $this->lang[$title] . ($suffix ? ': ' . $suffix : '');
}
public function getContainer()
@@ -164,7 +163,11 @@ class BaseController
private function _getTableController()
{
if (null === $this->table_controller) {
- $this->table_controller = new \PHPPgAdmin\XHtml\HTMLTableController($this->getContainer(), $this->controller_name);
+ $this->prtrace(__METHOD__);
+ $this->table_controller = new \PHPPgAdmin\XHtml\HTMLTableController(
+ $this->getContainer(),
+ $this->controller_name
+ );
}
return $this->table_controller;
@@ -173,7 +176,11 @@ class BaseController
private function _getFooterController()
{
if (null === $this->footer_controller) {
- $this->footer_controller = new \PHPPgAdmin\XHtml\HTMLFooterController($this->getContainer(), $this->controller_name);
+ $this->prtrace(__METHOD__);
+ $this->footer_controller = new \PHPPgAdmin\XHtml\HTMLFooterController(
+ $this->getContainer(),
+ $this->controller_name
+ );
}
return $this->footer_controller;
@@ -182,7 +189,11 @@ class BaseController
private function _getHeaderController()
{
if (null === $this->header_controller) {
- $this->header_controller = new \PHPPgAdmin\XHtml\HTMLHeaderController($this->getContainer(), $this->controller_name);
+ $this->prtrace(__METHOD__);
+ $this->header_controller = new \PHPPgAdmin\XHtml\HTMLHeaderController(
+ $this->getContainer(),
+ $this->controller_name
+ );
}
return $this->header_controller;
@@ -191,19 +202,50 @@ class BaseController
private function _getNavbarController()
{
if (null === $this->trail_controller) {
- $this->trail_controller = new \PHPPgAdmin\XHtml\HTMLNavbarController($this->getContainer(), $this->controller_name);
+ $this->prtrace(__METHOD__);
+ $this->trail_controller = new \PHPPgAdmin\XHtml\HTMLNavbarController(
+ $this->getContainer(),
+ $this->controller_name
+ );
}
return $this->trail_controller;
}
- private function _getTreeController()
+ /**
+ * Gets the tree instance.
+ *
+ * @param \Slim\Container $container the $app container
+ * @param <type> $controller_name The controller name
+ *
+ * @return \PHPPgAdmin\XHtml\TreeController The tree controller instance.
+ */
+ private static function _getTreeInstance($container, $controller_name)
{
- if (null === $this->tree_controller) {
- $this->tree_controller = new \PHPPgAdmin\XHtml\TreeController($this->getContainer(), $this->controller_name);
+ if (null === self::$_tree_controller) {
+ self::$_tree_controller = new \PHPPgAdmin\XHtml\TreeController(
+ $container,
+ $controller_name
+ );
}
- return $this->tree_controller;
+ return self::$_tree_controller;
+ }
+
+ /**
+ * Gets the tree controller.
+ *
+ * @param string $from From where is this method being called, for debug purposes
+ *
+ * @return \PHPPgAdmin\XHtml\TreeController The tree controller.
+ */
+ private function _getTreeController($from)
+ {
+ //$tree = self::_getTreeInstance($this->getContainer(), $this->controller_name);
+ $tree = new \PHPPgAdmin\XHtml\TreeController($this->getContainer(), $this->controller_name);
+ $this->prtrace(__METHOD__);
+ return $tree;
+
}
/**
@@ -229,7 +271,8 @@ class BaseController
public function adjustTabsForTree($tabs)
{
- $tree = $this->_getTreeController();
+ //$tree = self::_getTreeInstance($this->getContainer(), $this->controller_name);
+ $tree = $this->_getTreeController(__METHOD__);
return $tree->adjustTabsForTree($tabs);
}
@@ -240,15 +283,24 @@ class BaseController
* @param \PHPPgAdmin\ArrayRecordSet $_treedata a set of records to populate the tree
* @param array $attrs Attributes for tree items
* @param string $section The section where the branch is linked in the tree
- * @param bool $print either to return or echo the result
*
- * @return \Slim\Http\Response|string the json rendered tree
+ * @return string the json rendered tree
*/
- public function printTree(&$_treedata, &$attrs, $section, $print = true)
+ public function printTree(&$_treedata, &$attrs, $section)
{
- $tree = $this->_getTreeController();
- return $tree->printTree($_treedata, $attrs, $section, $print);
+ $tree = $this->_getTreeController(__METHOD__);
+
+ $treedata = [];
+
+ if ($_treedata->recordCount() > 0) {
+ while (!$_treedata->EOF) {
+ $treedata[] = $_treedata->fields;
+ $_treedata->moveNext();
+ }
+ }
+
+ return $tree->printTreeJSON($treedata, $attrs, $section);
}
public function printTrail($trail = [], $do_print = true)
@@ -300,11 +352,25 @@ class BaseController
return $footer_controller->setNoBottomLink($flag);
}
- public function printFooter($doBody = true, $template = 'footer.twig')
+ /**
+ * Prints or returns the controller's footer
+ *
+ * @param boolean $doBody If false, return the body instead of print. Defaults to true
+ * @param string $template The template to render
+ * @param array $viewParams Optional - extra view parameters
+ *
+ * @return <type> ( description_of_the_return_value )
+ */
+ public function printFooter($doBody = true, $template = 'footer.twig', $viewParams = [])
{
$footer_controller = $this->_getFooterController();
- return $footer_controller->printFooter($doBody, $template);
+ $footer_html = $footer_controller->getFooter($template, $viewParams);
+ if ($doBody) {
+ echo $footer_html;
+ } else {
+ return $footer_html;
+ }
}
public function printReload($database, $do_print = true)
@@ -397,7 +463,7 @@ class BaseController
$html = '';
$msg = htmlspecialchars(\PHPPgAdmin\Traits\HelperTrait::br2ln($msg));
if ('' != $msg) {
- $html .= '<p class="message">'.nl2br($msg).'</p>'.PHP_EOL;
+ $html .= '<p class="message">' . nl2br($msg) . '</p>' . PHP_EOL;
}
if ($do_print) {
echo $html;
diff --git a/src/controllers/BrowserController.php b/src/controllers/BrowserController.php
index 7fbf51e6..a7b351cb 100644
--- a/src/controllers/BrowserController.php
+++ b/src/controllers/BrowserController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class BrowserController extends BaseController
{
diff --git a/src/controllers/CastsController.php b/src/controllers/CastsController.php
index 209e2616..7989adfa 100644
--- a/src/controllers/CastsController.php
+++ b/src/controllers/CastsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class CastsController extends BaseController
{
diff --git a/src/controllers/ColpropertiesController.php b/src/controllers/ColpropertiesController.php
index 2edbe1e0..558545e2 100644
--- a/src/controllers/ColpropertiesController.php
+++ b/src/controllers/ColpropertiesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class ColpropertiesController extends BaseController
{
diff --git a/src/controllers/ConstraintsController.php b/src/controllers/ConstraintsController.php
index ad7c1a75..26696bf0 100644
--- a/src/controllers/ConstraintsController.php
+++ b/src/controllers/ConstraintsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class ConstraintsController extends BaseController
{
@@ -119,7 +117,7 @@ class ConstraintsController extends BaseController
$cnPre = function (&$rowdata) use ($data) {
if (is_null($rowdata->fields['consrc'])) {
$atts = $data->getAttributeNames($_REQUEST['table'], explode(' ', $rowdata->fields['indkey']));
- $rowdata->fields['+definition'] = ('u' == $rowdata->fields['contype'] ? 'UNIQUE (' : 'PRIMARY KEY (').join(',', $atts).')';
+ $rowdata->fields['+definition'] = ('u' == $rowdata->fields['contype'] ? 'UNIQUE (' : 'PRIMARY KEY (').implode(',', $atts).')';
} else {
$rowdata->fields['+definition'] = $rowdata->fields['consrc'];
}
@@ -329,7 +327,7 @@ class ConstraintsController extends BaseController
// Check that they've given at least one source column
if (!isset($_REQUEST['SourceColumnList']) && (!isset($_POST['IndexColumnList']) ||
!is_array($_POST['IndexColumnList']) ||
- 0 == sizeof($_POST['IndexColumnList']))) {
+ 0 == count($_POST['IndexColumnList']))) {
return $this->formAddForeignKey($this->lang['strfkneedscols']);
}
// Copy the IndexColumnList variable from stage 1
@@ -476,8 +474,8 @@ class ConstraintsController extends BaseController
// If IndexColumnList or SourceColumnList are empty, return to screen to select referencing table columns
if (!is_array($_POST['IndexColumnList'])
- || 0 == sizeof($_POST['IndexColumnList'])
- || 0 == sizeof($temp)) {
+ || 0 == count($_POST['IndexColumnList'])
+ || 0 == count($temp)) {
return $this->_selectFKColumns($this->lang['strfkneedscols']);
}
@@ -624,7 +622,7 @@ class ConstraintsController extends BaseController
if ('primary' == $type) {
// Check that they've given at least one column
if (!isset($_POST['IndexColumnList']) || !is_array($_POST['IndexColumnList'])
- || 0 == sizeof($_POST['IndexColumnList'])
+ || 0 == count($_POST['IndexColumnList'])
) {
$this->formPrimaryOrUniqueKey($type, $this->lang['strpkneedscols']);
} else {
@@ -638,7 +636,7 @@ class ConstraintsController extends BaseController
} elseif ('unique' == $type) {
// Check that they've given at least one column
if (!isset($_POST['IndexColumnList']) || !is_array($_POST['IndexColumnList'])
- || 0 == sizeof($_POST['IndexColumnList'])
+ || 0 == count($_POST['IndexColumnList'])
) {
$this->formPrimaryOrUniqueKey($type, $this->lang['struniqneedscols']);
} else {
diff --git a/src/controllers/ConversionsController.php b/src/controllers/ConversionsController.php
index 45fc0d3d..121793e2 100644
--- a/src/controllers/ConversionsController.php
+++ b/src/controllers/ConversionsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class ConversionsController extends BaseController
{
diff --git a/src/controllers/DatabaseController.php b/src/controllers/DatabaseController.php
index ba8eb110..0494a5b3 100644
--- a/src/controllers/DatabaseController.php
+++ b/src/controllers/DatabaseController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class DatabaseController extends BaseController
{
@@ -45,22 +43,22 @@ class DatabaseController extends BaseController
$scripts = '';
// normal flow
if ('locks' == $this->action || 'processes' == $this->action) {
- $scripts .= '<script src="'.\SUBFOLDER.'/assets/js/database.js" type="text/javascript"></script>';
+ $scripts .= '<script src="' . \SUBFOLDER . '/assets/js/database.js" type="text/javascript"></script>';
$refreshTime = $this->conf['ajax_refresh'] * 1500;
- $scripts .= '<script type="text/javascript">'.PHP_EOL;
+ $scripts .= '<script type="text/javascript">' . PHP_EOL;
$scripts .= "var Database = {\n";
$scripts .= "ajax_time_refresh: {$refreshTime},\n";
- $scripts .= "str_start: {text:'{$this->lang['strstart']}',icon: '".$this->misc->icon('Execute')."'},\n";
- $scripts .= "str_stop: {text:'{$this->lang['strstop']}',icon: '".$this->misc->icon('Stop')."'},\n";
- $scripts .= "load_icon: '".$this->misc->icon('Loading')."',\n";
+ $scripts .= "str_start: {text:'{$this->lang['strstart']}',icon: '" . $this->misc->icon('Execute') . "'},\n";
+ $scripts .= "str_stop: {text:'{$this->lang['strstop']}',icon: '" . $this->misc->icon('Stop') . "'},\n";
+ $scripts .= "load_icon: '" . $this->misc->icon('Loading') . "',\n";
$scripts .= "server:'{$_REQUEST['server']}',\n";
$scripts .= "dbname:'{$_REQUEST['database']}',\n";
$scripts .= "action:'refresh_{$this->action}',\n";
- $scripts .= "errmsg: '".str_replace("'", "\\'", $this->lang['strconnectionfail'])."'\n";
+ $scripts .= "errmsg: '" . str_replace("'", "\\'", $this->lang['strconnectionfail']) . "'\n";
$scripts .= "};\n";
- $scripts .= '</script>'.PHP_EOL;
+ $scripts .= '</script>' . PHP_EOL;
}
$header_template = 'header.twig';
@@ -121,7 +119,7 @@ class DatabaseController extends BaseController
$this->printFooter(true, $footer_template);
}
- public function doTree($print = true)
+ public function doTree()
{
$reqvars = $this->misc->getRequestVars('database');
$tabs = $this->misc->getNavTabs('database');
@@ -149,7 +147,7 @@ class DatabaseController extends BaseController
),
];
- return $this->printTree($items, $attrs, 'database', $print);
+ return $this->printTree($items, $attrs, 'database');
}
/**
@@ -185,11 +183,11 @@ class DatabaseController extends BaseController
$this->printTabs('database', 'find');
$this->printMsg($msg);
- echo '<form action="'.\SUBFOLDER.'/src/views/database" method="post">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/database" method="post">' . PHP_EOL;
echo '<p><input name="term" value="', htmlspecialchars($_REQUEST['term']),
- "\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" />".PHP_EOL;
+ "\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" />" . PHP_EOL;
// Output list of filters. This is complex due to all the 'has' and 'conf' feature possibilities
- echo '<select name="filter">'.PHP_EOL;
+ echo '<select name="filter">' . PHP_EOL;
echo $this->_printTypeOption('');
echo $this->_printTypeOption('COLUMN');
@@ -213,12 +211,12 @@ class DatabaseController extends BaseController
echo $this->_printTypeOption('LANGUAGE');
}
- echo '</select>'.PHP_EOL;
- echo "<input type=\"submit\" value=\"{$this->lang['strfind']}\" />".PHP_EOL;
+ echo '</select>' . PHP_EOL;
+ echo "<input type=\"submit\" value=\"{$this->lang['strfind']}\" />" . PHP_EOL;
echo $this->misc->form;
- echo '<input type="hidden" name="action" value="find" /></p>'.PHP_EOL;
- echo '<input type="hidden" name="confirm" value="true" /></p>'.PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo '<input type="hidden" name="action" value="find" /></p>' . PHP_EOL;
+ echo '<input type="hidden" name="confirm" value="true" /></p>' . PHP_EOL;
+ echo '</form>' . PHP_EOL;
// Default focus
$this->setFocus('forms[0].term');
@@ -235,7 +233,7 @@ class DatabaseController extends BaseController
$filter = $_REQUEST['filter'];
$optionhtml = sprintf('%s<option value="%s" %s>', "\t", $curr, ($curr === $filter) ? ' selected="selected"' : '');
$optionhtml .= $this->_translatedType($curr);
- $optionhtml .= '</option>'.PHP_EOL;
+ $optionhtml .= '</option>' . PHP_EOL;
return $optionhtml;
}
@@ -279,95 +277,95 @@ class DatabaseController extends BaseController
{
switch ($curr) {
case 'SCHEMA':
- echo '<li><a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=";
+ echo '<li><a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=";
echo $this->misc->printVal($rs->fields['name']), '">';
echo $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']);
- echo '</a></li>'.PHP_EOL;
+ echo '</a></li>' . PHP_EOL;
break;
case 'TABLE':
echo '<li>';
echo "<a href=\"tables?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/table?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=',
- urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ echo '<a href="' . \SUBFOLDER . "/redirect/table?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=',
+ urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'VIEW':
echo '<li>';
echo "<a href=\"views?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/view?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;view=',
- urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ echo '<a href="' . \SUBFOLDER . "/redirect/view?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;view=',
+ urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'SEQUENCE':
echo '<li>';
echo "<a href=\"sequences?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"sequences?subject=sequence&amp;action=properties&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']),
- '&amp;sequence=', urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ '&amp;sequence=', urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'COLUMNTABLE':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"tblproperties?subject=table&{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
echo "<a href=\"colproperties?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=',
urlencode($rs->fields['relname']), '&amp;column=', urlencode($rs->fields['name']), '">',
- $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'COLUMNVIEW':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"viewproperties?subject=view&{$this->misc->href}&view=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
echo "<a href=\"colproperties?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;view=',
urlencode($rs->fields['relname']), '&amp;column=', urlencode($rs->fields['name']), '">',
- $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'INDEX':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
- echo "<a href=\"indexes?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=', urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
+ echo "<a href=\"indexes?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=', urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'CONSTRAINTTABLE':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
echo "<a href=\"constraints?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=',
- urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'CONSTRAINTDOMAIN':
echo '<li>';
echo "<a href=\"domains?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"domains?action=properties&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;domain=', urlencode($rs->fields['relname']), '">',
- $this->misc->printVal($rs->fields['relname']), '.', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->misc->printVal($rs->fields['relname']), '.', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'TRIGGER':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
echo "<a href=\"triggers?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;table=', urlencode($rs->fields['relname']), '">',
- $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'RULETABLE':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/table?{$this->misc->href}&table=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
echo "<a href=\"rules?subject=table&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;reltype=table&amp;table=',
- urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'RULEVIEW':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
- echo '<a href="'.\SUBFOLDER."/redirect/view?{$this->misc->href}&view=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/view?{$this->misc->href}&view=", urlencode($rs->fields['relname']), '&amp;schema=', urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['relname']), '</a>.';
echo "<a href=\"rules?subject=view&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;reltype=view&amp;view=',
- urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ urlencode($rs->fields['relname']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'FUNCTION':
@@ -375,53 +373,53 @@ class DatabaseController extends BaseController
echo "<a href=\"functions?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"functions?action=properties&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;function=',
urlencode($rs->fields['name']), '&amp;function_oid=', urlencode($rs->fields['oid']), '">',
- $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'TYPE':
echo '<li>';
echo "<a href=\"types?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"types?action=properties&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;type=',
- urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'DOMAIN':
echo '<li>';
echo "<a href=\"domains?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"domains?action=properties&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;domain=',
- urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ urlencode($rs->fields['name']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'OPERATOR':
echo '<li>';
echo "<a href=\"operators?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"operators?action=properties&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '&amp;operator=',
- urlencode($rs->fields['name']), '&amp;operator_oid=', urlencode($rs->fields['oid']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ urlencode($rs->fields['name']), '&amp;operator_oid=', urlencode($rs->fields['oid']), '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'CONVERSION':
echo '<li>';
echo "<a href=\"conversions?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"conversions?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']),
- '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ '">', $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'LANGUAGE':
- echo "<li><a href=\"languages?{$this->misc->href}\">", $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ echo "<li><a href=\"languages?{$this->misc->href}\">", $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'AGGREGATE':
echo '<li>';
echo "<a href=\"aggregates?subject=schema&{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"aggregates?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">',
- $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
case 'OPCLASS':
echo '<li>';
- echo '<a href="'.\SUBFOLDER."/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
+ echo '<a href="' . \SUBFOLDER . "/redirect/schema?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">', $this->misc->printVal($rs->fields['schemaname']), '</a>.';
echo "<a href=\"opclasses?{$this->misc->href}&schema=", urlencode($rs->fields['schemaname']), '">',
- $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>'.PHP_EOL;
+ $this->_highlight($this->misc->printVal($rs->fields['name']), $_REQUEST['term']), '</a></li>' . PHP_EOL;
break;
}
@@ -446,25 +444,25 @@ class DatabaseController extends BaseController
$curr = $rs->fields['type'];
} else {
if ('' != $curr) {
- echo '</ul>'.PHP_EOL;
+ echo '</ul>' . PHP_EOL;
}
$curr = $rs->fields['type'];
echo '<h3>';
echo $this->_translatedType($curr);
echo '</h3>';
- echo '<ul>'.PHP_EOL;
+ echo '<ul>' . PHP_EOL;
}
}
$this->_printHtmlForType($curr, $rs);
$rs->moveNext();
}
- echo '</ul>'.PHP_EOL;
+ echo '</ul>' . PHP_EOL;
- echo '<p>', $rs->recordCount(), ' ', $this->lang['strobjects'], '</p>'.PHP_EOL;
+ echo '<p>', $rs->recordCount(), ' ', $this->lang['strobjects'], '</p>' . PHP_EOL;
} else {
- echo "<p>{$this->lang['strnoobjects']}</p>".PHP_EOL;
+ echo "<p>{$this->lang['strnoobjects']}</p>" . PHP_EOL;
}
}
@@ -539,7 +537,7 @@ class DatabaseController extends BaseController
$this->printMsg($msg);
if (0 === strlen($msg)) {
- echo '<br /><a id="control" href=""><img src="'.$this->misc->icon('Refresh')."\" alt=\"{$this->lang['strrefresh']}\" title=\"{$this->lang['strrefresh']}\"/>&nbsp;{$this->lang['strrefresh']}</a>";
+ echo '<br /><a id="control" href=""><img src="' . $this->misc->icon('Refresh') . "\" alt=\"{$this->lang['strrefresh']}\" title=\"{$this->lang['strrefresh']}\"/>&nbsp;{$this->lang['strrefresh']}</a>";
}
echo '<div id="data_block">';
@@ -553,7 +551,7 @@ class DatabaseController extends BaseController
// Display prepared transactions
if ($data->hasPreparedXacts()) {
- echo "<h3>{$this->lang['strpreparedxacts']}</h3>".PHP_EOL;
+ echo "<h3>{$this->lang['strpreparedxacts']}</h3>" . PHP_EOL;
$prep_xacts = $data->getPreparedXacts($_REQUEST['database']);
$columns = [
@@ -581,7 +579,7 @@ class DatabaseController extends BaseController
}
// Fetch the processes from the database
- echo "<h3>{$this->lang['strprocesses']}</h3>".PHP_EOL;
+ echo "<h3>{$this->lang['strprocesses']}</h3>" . PHP_EOL;
$processes = $data->getProcesses($_REQUEST['database']);
$columns = [
@@ -721,7 +719,7 @@ class DatabaseController extends BaseController
$this->printTrail('database');
$this->printTabs('database', 'locks');
- echo '<br /><a id="control" href=""><img src="'.$this->misc->icon('Refresh')."\" alt=\"{$this->lang['strrefresh']}\" title=\"{$this->lang['strrefresh']}\"/>&nbsp;{$this->lang['strrefresh']}</a>";
+ echo '<br /><a id="control" href=""><img src="' . $this->misc->icon('Refresh') . "\" alt=\"{$this->lang['strrefresh']}\" title=\"{$this->lang['strrefresh']}\"/>&nbsp;{$this->lang['strrefresh']}</a>";
echo '<div id="data_block">';
$this->currentLocks();
@@ -740,27 +738,27 @@ class DatabaseController extends BaseController
$this->printTrail('database');
$this->printTabs('database', 'sql');
- echo "<p>{$this->lang['strentersql']}</p>".PHP_EOL;
- echo '<form action="'.\SUBFOLDER.'/src/views/sql" method="post" enctype="multipart/form-data" id="sqlform">'.PHP_EOL;
- echo "<p>{$this->lang['strsql']}<br />".PHP_EOL;
+ echo "<p>{$this->lang['strentersql']}</p>" . PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/sql" method="post" enctype="multipart/form-data" id="sqlform">' . PHP_EOL;
+ echo "<p>{$this->lang['strsql']}<br />" . PHP_EOL;
echo '<textarea style="width:95%;" rows="15" cols="50" name="query" id="query">',
- htmlspecialchars($_SESSION['sqlquery']), '</textarea></p>'.PHP_EOL;
+ htmlspecialchars($_SESSION['sqlquery']), '</textarea></p>' . PHP_EOL;
// Check that file uploads are enabled
if (ini_get('file_uploads')) {
// Don't show upload option if max size of uploads is zero
$max_size = $this->misc->inisizeToBytes(ini_get('upload_max_filesize'));
- if (is_double($max_size) && $max_size > 0) {
- echo "<p><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"{$max_size}\" />".PHP_EOL;
- echo "<label for=\"script\">{$this->lang['struploadscript']}</label> <input id=\"script\" name=\"script\" type=\"file\" /></p>".PHP_EOL;
+ if (is_float($max_size) && $max_size > 0) {
+ echo "<p><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"{$max_size}\" />" . PHP_EOL;
+ echo "<label for=\"script\">{$this->lang['struploadscript']}</label> <input id=\"script\" name=\"script\" type=\"file\" /></p>" . PHP_EOL;
}
}
- echo '<p><input type="checkbox" id="paginate" name="paginate"', (isset($_REQUEST['paginate']) ? ' checked="checked"' : ''), " /><label for=\"paginate\">{$this->lang['strpaginate']}</label></p>".PHP_EOL;
- echo "<p><input type=\"submit\" name=\"execute\" accesskey=\"r\" value=\"{$this->lang['strexecute']}\" />".PHP_EOL;
+ echo '<p><input type="checkbox" id="paginate" name="paginate"', (isset($_REQUEST['paginate']) ? ' checked="checked"' : ''), " /><label for=\"paginate\">{$this->lang['strpaginate']}</label></p>" . PHP_EOL;
+ echo "<p><input type=\"submit\" name=\"execute\" accesskey=\"r\" value=\"{$this->lang['strexecute']}\" />" . PHP_EOL;
echo $this->misc->form;
- echo "<input type=\"reset\" accesskey=\"q\" value=\"{$this->lang['strreset']}\" /></p>".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<input type=\"reset\" accesskey=\"q\" value=\"{$this->lang['strreset']}\" /></p>" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
// Default focus
$this->setFocus('forms[0].query');
diff --git a/src/controllers/DataexportController.php b/src/controllers/DataexportController.php
index 6f627103..eabb59d6 100644
--- a/src/controllers/DataexportController.php
+++ b/src/controllers/DataexportController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class DataexportController extends BaseController
{
diff --git a/src/controllers/DataimportController.php b/src/controllers/DataimportController.php
index c9be0be5..ed4ce1ea 100644
--- a/src/controllers/DataimportController.php
+++ b/src/controllers/DataimportController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class DataimportController extends BaseController
{
@@ -152,7 +150,7 @@ class DataimportController extends BaseController
$format[$i] = 'VALUE';
// Type is always text
$types[$i] = 'text';
- ++$i;
+ $i++;
}
$status = $data->insertRow($_REQUEST['table'], $fields, $vars, $nulls, $format, $types);
if (0 != $status) {
@@ -262,7 +260,7 @@ class DataimportController extends BaseController
$format[$i] = 'VALUE';
// Type is always text
$types[$i] = 'text';
- ++$i;
+ $i++;
}
$status = $data->insertRow($_REQUEST['table'], $t_fields, $vars, $nulls, $format, $types);
@@ -270,7 +268,7 @@ class DataimportController extends BaseController
$data->rollbackTransaction();
$this->halt(sprintf($this->lang['strimporterrorline'], $row));
}
- ++$row;
+ $row++;
}
break;
diff --git a/src/controllers/DbexportController.php b/src/controllers/DbexportController.php
index 09c2596e..6f3bf29f 100644
--- a/src/controllers/DbexportController.php
+++ b/src/controllers/DbexportController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class DbexportController extends BaseController
{
diff --git a/src/controllers/DisplayController.php b/src/controllers/DisplayController.php
index 5def4323..b1544a12 100644
--- a/src/controllers/DisplayController.php
+++ b/src/controllers/DisplayController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class DisplayController extends BaseController
{
@@ -769,14 +767,14 @@ class DisplayController extends BaseController
echo $this->misc->printVal($data->formatType($attrs->fields['type'], $attrs->fields['atttypmod']));
echo '<input type="hidden" name="types[', htmlspecialchars($attrs->fields['attname']), ']" value="',
htmlspecialchars($attrs->fields['type']), '" /></td>';
- ++$elements;
+ $elements++;
echo '<td style="white-space:nowrap;">'.PHP_EOL;
echo '<select name="format['.htmlspecialchars($attrs->fields['attname']), ']">'.PHP_EOL;
echo '<option value="VALUE"', ($_REQUEST['format'][$attrs->fields['attname']] == 'VALUE') ? ' selected="selected"' : '', ">{$this->lang['strvalue']}</option>".PHP_EOL;
$selected = ($_REQUEST['format'][$attrs->fields['attname']] == 'EXPRESSION') ? ' selected="selected"' : '';
echo '<option value="EXPRESSION"'.$selected.">{$this->lang['strexpression']}</option>".PHP_EOL;
echo "</select>\n</td>".PHP_EOL;
- ++$elements;
+ $elements++;
echo '<td style="white-space:nowrap;">';
// Output null box if the column allows nulls (doesn't look at CHECKs or ASSERTIONS)
if (!$attrs->fields['attnotnull']) {
@@ -786,7 +784,7 @@ class DisplayController extends BaseController
}
echo "<label><span><input type=\"checkbox\" class=\"nullcheckbox\" name=\"nulls[{$attrs->fields['attname']}]\"",
isset($_REQUEST['nulls'][$attrs->fields['attname']]) ? ' checked="checked"' : '', ' /></span></label></td>'.PHP_EOL;
- ++$elements;
+ $elements++;
} else {
echo '&nbsp;</td>';
}
@@ -811,9 +809,9 @@ class DisplayController extends BaseController
echo $data->printField("values[{$attrs->fields['attname']}]", $resultset->fields[$attrs->fields['attname']], $attrs->fields['type'], $extras);
echo '</td>';
- ++$elements;
+ $elements++;
echo '</tr>'.PHP_EOL;
- ++$i;
+ $i++;
$attrs->moveNext();
}
echo '</table>'.PHP_EOL;
@@ -1118,7 +1116,7 @@ class DisplayController extends BaseController
list($min_page, $max_page) = $this->_getMinMaxPages($page, $pages);
- for ($i = $min_page; $i <= $max_page; ++$i) {
+ for ($i = $min_page; $i <= $max_page; $i++) {
$result .= (($i === $page) ? $i : sprintf('<a class="pagenav" href="display?%s&page=%s">%s</a>', $url, $i, $i)).PHP_EOL;
}
diff --git a/src/controllers/DomainsController.php b/src/controllers/DomainsController.php
index 3cb0afb7..776c4c87 100644
--- a/src/controllers/DomainsController.php
+++ b/src/controllers/DomainsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class DomainsController extends BaseController
{
diff --git a/src/controllers/FulltextController.php b/src/controllers/FulltextController.php
index 59656287..b77c556e 100644
--- a/src/controllers/FulltextController.php
+++ b/src/controllers/FulltextController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class FulltextController extends BaseController
{
diff --git a/src/controllers/FunctionsController.php b/src/controllers/FunctionsController.php
index 5b6b4718..57006e5b 100644
--- a/src/controllers/FunctionsController.php
+++ b/src/controllers/FunctionsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class FunctionsController extends BaseController
{
@@ -390,8 +388,8 @@ class FunctionsController extends BaseController
$names_arr = $data->phpArray($fndata->fields['proargnames']);
$modes_arr = $data->phpArray($fndata->fields['proargmodes']);
$args = '';
- $args_arr_size = sizeof($args_arr);
- for ($i = 0; $i < $args_arr_size; ++$i) {
+ $args_arr_size = count($args_arr);
+ for ($i = 0; $i < $args_arr_size; $i++) {
if (0 != $i) {
$args .= ', ';
}
@@ -576,7 +574,7 @@ class FunctionsController extends BaseController
}
// Display function properties
- if (is_array($data->funcprops) && sizeof($data->funcprops) > 0) {
+ if (is_array($data->funcprops) && count($data->funcprops) > 0) {
echo "<tr><th class=\"data\" colspan=\"5\">{$this->lang['strproperties']}</th></tr>".PHP_EOL;
echo '<tr><td class="data1" colspan="5">'.PHP_EOL;
$i = 0;
@@ -588,7 +586,7 @@ class FunctionsController extends BaseController
'>', $this->misc->printVal($p), '</option>'.PHP_EOL;
}
echo '</select><br />'.PHP_EOL;
- ++$i;
+ $i++;
}
echo '</td></tr>'.PHP_EOL;
}
@@ -746,7 +744,7 @@ class FunctionsController extends BaseController
}
// Show flags
- if (is_array($data->funcprops) && sizeof($data->funcprops) > 0) {
+ if (is_array($data->funcprops) && count($data->funcprops) > 0) {
// Fetch an array of the function properties
$funcprops = $data->getFunctionProperties($funcdata->fields);
echo "<tr><th class=\"data\" colspan=\"4\">{$this->lang['strproperties']}</th></tr>".PHP_EOL;
@@ -1067,7 +1065,7 @@ class FunctionsController extends BaseController
}
// Display function properties
- if (is_array($data->funcprops) && sizeof($data->funcprops) > 0) {
+ if (is_array($data->funcprops) && count($data->funcprops) > 0) {
echo "<tr><th class=\"data required\" colspan=\"4\">{$this->lang['strproperties']}</th></tr>".PHP_EOL;
echo '<tr><td class="data1" colspan="4">'.PHP_EOL;
$i = 0;
@@ -1079,7 +1077,7 @@ class FunctionsController extends BaseController
'>', $this->misc->printVal($p), '</option>'.PHP_EOL;
}
echo '</select><br />'.PHP_EOL;
- ++$i;
+ $i++;
}
echo '</td></tr>'.PHP_EOL;
}
@@ -1214,7 +1212,7 @@ class FunctionsController extends BaseController
$szReturn .= '<script type="text/javascript">';
$szReturn .= "RebuildArgTR('{$szMode}','{$szArgName}','{$szArgType}',new Boolean({$bArgIsArray},{$subfolder}));";
$szReturn .= '</script>;';
- ++$nC;
+ $nC++;
}
return $szReturn;
@@ -1264,8 +1262,8 @@ class FunctionsController extends BaseController
$names_arr = $data->phpArray($funcdata->fields['proargnames']);
$modes_arr = $data->phpArray($funcdata->fields['proargmodes']);
$args = '';
- $args_arr_size = sizeof($args_arr);
- for ($i = 0; $i < $args_arr_size; ++$i) {
+ $args_arr_size = count($args_arr);
+ for ($i = 0; $i < $args_arr_size; $i++) {
if (0 != $i) {
$args .= ', ';
}
diff --git a/src/controllers/GroupsController.php b/src/controllers/GroupsController.php
index 44d513e3..7c0e759e 100644
--- a/src/controllers/GroupsController.php
+++ b/src/controllers/GroupsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class GroupsController extends BaseController
{
diff --git a/src/controllers/HelpController.php b/src/controllers/HelpController.php
index 62285a8f..bcab8722 100644
--- a/src/controllers/HelpController.php
+++ b/src/controllers/HelpController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class HelpController extends BaseController
{
diff --git a/src/controllers/HistoryController.php b/src/controllers/HistoryController.php
index 54c05253..cdd2f74a 100644
--- a/src/controllers/HistoryController.php
+++ b/src/controllers/HistoryController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class HistoryController extends BaseController
{
@@ -60,7 +58,7 @@ class HistoryController extends BaseController
// Set the name of the window
$this->setWindowName('history');
- return $this->printFooter(true, 'footer_sqledit.twig');
+ return $this->printFooter(true, 'footer_sqledit.twig', true);
}
public function doDefault()
@@ -70,14 +68,14 @@ class HistoryController extends BaseController
$this->printHeader($this->headerTitle(), $this->scripts, true, 'header.twig');
// Bring to the front always
- echo '<body onload="window.focus();">'.PHP_EOL;
+ echo '<body onload="window.focus();">' . PHP_EOL;
- echo '<form action="'.\SUBFOLDER.'/src/views/history" method="post">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/history" method="post">' . PHP_EOL;
$this->printConnection('history');
echo '</form><br />';
if (!isset($_REQUEST['database'])) {
- echo "<p>{$this->lang['strnodatabaseselected']}</p>".PHP_EOL;
+ echo "<p>{$this->lang['strnodatabaseselected']}</p>" . PHP_EOL;
return;
}
@@ -133,7 +131,7 @@ class HistoryController extends BaseController
echo $this->printTable($history, $columns, $actions, 'history-history', $this->lang['strnohistory']);
} else {
- echo "<p>{$this->lang['strnohistory']}</p>".PHP_EOL;
+ echo "<p>{$this->lang['strnohistory']}</p>" . PHP_EOL;
}
$navlinks = [
@@ -191,19 +189,19 @@ class HistoryController extends BaseController
$this->printHeader($this->headerTitle(), $this->scripts);
// Bring to the front always
- echo '<body onload="window.focus();">'.PHP_EOL;
+ echo '<body onload="window.focus();">' . PHP_EOL;
- echo "<h3>{$this->lang['strdelhistory']}</h3>".PHP_EOL;
- echo "<p>{$this->lang['strconfdelhistory']}</p>".PHP_EOL;
+ echo "<h3>{$this->lang['strdelhistory']}</h3>" . PHP_EOL;
+ echo "<p>{$this->lang['strconfdelhistory']}</p>" . PHP_EOL;
echo '<pre>', htmlentities($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']][$qid]['query'], ENT_QUOTES, 'UTF-8'), '</pre>';
- echo '<form action="'.\SUBFOLDER.'/src/views/history" method="post">'.PHP_EOL;
- echo '<input type="hidden" name="action" value="delhistory" />'.PHP_EOL;
- echo "<input type=\"hidden\" name=\"queryid\" value=\"${qid}\" />".PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/history" method="post">' . PHP_EOL;
+ echo '<input type="hidden" name="action" value="delhistory" />' . PHP_EOL;
+ echo "<input type=\"hidden\" name=\"queryid\" value=\"${qid}\" />" . PHP_EOL;
echo $this->misc->form;
- echo "<input type=\"submit\" name=\"yes\" value=\"{$this->lang['stryes']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"no\" value=\"{$this->lang['strno']}\" />".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<input type=\"submit\" name=\"yes\" value=\"{$this->lang['stryes']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"no\" value=\"{$this->lang['strno']}\" />" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
} else {
unset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']][$qid]);
}
@@ -215,17 +213,17 @@ class HistoryController extends BaseController
$this->printHeader($this->headerTitle(), $this->scripts);
// Bring to the front always
- echo '<body onload="window.focus();">'.PHP_EOL;
+ echo '<body onload="window.focus();">' . PHP_EOL;
- echo "<h3>{$this->lang['strclearhistory']}</h3>".PHP_EOL;
- echo "<p>{$this->lang['strconfclearhistory']}</p>".PHP_EOL;
+ echo "<h3>{$this->lang['strclearhistory']}</h3>" . PHP_EOL;
+ echo "<p>{$this->lang['strconfclearhistory']}</p>" . PHP_EOL;
- echo '<form action="'.\SUBFOLDER.'/src/views/history" method="post">'.PHP_EOL;
- echo '<input type="hidden" name="action" value="clearhistory" />'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/history" method="post">' . PHP_EOL;
+ echo '<input type="hidden" name="action" value="clearhistory" />' . PHP_EOL;
echo $this->misc->form;
- echo "<input type=\"submit\" name=\"yes\" value=\"{$this->lang['stryes']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"no\" value=\"{$this->lang['strno']}\" />".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<input type=\"submit\" name=\"yes\" value=\"{$this->lang['stryes']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"no\" value=\"{$this->lang['strno']}\" />" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
} else {
unset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']]);
}
diff --git a/src/controllers/IndexesController.php b/src/controllers/IndexesController.php
index 4256bc0a..4b28fa47 100644
--- a/src/controllers/IndexesController.php
+++ b/src/controllers/IndexesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class IndexesController extends BaseController
{
diff --git a/src/controllers/InfoController.php b/src/controllers/InfoController.php
index 3e385538..bcf2d6df 100644
--- a/src/controllers/InfoController.php
+++ b/src/controllers/InfoController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class InfoController extends BaseController
{
@@ -176,7 +174,7 @@ class InfoController extends BaseController
echo "\t\t<td>", $this->misc->printVal($tablestatstups->fields['n_tup_del'], 'int4', $this->shownull), '</td>'.PHP_EOL;
echo "\t</tr>".PHP_EOL;
$tablestatstups->movenext();
- ++$i;
+ $i++;
}
echo '</table>'.PHP_EOL;
@@ -258,7 +256,7 @@ class InfoController extends BaseController
echo "\t\t<td>({$percentage}{$this->lang['strpercent']})</td>".PHP_EOL;
echo "\t</tr>".PHP_EOL;
$tablestatsio->movenext();
- ++$i;
+ $i++;
}
echo '</table>'.PHP_EOL;
@@ -286,7 +284,7 @@ class InfoController extends BaseController
echo "\t\t<td>", $this->misc->printVal($indexstatstups->fields['idx_tup_fetch'], 'int4', $this->shownull), '</td>'.PHP_EOL;
echo "\t</tr>".PHP_EOL;
$indexstatstups->movenext();
- ++$i;
+ $i++;
}
echo '</table>'.PHP_EOL;
@@ -321,7 +319,7 @@ class InfoController extends BaseController
echo "\t\t<td>({$percentage}{$this->lang['strpercent']})</td>".PHP_EOL;
echo "\t</tr>".PHP_EOL;
$indexstatsio->movenext();
- ++$i;
+ $i++;
}
echo '</table>'.PHP_EOL;
diff --git a/src/controllers/IntroController.php b/src/controllers/IntroController.php
index c45f0bbe..2a95b6a3 100644
--- a/src/controllers/IntroController.php
+++ b/src/controllers/IntroController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class IntroController extends BaseController
{
diff --git a/src/controllers/LanguagesController.php b/src/controllers/LanguagesController.php
index b8508a28..d1375209 100644
--- a/src/controllers/LanguagesController.php
+++ b/src/controllers/LanguagesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class LanguagesController extends BaseController
{
diff --git a/src/controllers/LoginController.php b/src/controllers/LoginController.php
index f5cd5821..ff6b94c2 100644
--- a/src/controllers/LoginController.php
+++ b/src/controllers/LoginController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -109,7 +109,7 @@ class LoginController extends BaseController
$login_html .= '<td><input id="loginPassword" type="password" name="loginPassword_'.$md5_server.'" size="24" /></td>';
$login_html .= '</tr>';
$login_html .= '</table>';
- if (sizeof($this->conf['servers']) > 1) {
+ if (count($this->conf['servers']) > 1) {
$checked = isset($_POST['loginShared']) ? 'checked="checked"' : '';
$login_html .= '<p><input type="checkbox" id="loginShared" name="loginShared" '.$checked.' />';
$login_html .= '<label for="loginShared">'.$this->lang['strtrycred'].'</label></p>';
diff --git a/src/controllers/MaterializedviewpropertiesController.php b/src/controllers/MaterializedviewpropertiesController.php
index 49f0d0e0..11c3b38c 100644
--- a/src/controllers/MaterializedviewpropertiesController.php
+++ b/src/controllers/MaterializedviewpropertiesController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class MaterializedviewpropertiesController extends BaseController
{
diff --git a/src/controllers/MaterializedviewsController.php b/src/controllers/MaterializedviewsController.php
index 3c483c75..47f8adeb 100644
--- a/src/controllers/MaterializedviewsController.php
+++ b/src/controllers/MaterializedviewsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class MaterializedviewsController extends BaseController
{
diff --git a/src/controllers/OpclassesController.php b/src/controllers/OpclassesController.php
index 34494336..4a7a8cca 100644
--- a/src/controllers/OpclassesController.php
+++ b/src/controllers/OpclassesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class OpclassesController extends BaseController
{
diff --git a/src/controllers/OperatorsController.php b/src/controllers/OperatorsController.php
index 0c40aa96..4b84de97 100644
--- a/src/controllers/OperatorsController.php
+++ b/src/controllers/OperatorsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class OperatorsController extends BaseController
{
diff --git a/src/controllers/PrivilegesController.php b/src/controllers/PrivilegesController.php
index 186a0ef5..9a113cb7 100644
--- a/src/controllers/PrivilegesController.php
+++ b/src/controllers/PrivilegesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -95,7 +95,7 @@ class PrivilegesController extends BaseController
$privileges = $data->getPrivileges($object, $subject);
}
- if (sizeof($privileges) > 0) {
+ if (count($privileges) > 0) {
echo '<table>'.PHP_EOL;
if ($data->hasRoles()) {
echo "<tr><th class=\"data\">{$this->lang['strrole']}</th>";
@@ -150,7 +150,7 @@ class PrivilegesController extends BaseController
echo '<td>', $this->misc->printVal($v[3]), '</td>'.PHP_EOL;
}
echo '</tr>'.PHP_EOL;
- ++$i;
+ $i++;
}
echo '</table>';
diff --git a/src/controllers/RolesController.php b/src/controllers/RolesController.php
index 69741a98..c7dbc4d2 100644
--- a/src/controllers/RolesController.php
+++ b/src/controllers/RolesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class RolesController extends BaseController
{
diff --git a/src/controllers/RulesController.php b/src/controllers/RulesController.php
index 84286d09..8af5b0e8 100644
--- a/src/controllers/RulesController.php
+++ b/src/controllers/RulesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class RulesController extends BaseController
{
diff --git a/src/controllers/SchemasController.php b/src/controllers/SchemasController.php
index 0ecbd6ed..48b4f13e 100644
--- a/src/controllers/SchemasController.php
+++ b/src/controllers/SchemasController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class SchemasController extends BaseController
{
diff --git a/src/controllers/SequencesController.php b/src/controllers/SequencesController.php
index 53f1bf4b..719cfc23 100644
--- a/src/controllers/SequencesController.php
+++ b/src/controllers/SequencesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class SequencesController extends BaseController
{
diff --git a/src/controllers/ServersController.php b/src/controllers/ServersController.php
index e186b054..419c9953 100644
--- a/src/controllers/ServersController.php
+++ b/src/controllers/ServersController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class ServersController extends BaseController
{
diff --git a/src/controllers/SqlController.php b/src/controllers/SqlController.php
index d143fccf..60844211 100644
--- a/src/controllers/SqlController.php
+++ b/src/controllers/SqlController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class SqlController extends BaseController
{
@@ -131,7 +129,7 @@ class SqlController extends BaseController
// If rows returned, then display the results
$num_fields = pg_numfields($rs);
echo "<p><table>\n<tr>";
- for ($k = 0; $k < $num_fields; ++$k) {
+ for ($k = 0; $k < $num_fields; $k++) {
echo '<th class="data">', $misc->printVal(pg_fieldname($rs, $k)), '</th>';
}
@@ -145,7 +143,7 @@ class SqlController extends BaseController
}
echo '</tr>'.PHP_EOL;
$row = pg_fetch_row($rs);
- ++$i;
+ $i++;
}
echo '</table><br/>'.PHP_EOL;
@@ -218,7 +216,7 @@ class SqlController extends BaseController
}
echo '</tr>'.PHP_EOL;
$rs->moveNext();
- ++$i;
+ $i++;
}
echo '</table>'.PHP_EOL;
echo '<p>', $rs->recordCount(), " {$this->lang['strrows']}</p>".PHP_EOL;
diff --git a/src/controllers/SqleditController.php b/src/controllers/SqleditController.php
index 6e329766..0a746623 100644
--- a/src/controllers/SqleditController.php
+++ b/src/controllers/SqleditController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class SqleditController extends BaseController
{
@@ -46,8 +44,8 @@ class SqleditController extends BaseController
$this->printHeader($title, $this->scripts, true, 'header_sqledit.twig');
$this->printBody(true, 'sql_edit');
echo $body_text;
-
- $this->printFooter(true, 'footer_sqledit.twig');
+ $this->container->get('view')->offsetSet('inPopUp', true);
+ $this->printFooter(true, 'footer_sqledit.twig', true);
}
/**
@@ -67,7 +65,7 @@ class SqleditController extends BaseController
$default_html = $this->printTabs($this->misc->getNavTabs('popup'), 'sql', false);
- $default_html .= '<form action="'.\SUBFOLDER.'/src/views/sql" method="post" enctype="multipart/form-data" class="sqlform" id="sqlform" target="detail">';
+ $default_html .= '<form action="' . \SUBFOLDER . '/src/views/sql" method="post" enctype="multipart/form-data" class="sqlform" id="sqlform" target="detail">';
$default_html .= PHP_EOL;
$default_html .= $this->printConnection('sql', false);
@@ -77,48 +75,48 @@ class SqleditController extends BaseController
$default_html .= '<label>';
$default_html .= $this->misc->printHelp($this->lang['strsearchpath'], 'pg.schema.search_path', false);
- $default_html .= ': <input type="text" name="search_path" id="search_path" size="45" value="'.$search_path.'" />';
- $default_html .= '</label>'.PHP_EOL;
+ $default_html .= ': <input type="text" name="search_path" id="search_path" size="45" value="' . $search_path . '" />';
+ $default_html .= '</label>' . PHP_EOL;
- $default_html .= '</div>'.PHP_EOL;
+ $default_html .= '</div>' . PHP_EOL;
$default_html .= '<div id="queryedition" style="padding:1%;width:98%;float:left;">';
$default_html .= PHP_EOL;
- $default_html .= '<textarea style="width:98%;" rows="10" cols="50" name="query" id="query" resizable="true">'.$sqlquery.'</textarea>';
+ $default_html .= '<textarea style="width:98%;" rows="10" cols="50" name="query" id="query" resizable="true">' . $sqlquery . '</textarea>';
$default_html .= PHP_EOL;
- $default_html .= '</div>'.PHP_EOL;
+ $default_html .= '</div>' . PHP_EOL;
$default_html .= '<div class="sqledit_bottom_inputs" >';
if (ini_get('file_uploads')) {
// Don't show upload option if max size of uploads is zero
$max_size = $this->misc->inisizeToBytes(ini_get('upload_max_filesize'));
- if (is_double($max_size) && $max_size > 0) {
+ if (is_float($max_size) && $max_size > 0) {
$default_html .= '<p class="upload_sql_script">';
- $default_html .= '<input type="hidden" name="MAX_FILE_SIZE" value="'.$max_size.'" />';
+ $default_html .= '<input type="hidden" name="MAX_FILE_SIZE" value="' . $max_size . '" />';
$default_html .= PHP_EOL;
- $default_html .= '<label for="script">'.$this->lang['struploadscript'].'</label>';
+ $default_html .= '<label for="script">' . $this->lang['struploadscript'] . '</label>';
$default_html .= '&nbsp;&nbsp; <input class="btn btn-small" id="script" name="script" type="file" /></p>';
- $default_html .= '</p>'.PHP_EOL;
+ $default_html .= '</p>' . PHP_EOL;
}
}
// Check that file uploads are enabled
$checked = (isset($_REQUEST['paginate']) ? ' checked="checked"' : '');
- $default_html .= '<p><input type="submit" class="btn btn-small" name="execute" accesskey="r" value="'.$this->lang['strexecute'].'" />';
+ $default_html .= '<p><input type="submit" class="btn btn-small" name="execute" accesskey="r" value="' . $this->lang['strexecute'] . '" />';
$default_html .= PHP_EOL;
- $default_html .= '<input type="reset" class="btn btn-small" accesskey="q" value="'.$this->lang['strreset'].'" /></p>';
+ $default_html .= '<input type="reset" class="btn btn-small" accesskey="q" value="' . $this->lang['strreset'] . '" /></p>';
$default_html .= PHP_EOL;
$default_html .= '<p>';
$default_html .= '<label for="paginate">';
- $default_html .= '<input type="checkbox" id="paginate" name="paginate"'.$checked.' />&nbsp;'.$this->lang['strpaginate'].'&nbsp;';
- $default_html .= '</label>'.PHP_EOL;
- $default_html .= '</p>'.PHP_EOL;
+ $default_html .= '<input type="checkbox" id="paginate" name="paginate"' . $checked . ' />&nbsp;' . $this->lang['strpaginate'] . '&nbsp;';
+ $default_html .= '</label>' . PHP_EOL;
+ $default_html .= '</p>' . PHP_EOL;
- $default_html .= '</div>'.PHP_EOL;
+ $default_html .= '</div>' . PHP_EOL;
$default_html .= '</form>';
$default_html .= PHP_EOL;
@@ -173,9 +171,9 @@ class SqleditController extends BaseController
$default_html = $this->printTabs($this->misc->getNavTabs('popup'), 'find', false);
- $default_html .= '<form action="database" method="post" target="detail">'.PHP_EOL;
+ $default_html .= '<form action="database" method="post" target="detail">' . PHP_EOL;
$default_html .= $this->printConnection('find', false);
- $default_html .= '<p><input class="focusme" name="term" id="term" value="'.htmlspecialchars($_REQUEST['term'])."\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" />".PHP_EOL;
+ $default_html .= '<p><input class="focusme" name="term" id="term" value="' . htmlspecialchars($_REQUEST['term']) . "\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" />" . PHP_EOL;
$filters = $this->_getFilters();
$advanced_filters = $this->_getAdvancedFilters();
@@ -189,22 +187,22 @@ class SqleditController extends BaseController
}
// Output list of filters. This is complex due to all the 'has' and 'conf' feature possibilities
- $default_html .= "<select id='filter' name=\"filter\">".PHP_EOL;
- $default_html .= sprintf('%s<option value=""'.('' == $_REQUEST['filter'] ? ' selected="selected" ' : '').">{$this->lang['strallobjects']}</option>".PHP_EOL, "\t");
+ $default_html .= "<select id='filter' name=\"filter\">" . PHP_EOL;
+ $default_html .= sprintf('%s<option value=""' . ('' == $_REQUEST['filter'] ? ' selected="selected" ' : '') . ">{$this->lang['strallobjects']}</option>" . PHP_EOL, "\t");
foreach ($filters as $type => $props) {
- $default_html .= sprintf('%s<option value="%s" %s >%s</option>'.PHP_EOL, "\t", $type, $props['selected'], $this->lang[$props['langkey']]);
+ $default_html .= sprintf('%s<option value="%s" %s >%s</option>' . PHP_EOL, "\t", $type, $props['selected'], $this->lang[$props['langkey']]);
}
if ($this->conf['show_advanced']) {
foreach ($advanced_filters as $type => $props) {
- $default_html .= sprintf('%s<option value="%s" %s >%s</option>'.PHP_EOL, "\t", $type, $props['selected'], $this->lang[$props['langkey']]);
+ $default_html .= sprintf('%s<option value="%s" %s >%s</option>' . PHP_EOL, "\t", $type, $props['selected'], $this->lang[$props['langkey']]);
}
}
- $default_html .= '</select>'.PHP_EOL;
+ $default_html .= '</select>' . PHP_EOL;
- $default_html .= "<input type=\"submit\" value=\"{$this->lang['strfind']}\" />".PHP_EOL;
- $default_html .= '<input type="hidden" name="action" value="find" /></p>'.PHP_EOL;
- $default_html .= '</form>'.PHP_EOL;
+ $default_html .= "<input type=\"submit\" value=\"{$this->lang['strfind']}\" />" . PHP_EOL;
+ $default_html .= '<input type="hidden" name="action" value="find" /></p>' . PHP_EOL;
+ $default_html .= '</form>' . PHP_EOL;
// Default focus
$this->setFocus('forms[0].term');
diff --git a/src/controllers/TablesController.php b/src/controllers/TablesController.php
index 329f99bd..cd273b6e 100644
--- a/src/controllers/TablesController.php
+++ b/src/controllers/TablesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class TablesController extends BaseController
{
@@ -142,7 +140,7 @@ class TablesController extends BaseController
'table' => [
'title' => $this->lang['strtable'],
'field' => Decorator::field('relname'),
- 'url' => \SUBFOLDER."/redirect/table?{$this->misc->href}&amp;",
+ 'url' => \SUBFOLDER . "/redirect/table?{$this->misc->href}&amp;",
'vars' => ['table' => 'relname'],
],
'owner' => [
@@ -323,8 +321,6 @@ class TablesController extends BaseController
//\Kint::dump($tables);
- echo $this->printTable($tables, $columns, $actions, $this->table_place, $this->lang['strnotables']);
-
$navlinks = [
'create' => [
'attr' => [
@@ -358,7 +354,15 @@ class TablesController extends BaseController
'content' => $this->lang['strcreatetablelike'],
];
}
- $this->printNavLinks($navlinks, 'tables-tables', get_defined_vars());
+ $tablesContent = $this->printTable(
+ $tables,
+ $columns,
+ $actions,
+ $this->table_place,
+ $this->lang['strnotables']
+ );
+
+ $navLinks = $this->printNavLinks($navlinks, 'tables-tables', get_defined_vars(), false);
}
public function displayJson()
@@ -469,46 +473,46 @@ class TablesController extends BaseController
$this->printTitle($this->lang['strcreatetable'], 'pg.table.create');
$this->printMsg($msg);
- echo '<form action="'.\SUBFOLDER.'/src/views/'.$this->script.'" method="post">';
+ echo '<form action="' . \SUBFOLDER . '/src/views/' . $this->script . '" method="post">';
echo PHP_EOL;
- echo '<table>'.PHP_EOL;
- echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strname']}</th>".PHP_EOL;
+ echo '<table>' . PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strname']}</th>" . PHP_EOL;
echo "\t\t<td class=\"data\"><input name=\"name\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" value=\"",
- htmlspecialchars($_REQUEST['name']), "\" /></td>\n\t</tr>".PHP_EOL;
- echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strnumcols']}</th>".PHP_EOL;
+ htmlspecialchars($_REQUEST['name']), "\" /></td>\n\t</tr>" . PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strnumcols']}</th>" . PHP_EOL;
echo "\t\t<td class=\"data\"><input name=\"fields\" size=\"5\" maxlength=\"{$data->_maxNameLen}\" value=\"",
- htmlspecialchars($_REQUEST['fields']), "\" /></td>\n\t</tr>".PHP_EOL;
- echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['stroptions']}</th>".PHP_EOL;
- echo "\t\t<td class=\"data\"><label for=\"withoutoids\"><input type=\"checkbox\" id=\"withoutoids\" name=\"withoutoids\"", isset($_REQUEST['withoutoids']) ? ' checked="checked"' : '', " />WITHOUT OIDS</label></td>\n\t</tr>".PHP_EOL;
+ htmlspecialchars($_REQUEST['fields']), "\" /></td>\n\t</tr>" . PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['stroptions']}</th>" . PHP_EOL;
+ echo "\t\t<td class=\"data\"><label for=\"withoutoids\"><input type=\"checkbox\" id=\"withoutoids\" name=\"withoutoids\"", isset($_REQUEST['withoutoids']) ? ' checked="checked"' : '', " />WITHOUT OIDS</label></td>\n\t</tr>" . PHP_EOL;
// Tablespace (if there are any)
if ($data->hasTablespaces() && $tablespaces->recordCount() > 0) {
- echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['strtablespace']}</th>".PHP_EOL;
- echo "\t\t<td class=\"data1\">\n\t\t\t<select name=\"spcname\">".PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['strtablespace']}</th>" . PHP_EOL;
+ echo "\t\t<td class=\"data1\">\n\t\t\t<select name=\"spcname\">" . PHP_EOL;
// Always offer the default (empty) option
echo "\t\t\t\t<option value=\"\"",
- ('' == $_REQUEST['spcname']) ? ' selected="selected"' : '', '></option>'.PHP_EOL;
+ ('' == $_REQUEST['spcname']) ? ' selected="selected"' : '', '></option>' . PHP_EOL;
// Display all other tablespaces
while (!$tablespaces->EOF) {
$spcname = htmlspecialchars($tablespaces->fields['spcname']);
echo "\t\t\t\t<option value=\"{$spcname}\"",
- ($tablespaces->fields['spcname'] == $_REQUEST['spcname']) ? ' selected="selected"' : '', ">{$spcname}</option>".PHP_EOL;
+ ($tablespaces->fields['spcname'] == $_REQUEST['spcname']) ? ' selected="selected"' : '', ">{$spcname}</option>" . PHP_EOL;
$tablespaces->moveNext();
}
- echo "\t\t\t</select>\n\t\t</td>\n\t</tr>".PHP_EOL;
+ echo "\t\t\t</select>\n\t\t</td>\n\t</tr>" . PHP_EOL;
}
- echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['strcomment']}</th>".PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['strcomment']}</th>" . PHP_EOL;
echo "\t\t<td><textarea name=\"tblcomment\" rows=\"3\" cols=\"32\">",
- htmlspecialchars($_REQUEST['tblcomment']), "</textarea></td>\n\t</tr>".PHP_EOL;
+ htmlspecialchars($_REQUEST['tblcomment']), "</textarea></td>\n\t</tr>" . PHP_EOL;
- echo '</table>'.PHP_EOL;
- echo '<p><input type="hidden" name="action" value="create" />'.PHP_EOL;
- echo '<input type="hidden" name="stage" value="2" />'.PHP_EOL;
+ echo '</table>' . PHP_EOL;
+ echo '<p><input type="hidden" name="action" value="create" />' . PHP_EOL;
+ echo '<input type="hidden" name="stage" value="2" />' . PHP_EOL;
echo $this->misc->form;
- echo "<input type=\"submit\" value=\"{$this->lang['strnext']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<input type=\"submit\" value=\"{$this->lang['strnext']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
break;
case 2:
@@ -534,17 +538,17 @@ class TablesController extends BaseController
$this->printTitle($this->lang['strcreatetable'], 'pg.table.create');
$this->printMsg($msg);
- echo '<script src="'.\SUBFOLDER.'/assets/js/tables.js" type="text/javascript"></script>';
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post">'.PHP_EOL;
+ echo '<script src="' . \SUBFOLDER . '/assets/js/tables.js" type="text/javascript"></script>';
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post">' . PHP_EOL;
// Output table header
- echo '<table>'.PHP_EOL;
+ echo '<table>' . PHP_EOL;
echo "\t<tr><th colspan=\"2\" class=\"data required\">{$this->lang['strcolumn']}</th><th colspan=\"2\" class=\"data required\">{$this->lang['strtype']}</th>";
echo "<th class=\"data\">{$this->lang['strlength']}</th><th class=\"data\">{$this->lang['strnotnull']}</th>";
echo "<th class=\"data\">{$this->lang['struniquekey']}</th><th class=\"data\">{$this->lang['strprimarykey']}</th>";
- echo "<th class=\"data\">{$this->lang['strdefault']}</th><th class=\"data\">{$this->lang['strcomment']}</th></tr>".PHP_EOL;
+ echo "<th class=\"data\">{$this->lang['strdefault']}</th><th class=\"data\">{$this->lang['strcomment']}</th></tr>" . PHP_EOL;
- for ($i = 0; $i < $_REQUEST['fields']; ++$i) {
+ for ($i = 0; $i < $_REQUEST['fields']; $i++) {
if (!isset($_REQUEST['field'][$i])) {
$_REQUEST['field'][$i] = '';
}
@@ -561,16 +565,16 @@ class TablesController extends BaseController
$_REQUEST['colcomment'][$i] = '';
}
- echo "\t<tr>\n\t\t<td>", $i + 1, '.&nbsp;</td>'.PHP_EOL;
+ echo "\t<tr>\n\t\t<td>", $i + 1, '.&nbsp;</td>' . PHP_EOL;
echo "\t\t<td><input name=\"field[{$i}]\" size=\"16\" maxlength=\"{$data->_maxNameLen}\" value=\"",
- htmlspecialchars($_REQUEST['field'][$i]), '" /></td>'.PHP_EOL;
- echo "\t\t<td>\n\t\t\t<select name=\"type[{$i}]\" class=\"select2\" id=\"types{$i}\" onchange=\"checkLengths(this.options[this.selectedIndex].value,{$i});\">".PHP_EOL;
+ htmlspecialchars($_REQUEST['field'][$i]), '" /></td>' . PHP_EOL;
+ echo "\t\t<td>\n\t\t\t<select name=\"type[{$i}]\" class=\"select2\" id=\"types{$i}\" onchange=\"checkLengths(this.options[this.selectedIndex].value,{$i});\">" . PHP_EOL;
// Output any "magic" types
foreach ($data->extraTypes as $v) {
$types_for_js[strtolower($v)] = 1;
echo "\t\t\t\t<option value=\"", htmlspecialchars($v), '"',
(isset($_REQUEST['type'][$i]) && $_REQUEST['type'][$i] == $v) ? ' selected="selected"' : '', '>',
- $this->misc->printVal($v), '</option>'.PHP_EOL;
+ $this->misc->printVal($v), '</option>' . PHP_EOL;
}
$types->moveFirst();
while (!$types->EOF) {
@@ -578,7 +582,7 @@ class TablesController extends BaseController
$types_for_js[$typname] = 1;
echo "\t\t\t\t<option value=\"", htmlspecialchars($typname), '"',
(isset($_REQUEST['type'][$i]) && $_REQUEST['type'][$i] == $typname) ? ' selected="selected"' : '', '>',
- $this->misc->printVal($typname), '</option>'.PHP_EOL;
+ $this->misc->printVal($typname), '</option>' . PHP_EOL;
$types->moveNext();
}
echo "\t\t\t</select>\n\t\t\n";
@@ -589,46 +593,46 @@ class TablesController extends BaseController
foreach ($predefined_size_types as $value) {
$escaped_predef_types[] = "'{$value}'";
}
- echo '<script type="text/javascript">predefined_lengths = new Array('.implode(',', $escaped_predef_types).");</script>\n\t</td>";
+ echo '<script type="text/javascript">predefined_lengths = new Array(' . implode(',', $escaped_predef_types) . ");</script>\n\t</td>";
}
// Output array type selector
- echo "\t\t<td>\n\t\t\t<select name=\"array[{$i}]\">".PHP_EOL;
- echo "\t\t\t\t<option value=\"\"", (isset($_REQUEST['array'][$i]) && $_REQUEST['array'][$i] == '') ? ' selected="selected"' : '', '></option>'.PHP_EOL;
- echo "\t\t\t\t<option value=\"[]\"", (isset($_REQUEST['array'][$i]) && $_REQUEST['array'][$i] == '[]') ? ' selected="selected"' : '', '>[ ]</option>'.PHP_EOL;
- echo "\t\t\t</select>\n\t\t</td>".PHP_EOL;
+ echo "\t\t<td>\n\t\t\t<select name=\"array[{$i}]\">" . PHP_EOL;
+ echo "\t\t\t\t<option value=\"\"", (isset($_REQUEST['array'][$i]) && $_REQUEST['array'][$i] == '') ? ' selected="selected"' : '', '></option>' . PHP_EOL;
+ echo "\t\t\t\t<option value=\"[]\"", (isset($_REQUEST['array'][$i]) && $_REQUEST['array'][$i] == '[]') ? ' selected="selected"' : '', '>[ ]</option>' . PHP_EOL;
+ echo "\t\t\t</select>\n\t\t</td>" . PHP_EOL;
echo "\t\t<td><input name=\"length[{$i}]\" id=\"lengths{$i}\" size=\"10\" value=\"",
- htmlspecialchars($_REQUEST['length'][$i]), '" /></td>'.PHP_EOL;
- echo "\t\t<td><input type=\"checkbox\" name=\"notnull[{$i}]\"", (isset($_REQUEST['notnull'][$i])) ? ' checked="checked"' : '', ' /></td>'.PHP_EOL;
+ htmlspecialchars($_REQUEST['length'][$i]), '" /></td>' . PHP_EOL;
+ echo "\t\t<td><input type=\"checkbox\" name=\"notnull[{$i}]\"", (isset($_REQUEST['notnull'][$i])) ? ' checked="checked"' : '', ' /></td>' . PHP_EOL;
echo "\t\t<td style=\"text-align: center\"><input type=\"checkbox\" name=\"uniquekey[{$i}]\""
- .(isset($_REQUEST['uniquekey'][$i]) ? ' checked="checked"' : '').' /></td>'.PHP_EOL;
+ . (isset($_REQUEST['uniquekey'][$i]) ? ' checked="checked"' : '') . ' /></td>' . PHP_EOL;
echo "\t\t<td style=\"text-align: center\"><input type=\"checkbox\" name=\"primarykey[{$i}]\" "
- .(isset($_REQUEST['primarykey'][$i]) ? ' checked="checked"' : '')
- .' /></td>'.PHP_EOL;
+ . (isset($_REQUEST['primarykey'][$i]) ? ' checked="checked"' : '')
+ . ' /></td>' . PHP_EOL;
echo "\t\t<td><input name=\"default[{$i}]\" size=\"20\" value=\"",
- htmlspecialchars($_REQUEST['default'][$i]), '" /></td>'.PHP_EOL;
+ htmlspecialchars($_REQUEST['default'][$i]), '" /></td>' . PHP_EOL;
echo "\t\t<td><input name=\"colcomment[{$i}]\" size=\"40\" value=\"",
htmlspecialchars($_REQUEST['colcomment'][$i]), "\" />
<script type=\"text/javascript\">checkLengths(document.getElementById('types{$i}').value,{$i});</script>
- </td>\n\t</tr>".PHP_EOL;
+ </td>\n\t</tr>" . PHP_EOL;
}
- echo '</table>'.PHP_EOL;
- echo '<p><input type="hidden" name="action" value="create" />'.PHP_EOL;
- echo '<input type="hidden" name="stage" value="3" />'.PHP_EOL;
+ echo '</table>' . PHP_EOL;
+ echo '<p><input type="hidden" name="action" value="create" />' . PHP_EOL;
+ echo '<input type="hidden" name="stage" value="3" />' . PHP_EOL;
echo $this->misc->form;
- echo '<input type="hidden" name="name" value="', htmlspecialchars($_REQUEST['name']), '" />'.PHP_EOL;
- echo '<input type="hidden" name="fields" value="', htmlspecialchars($_REQUEST['fields']), '" />'.PHP_EOL;
+ echo '<input type="hidden" name="name" value="', htmlspecialchars($_REQUEST['name']), '" />' . PHP_EOL;
+ echo '<input type="hidden" name="fields" value="', htmlspecialchars($_REQUEST['fields']), '" />' . PHP_EOL;
if (isset($_REQUEST['withoutoids'])) {
- echo '<input type="hidden" name="withoutoids" value="true" />'.PHP_EOL;
+ echo '<input type="hidden" name="withoutoids" value="true" />' . PHP_EOL;
}
- echo '<input type="hidden" name="tblcomment" value="', htmlspecialchars($_REQUEST['tblcomment']), '" />'.PHP_EOL;
+ echo '<input type="hidden" name="tblcomment" value="', htmlspecialchars($_REQUEST['tblcomment']), '" />' . PHP_EOL;
if (isset($_REQUEST['spcname'])) {
- echo '<input type="hidden" name="spcname" value="', htmlspecialchars($_REQUEST['spcname']), '" />'.PHP_EOL;
+ echo '<input type="hidden" name="spcname" value="', htmlspecialchars($_REQUEST['spcname']), '" />' . PHP_EOL;
}
- echo "<input type=\"submit\" value=\"{$this->lang['strcreate']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<input type=\"submit\" value=\"{$this->lang['strcreate']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
break;
case 3:
@@ -693,7 +697,7 @@ class TablesController extends BaseController
break;
default:
- echo "<p>{$this->lang['strinvalidparam']}</p>".PHP_EOL;
+ echo "<p>{$this->lang['strinvalidparam']}</p>" . PHP_EOL;
}
}
@@ -736,13 +740,13 @@ class TablesController extends BaseController
unset($tbltmp);
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post">'.PHP_EOL;
- echo "<table>\n\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strname']}</th>".PHP_EOL;
- echo "\t\t<td class=\"data\"><input name=\"name\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" value=\"", htmlspecialchars($_REQUEST['name']), "\" /></td>\n\t</tr>".PHP_EOL;
- echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strcreatetablelikeparent']}</th>".PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post">' . PHP_EOL;
+ echo "<table>\n\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strname']}</th>" . PHP_EOL;
+ echo "\t\t<td class=\"data\"><input name=\"name\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" value=\"", htmlspecialchars($_REQUEST['name']), "\" /></td>\n\t</tr>" . PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strcreatetablelikeparent']}</th>" . PHP_EOL;
echo "\t\t<td class=\"data\">";
echo \PHPPgAdmin\XHtml\HTMLController::printCombo($tables, 'like', true, $tblsel, false);
- echo "</td>\n\t</tr>".PHP_EOL;
+ echo "</td>\n\t</tr>" . PHP_EOL;
if ($data->hasTablespaces()) {
$tblsp_ = $data->getTablespaces();
if ($tblsp_->recordCount() > 0) {
@@ -752,10 +756,10 @@ class TablesController extends BaseController
$tblsp[$a['spcname']] = $a['spcname'];
}
- echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['strtablespace']}</th>".PHP_EOL;
+ echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['strtablespace']}</th>" . PHP_EOL;
echo "\t\t<td class=\"data\">";
echo \PHPPgAdmin\XHtml\HTMLController::printCombo($tblsp, 'tablespace', true, $_REQUEST['tablespace'], false);
- echo "</td>\n\t</tr>".PHP_EOL;
+ echo "</td>\n\t</tr>" . PHP_EOL;
}
}
echo "\t<tr>\n\t\t<th class=\"data left\">{$this->lang['stroptions']}</th>\n\t\t<td class=\"data\">";
@@ -772,14 +776,14 @@ class TablesController extends BaseController
isset($_REQUEST['withindexes']) ? ' checked="checked"' : '',
"/>{$this->lang['strcreatelikewithindexes']}</label>";
}
- echo "</td>\n\t</tr>".PHP_EOL;
+ echo "</td>\n\t</tr>" . PHP_EOL;
echo '</table>';
- echo '<input type="hidden" name="action" value="confcreatelike" />'.PHP_EOL;
+ echo '<input type="hidden" name="action" value="confcreatelike" />' . PHP_EOL;
echo $this->misc->form;
- echo "<p><input type=\"submit\" value=\"{$this->lang['strcreate']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<p><input type=\"submit\" value=\"{$this->lang['strcreate']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
} else {
if ('' == trim($_REQUEST['name'])) {
$this->doCreateLike(false, $this->lang['strtableneedsname']);
@@ -831,10 +835,10 @@ class TablesController extends BaseController
$attrs = $data->getTableAttributes($_REQUEST['table']);
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post" id="selectform">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post" id="selectform">' . PHP_EOL;
if ($attrs->recordCount() > 0) {
// JavaScript for select all feature
- echo '<script type="text/javascript">'.PHP_EOL;
+ echo '<script type="text/javascript">' . PHP_EOL;
echo "//<![CDATA[\n";
echo " function selectAll() {\n";
echo " for (var i=0; i<document.getElementById('selectform').elements.length; i++) {\n";
@@ -842,10 +846,10 @@ class TablesController extends BaseController
echo " if (e.name.indexOf('show') == 0) e.checked = document.getElementById('selectform').selectall.checked;\n";
echo " }\n";
echo " }\n";
- echo '//]]>'.PHP_EOL;
- echo '</script>'.PHP_EOL;
+ echo '//]]>' . PHP_EOL;
+ echo '</script>' . PHP_EOL;
- echo '<table>'.PHP_EOL;
+ echo '<table>' . PHP_EOL;
// Output table header
echo "<tr><th class=\"data\">{$this->lang['strshow']}</th><th class=\"data\">{$this->lang['strcolumn']}</th>";
@@ -866,42 +870,42 @@ class TablesController extends BaseController
// Continue drawing row
$id = (0 == ($i % 2) ? '1' : '2');
- echo "<tr class=\"data{$id}\">".PHP_EOL;
+ echo "<tr class=\"data{$id}\">" . PHP_EOL;
echo '<td style="white-space:nowrap;">';
echo '<input type="checkbox" name="show[', htmlspecialchars($attrs->fields['attname']), ']"',
isset($_REQUEST['show'][$attrs->fields['attname']]) ? ' checked="checked"' : '', ' /></td>';
echo '<td style="white-space:nowrap;">', $this->misc->printVal($attrs->fields['attname']), '</td>';
echo '<td style="white-space:nowrap;">', $this->misc->printVal($data->formatType($attrs->fields['type'], $attrs->fields['atttypmod'])), '</td>';
echo '<td style="white-space:nowrap;">';
- echo "<select name=\"ops[{$attrs->fields['attname']}]\">".PHP_EOL;
+ echo "<select name=\"ops[{$attrs->fields['attname']}]\">" . PHP_EOL;
foreach (array_keys($data->selectOps) as $v) {
echo '<option value="', htmlspecialchars($v), '"', ($_REQUEST['ops'][$attrs->fields['attname']] == $v) ? ' selected="selected"' : '',
- '>', htmlspecialchars($v), '</option>'.PHP_EOL;
+ '>', htmlspecialchars($v), '</option>' . PHP_EOL;
}
- echo "</select>\n</td>".PHP_EOL;
+ echo "</select>\n</td>" . PHP_EOL;
echo '<td style="white-space:nowrap;">', $data->printField(
"values[{$attrs->fields['attname']}]",
$_REQUEST['values'][$attrs->fields['attname']],
$attrs->fields['type']
), '</td>';
- echo '</tr>'.PHP_EOL;
- ++$i;
+ echo '</tr>' . PHP_EOL;
+ $i++;
$attrs->moveNext();
}
// Select all checkbox
echo "<tr><td colspan=\"5\"><input type=\"checkbox\" id=\"selectall\" name=\"selectall\" accesskey=\"a\" onclick=\"javascript:selectAll()\" /><label for=\"selectall\">{$this->lang['strselectallfields']}</label></td>";
- echo '</tr></table>'.PHP_EOL;
+ echo '</tr></table>' . PHP_EOL;
} else {
- echo "<p>{$this->lang['strinvalidparam']}</p>".PHP_EOL;
+ echo "<p>{$this->lang['strinvalidparam']}</p>" . PHP_EOL;
}
- echo '<p><input type="hidden" name="action" value="selectrows" />'.PHP_EOL;
- echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />'.PHP_EOL;
- echo '<input type="hidden" name="subject" value="table" />'.PHP_EOL;
+ echo '<p><input type="hidden" name="action" value="selectrows" />' . PHP_EOL;
+ echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />' . PHP_EOL;
+ echo '<input type="hidden" name="subject" value="table" />' . PHP_EOL;
echo $this->misc->form;
- echo "<input type=\"submit\" name=\"select\" accesskey=\"r\" value=\"{$this->lang['strselect']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>".PHP_EOL;
- echo '</form>'.PHP_EOL;
+ echo "<input type=\"submit\" name=\"select\" accesskey=\"r\" value=\"{$this->lang['strselect']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" /></p>" . PHP_EOL;
+ echo '</form>' . PHP_EOL;
return;
}
@@ -920,7 +924,7 @@ class TablesController extends BaseController
}
}
- if (0 == sizeof($_POST['show'])) {
+ if (0 == count($_POST['show'])) {
$this->doSelectRows(true, $this->lang['strselectneedscol']);
} else {
// Generate query SQL
@@ -963,9 +967,9 @@ class TablesController extends BaseController
$this->coalesceArr($_REQUEST, 'nulls', []);
$this->coalesceArr($_REQUEST, 'format', []);
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post" id="ac_form">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post" id="ac_form">' . PHP_EOL;
if ($attrs->recordCount() > 0) {
- echo '<table>'.PHP_EOL;
+ echo '<table>' . PHP_EOL;
// Output table header
echo "<tr><th class=\"data\">{$this->lang['strcolumn']}</th><th class=\"data\">{$this->lang['strtype']}</th>";
@@ -993,17 +997,17 @@ class TablesController extends BaseController
// Continue drawing row
$id = (0 == ($i % 2) ? '1' : '2');
- echo "<tr class=\"data{$id}\">".PHP_EOL;
+ echo "<tr class=\"data{$id}\">" . PHP_EOL;
echo '<td style="white-space:nowrap;">', $this->misc->printVal($attrs->fields['attname']), '</td>';
- echo '<td style="white-space:nowrap;">'.PHP_EOL;
+ echo '<td style="white-space:nowrap;">' . PHP_EOL;
echo $this->misc->printVal($data->formatType($attrs->fields['type'], $attrs->fields['atttypmod']));
echo "<input type=\"hidden\" name=\"types[{$attrs->fields['attnum']}]\" value=\"",
htmlspecialchars($attrs->fields['type']), '" /></td>';
- echo '<td style="white-space:nowrap;">'.PHP_EOL;
- echo "<select name=\"format[{$attrs->fields['attnum']}]\">".PHP_EOL;
- echo '<option value="VALUE"', ($_REQUEST['format'][$attrs->fields['attnum']] == 'VALUE') ? ' selected="selected"' : '', ">{$this->lang['strvalue']}</option>".PHP_EOL;
- echo '<option value="EXPRESSION"', ($_REQUEST['format'][$attrs->fields['attnum']] == 'EXPRESSION') ? ' selected="selected"' : '', ">{$this->lang['strexpression']}</option>".PHP_EOL;
- echo "</select>\n</td>".PHP_EOL;
+ echo '<td style="white-space:nowrap;">' . PHP_EOL;
+ echo "<select name=\"format[{$attrs->fields['attnum']}]\">" . PHP_EOL;
+ echo '<option value="VALUE"', ($_REQUEST['format'][$attrs->fields['attnum']] == 'VALUE') ? ' selected="selected"' : '', ">{$this->lang['strvalue']}</option>" . PHP_EOL;
+ echo '<option value="EXPRESSION"', ($_REQUEST['format'][$attrs->fields['attnum']] == 'EXPRESSION') ? ' selected="selected"' : '', ">{$this->lang['strexpression']}</option>" . PHP_EOL;
+ echo "</select>\n</td>" . PHP_EOL;
echo '<td style="white-space:nowrap;">';
// Output null box if the column allows nulls (doesn't look at CHECKs or ASSERTIONS)
if (!$attrs->fields['attnotnull']) {
@@ -1029,40 +1033,40 @@ class TablesController extends BaseController
} else {
echo $data->printField("values[{$attrs->fields['attnum']}]", $_REQUEST['values'][$attrs->fields['attnum']], $attrs->fields['type'], ['class' => 'insert_row_input']);
}
- echo '</td>'.PHP_EOL;
- echo '</tr>'.PHP_EOL;
- ++$i;
+ echo '</td>' . PHP_EOL;
+ echo '</tr>' . PHP_EOL;
+ $i++;
$attrs->moveNext();
}
- echo '</table>'.PHP_EOL;
+ echo '</table>' . PHP_EOL;
if (!isset($_SESSION['counter'])) {
$_SESSION['counter'] = 0;
}
- echo '<input type="hidden" name="action" value="insertrow" />'.PHP_EOL;
- echo '<input type="hidden" name="fields" value="', htmlentities(serialize($fields), ENT_QUOTES, 'UTF-8'), '" />'.PHP_EOL;
- echo '<input type="hidden" name="protection_counter" value="'.$_SESSION['counter'].'" />'.PHP_EOL;
- echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />'.PHP_EOL;
- echo "<p><input type=\"submit\" name=\"insert\" value=\"{$this->lang['strinsert']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"insertandrepeat\" accesskey=\"r\" value=\"{$this->lang['strinsertandrepeat']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />".PHP_EOL;
+ echo '<input type="hidden" name="action" value="insertrow" />' . PHP_EOL;
+ echo '<input type="hidden" name="fields" value="', htmlentities(serialize($fields), ENT_QUOTES, 'UTF-8'), '" />' . PHP_EOL;
+ echo '<input type="hidden" name="protection_counter" value="' . $_SESSION['counter'] . '" />' . PHP_EOL;
+ echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />' . PHP_EOL;
+ echo "<p><input type=\"submit\" name=\"insert\" value=\"{$this->lang['strinsert']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"insertandrepeat\" accesskey=\"r\" value=\"{$this->lang['strinsertandrepeat']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />" . PHP_EOL;
if (false !== $fksprops) {
if ('default off' != $this->conf['autocomplete']) {
- echo "<input type=\"checkbox\" id=\"no_ac\" value=\"1\" checked=\"checked\" /><label for=\"no_ac\">{$this->lang['strac']}</label>".PHP_EOL;
+ echo "<input type=\"checkbox\" id=\"no_ac\" value=\"1\" checked=\"checked\" /><label for=\"no_ac\">{$this->lang['strac']}</label>" . PHP_EOL;
} else {
- echo "<input type=\"checkbox\" id=\"no_ac\" value=\"0\" /><label for=\"no_ac\">{$this->lang['strac']}</label>".PHP_EOL;
+ echo "<input type=\"checkbox\" id=\"no_ac\" value=\"0\" /><label for=\"no_ac\">{$this->lang['strac']}</label>" . PHP_EOL;
}
}
- echo '</p>'.PHP_EOL;
+ echo '</p>' . PHP_EOL;
} else {
- echo "<p>{$this->lang['strnofieldsforinsert']}</p>".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />".PHP_EOL;
+ echo "<p>{$this->lang['strnofieldsforinsert']}</p>" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />" . PHP_EOL;
}
echo $this->misc->form;
- echo '</form>'.PHP_EOL;
- echo '<script src="'.\SUBFOLDER.'/assets/js/insert_or_edit_row.js" type="text/javascript"></script>';
+ echo '</form>' . PHP_EOL;
+ echo '<script src="' . \SUBFOLDER . '/assets/js/insert_or_edit_row.js" type="text/javascript"></script>';
}
/**
@@ -1114,29 +1118,29 @@ class TablesController extends BaseController
$this->printTrail('schema');
$this->printTitle($this->lang['strempty'], 'pg.table.empty');
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post">' . PHP_EOL;
foreach ($_REQUEST['ma'] as $v) {
$a = unserialize(htmlspecialchars_decode($v, ENT_QUOTES));
- echo '<p>'.sprintf($this->lang['strconfemptytable'], $this->misc->printVal($a['table']));
+ echo '<p>' . sprintf($this->lang['strconfemptytable'], $this->misc->printVal($a['table']));
- echo '</p>'.PHP_EOL;
+ echo '</p>' . PHP_EOL;
printf('<input type="hidden" name="table[]" value="%s" />', htmlspecialchars($a['table']));
} // END mutli empty
} else {
$this->printTrail('table');
$this->printTitle($this->lang['strempty'], 'pg.table.empty');
- echo '<p>', sprintf($this->lang['strconfemptytable'], $this->misc->printVal($_REQUEST['table'])), '</p>'.PHP_EOL;
+ echo '<p>', sprintf($this->lang['strconfemptytable'], $this->misc->printVal($_REQUEST['table'])), '</p>' . PHP_EOL;
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post">' . PHP_EOL;
- echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />'.PHP_EOL;
+ echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />' . PHP_EOL;
// END not mutli empty
}
echo "<input type=\"checkbox\" id=\"cascade\" name=\"cascade\" /> <label for=\"cascade\">{$this->lang['strcascade']}</label>";
- echo '<input type="hidden" name="action" value="empty" />'.PHP_EOL;
+ echo '<input type="hidden" name="action" value="empty" />' . PHP_EOL;
echo $this->misc->form;
- echo "<input type=\"submit\" name=\"empty\" value=\"{$this->lang['strempty']}\" /> <input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />".PHP_EOL;
+ echo "<input type=\"submit\" name=\"empty\" value=\"{$this->lang['strempty']}\" /> <input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />" . PHP_EOL;
echo "</form>\n"; // END if confirm
} else {
// Do Empty
@@ -1163,7 +1167,7 @@ class TablesController extends BaseController
return $this->doDefault($msg);
}
- return $this->doDefault($sql.'<br>'.$this->lang['strtableemptiedbad']);
+ return $this->doDefault($sql . '<br>' . $this->lang['strtableemptiedbad']);
// END not mutli empty
}
// END do Empty
@@ -1189,28 +1193,28 @@ class TablesController extends BaseController
$this->printTrail('schema');
$this->printTitle($this->lang['strdrop'], 'pg.table.drop');
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post">'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post">' . PHP_EOL;
foreach ($_REQUEST['ma'] as $v) {
$a = unserialize(htmlspecialchars_decode($v, ENT_QUOTES));
- echo '<p>', sprintf($this->lang['strconfdroptable'], $this->misc->printVal($a['table'])), '</p>'.PHP_EOL;
+ echo '<p>', sprintf($this->lang['strconfdroptable'], $this->misc->printVal($a['table'])), '</p>' . PHP_EOL;
printf('<input type="hidden" name="table[]" value="%s" />', htmlspecialchars($a['table']));
}
} else {
$this->printTrail('table');
$this->printTitle($this->lang['strdrop'], 'pg.table.drop');
- echo '<p>', sprintf($this->lang['strconfdroptable'], $this->misc->printVal($_REQUEST['table'])), '</p>'.PHP_EOL;
+ echo '<p>', sprintf($this->lang['strconfdroptable'], $this->misc->printVal($_REQUEST['table'])), '</p>' . PHP_EOL;
- echo '<form action="'.\SUBFOLDER.'/src/views/tables" method="post">'.PHP_EOL;
- echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />'.PHP_EOL;
+ echo '<form action="' . \SUBFOLDER . '/src/views/tables" method="post">' . PHP_EOL;
+ echo '<input type="hidden" name="table" value="', htmlspecialchars($_REQUEST['table']), '" />' . PHP_EOL;
// END if multi drop
}
- echo '<input type="hidden" name="action" value="drop" />'.PHP_EOL;
+ echo '<input type="hidden" name="action" value="drop" />' . PHP_EOL;
echo $this->misc->form;
- echo "<p><input type=\"checkbox\" id=\"cascade\" name=\"cascade\" /> <label for=\"cascade\">{$this->lang['strcascade']}</label></p>".PHP_EOL;
- echo "<input type=\"submit\" name=\"drop\" value=\"{$this->lang['strdrop']}\" />".PHP_EOL;
- echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />".PHP_EOL;
+ echo "<p><input type=\"checkbox\" id=\"cascade\" name=\"cascade\" /> <label for=\"cascade\">{$this->lang['strcascade']}</label></p>" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"drop\" value=\"{$this->lang['strdrop']}\" />" . PHP_EOL;
+ echo "<input type=\"submit\" name=\"cancel\" value=\"{$this->lang['strcancel']}\" />" . PHP_EOL;
echo "</form>\n"; // END confirm
} else {
//If multi drop
diff --git a/src/controllers/TablespacesController.php b/src/controllers/TablespacesController.php
index f7d6ce65..f75aa4d0 100644
--- a/src/controllers/TablespacesController.php
+++ b/src/controllers/TablespacesController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class TablespacesController extends BaseController
{
diff --git a/src/controllers/TblpropertiesController.php b/src/controllers/TblpropertiesController.php
index f9dc15e6..77efa977 100644
--- a/src/controllers/TblpropertiesController.php
+++ b/src/controllers/TblpropertiesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class TblpropertiesController extends BaseController
{
@@ -454,7 +452,7 @@ class TblpropertiesController extends BaseController
}
// Don't show upload option if max size of uploads is zero
$max_size = $misc->inisizeToBytes(ini_get('upload_max_filesize'));
- if (is_double($max_size) && $max_size > 0) {
+ if (is_float($max_size) && $max_size > 0) {
echo '<form action="'.\SUBFOLDER.'/src/views/dataimport" method="post" enctype="multipart/form-data">'.PHP_EOL;
echo '<table>'.PHP_EOL;
echo "\t<tr>\n\t\t<th class=\"data left required\">{$this->lang['strformat']}</th>".PHP_EOL;
@@ -684,7 +682,7 @@ class TblpropertiesController extends BaseController
foreach ($p['keys'] as $k => $c) {
if (is_null($p['keys'][$k]['consrc'])) {
$atts = $data->getAttributeNames($_REQUEST['table'], explode(' ', $p['keys'][$k]['indkey']));
- $c['consrc'] = ('u' == $c['contype'] ? 'UNIQUE (' : 'PRIMARY KEY (').join(',', $atts).')';
+ $c['consrc'] = ('u' == $c['contype'] ? 'UNIQUE (' : 'PRIMARY KEY (').implode(',', $atts).')';
}
if ($c['p_field'] == $s) {
diff --git a/src/controllers/TriggersController.php b/src/controllers/TriggersController.php
index 8f0004f3..f3c35ae0 100644
--- a/src/controllers/TriggersController.php
+++ b/src/controllers/TriggersController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class TriggersController extends BaseController
{
diff --git a/src/controllers/TypesController.php b/src/controllers/TypesController.php
index 527bc917..feaf79a1 100644
--- a/src/controllers/TypesController.php
+++ b/src/controllers/TypesController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class TypesController extends BaseController
{
@@ -302,7 +300,7 @@ class TypesController extends BaseController
$nbVals = count($vals);
echo "<tr>\n\t<th class=\"data left\" rowspan=\"${nbVals}\">{$this->lang['strenumvalues']}</th>".PHP_EOL;
echo "<td class=\"data2\">{$vals[0]['enumval']}</td></tr>".PHP_EOL;
- for ($i = 1; $i < $nbVals; ++$i) {
+ for ($i = 1; $i < $nbVals; $i++) {
echo '<td class="data', 2 - ($i % 2), "\">{$vals[$i]['enumval']}</td></tr>".PHP_EOL;
}
}
@@ -434,7 +432,7 @@ class TypesController extends BaseController
echo "\t<tr><th colspan=\"2\" class=\"data required\">{$this->lang['strfield']}</th><th colspan=\"2\" class=\"data required\">{$this->lang['strtype']}</th>";
echo "<th class=\"data\">{$this->lang['strlength']}</th><th class=\"data\">{$this->lang['strcomment']}</th></tr>".PHP_EOL;
- for ($i = 0; $i < $_REQUEST['fields']; ++$i) {
+ for ($i = 0; $i < $_REQUEST['fields']; $i++) {
if (!isset($_REQUEST['field'][$i])) {
$_REQUEST['field'][$i] = '';
}
@@ -602,7 +600,7 @@ class TypesController extends BaseController
echo '<table>'.PHP_EOL;
echo "\t<tr><th colspan=\"2\" class=\"data required\">{$this->lang['strvalue']}</th></tr>".PHP_EOL;
- for ($i = 0; $i < $_REQUEST['values']; ++$i) {
+ for ($i = 0; $i < $_REQUEST['values']; $i++) {
if (!isset($_REQUEST['value'][$i])) {
$_REQUEST['value'][$i] = '';
}
diff --git a/src/controllers/UsersController.php b/src/controllers/UsersController.php
index 903bf50f..3a20be61 100644
--- a/src/controllers/UsersController.php
+++ b/src/controllers/UsersController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class UsersController extends BaseController
{
diff --git a/src/controllers/ViewpropertiesController.php b/src/controllers/ViewpropertiesController.php
index 50db70a5..674695ef 100644
--- a/src/controllers/ViewpropertiesController.php
+++ b/src/controllers/ViewpropertiesController.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class ViewpropertiesController extends BaseController
{
diff --git a/src/controllers/ViewsController.php b/src/controllers/ViewsController.php
index 13abe756..10a43fa7 100644
--- a/src/controllers/ViewsController.php
+++ b/src/controllers/ViewsController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Controller;
@@ -10,8 +10,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* Base controller class.
- *
- * @package PHPPgAdmin
*/
class ViewsController extends BaseController
{
diff --git a/src/decorators/ActionUrlDecorator.php b/src/decorators/ActionUrlDecorator.php
index 5b6c37bf..221069ea 100644
--- a/src/decorators/ActionUrlDecorator.php
+++ b/src/decorators/ActionUrlDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/ArrayMergeDecorator.php b/src/decorators/ArrayMergeDecorator.php
index 2ac10995..52af3ed7 100644
--- a/src/decorators/ArrayMergeDecorator.php
+++ b/src/decorators/ArrayMergeDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/BranchUrlDecorator.php b/src/decorators/BranchUrlDecorator.php
index d120d641..56e7fa57 100644
--- a/src/decorators/BranchUrlDecorator.php
+++ b/src/decorators/BranchUrlDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/CallbackDecorator.php b/src/decorators/CallbackDecorator.php
index 81d8b48d..ac97ea9d 100644
--- a/src/decorators/CallbackDecorator.php
+++ b/src/decorators/CallbackDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/ConcatDecorator.php b/src/decorators/ConcatDecorator.php
index f51c32a1..55feff85 100644
--- a/src/decorators/ConcatDecorator.php
+++ b/src/decorators/ConcatDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/Decorator.php b/src/decorators/Decorator.php
index ecc19155..dbef8adf 100644
--- a/src/decorators/Decorator.php
+++ b/src/decorators/Decorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/FieldDecorator.php b/src/decorators/FieldDecorator.php
index 2588d72c..4e153fd8 100644
--- a/src/decorators/FieldDecorator.php
+++ b/src/decorators/FieldDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/IfEmptyDecorator.php b/src/decorators/IfEmptyDecorator.php
index 1ddca1e2..32cab9c4 100644
--- a/src/decorators/IfEmptyDecorator.php
+++ b/src/decorators/IfEmptyDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/RedirectUrlDecorator.php b/src/decorators/RedirectUrlDecorator.php
index a41dcf5b..9a36198b 100644
--- a/src/decorators/RedirectUrlDecorator.php
+++ b/src/decorators/RedirectUrlDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/ReplaceDecorator.php b/src/decorators/ReplaceDecorator.php
index 923a88cd..012138f2 100644
--- a/src/decorators/ReplaceDecorator.php
+++ b/src/decorators/ReplaceDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/decorators/UrlDecorator.php b/src/decorators/UrlDecorator.php
index 3c15d065..82625405 100644
--- a/src/decorators/UrlDecorator.php
+++ b/src/decorators/UrlDecorator.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Decorators;
diff --git a/src/help/PostgresDoc10.php b/src/help/PostgresDoc10.php
index 21e2dffa..88804d37 100644
--- a/src/help/PostgresDoc10.php
+++ b/src/help/PostgresDoc10.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc74.php b/src/help/PostgresDoc74.php
index 86188b9f..e3ad2fcd 100644
--- a/src/help/PostgresDoc74.php
+++ b/src/help/PostgresDoc74.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc80.php b/src/help/PostgresDoc80.php
index 57d8c527..f098b5c6 100644
--- a/src/help/PostgresDoc80.php
+++ b/src/help/PostgresDoc80.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc81.php b/src/help/PostgresDoc81.php
index 0e2737af..b7365a44 100644
--- a/src/help/PostgresDoc81.php
+++ b/src/help/PostgresDoc81.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc82.php b/src/help/PostgresDoc82.php
index 465ae33d..d8ea35d3 100644
--- a/src/help/PostgresDoc82.php
+++ b/src/help/PostgresDoc82.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc83.php b/src/help/PostgresDoc83.php
index 35398e1e..c6075303 100644
--- a/src/help/PostgresDoc83.php
+++ b/src/help/PostgresDoc83.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc84.php b/src/help/PostgresDoc84.php
index 249232d7..fcd1c235 100644
--- a/src/help/PostgresDoc84.php
+++ b/src/help/PostgresDoc84.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc90.php b/src/help/PostgresDoc90.php
index e4712f8b..17458336 100644
--- a/src/help/PostgresDoc90.php
+++ b/src/help/PostgresDoc90.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc91.php b/src/help/PostgresDoc91.php
index c5fee134..012e8b4f 100644
--- a/src/help/PostgresDoc91.php
+++ b/src/help/PostgresDoc91.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc92.php b/src/help/PostgresDoc92.php
index 450cce78..1276aacd 100644
--- a/src/help/PostgresDoc92.php
+++ b/src/help/PostgresDoc92.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc93.php b/src/help/PostgresDoc93.php
index 63b1dd1e..d8a0726a 100644
--- a/src/help/PostgresDoc93.php
+++ b/src/help/PostgresDoc93.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc94.php b/src/help/PostgresDoc94.php
index eae827cd..c1833bc8 100644
--- a/src/help/PostgresDoc94.php
+++ b/src/help/PostgresDoc94.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc95.php b/src/help/PostgresDoc95.php
index 0b9a3025..c2135bb7 100644
--- a/src/help/PostgresDoc95.php
+++ b/src/help/PostgresDoc95.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/help/PostgresDoc96.php b/src/help/PostgresDoc96.php
index 595e6fc6..7018e64d 100644
--- a/src/help/PostgresDoc96.php
+++ b/src/help/PostgresDoc96.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Help;
diff --git a/src/lib.inc.php b/src/lib.inc.php
index 8c182bf3..8ad85cf0 100644
--- a/src/lib.inc.php
+++ b/src/lib.inc.php
@@ -1,11 +1,10 @@
<?php
/**
- * Function library read in upon startup
+ * Function library read in upon startup.
*
* Release: lib.inc.php,v 1.123 2008/04/06 01:10:35 xzilla Exp $
*/
-
defined('BASE_PATH') or define('BASE_PATH', dirname(__DIR__));
define('THEME_PATH', BASE_PATH . '/assets/themes');
@@ -53,35 +52,17 @@ if (!ini_get('session.auto_start')) {
session_start();
}
-// Global functions and polyfills
-function maybeRenderIframes($c, $response, $subject, $query_string)
-{
- $in_test = $c->view->offsetGet('in_test');
-
- if ($in_test === '1') {
- $className = '\PHPPgAdmin\Controller\\' . ucfirst($subject) . 'Controller';
- $controller = new $className($c);
- return $controller->render();
- }
-
- $viewVars = [
- 'url' => '/src/views/' . $subject . ($query_string ? '?' . $query_string : ''),
- 'headertemplate' => 'header.twig',
- ];
-
- return $c->view->render($response, 'iframe_view.twig', $viewVars);
-};
// Dumb Polyfill to avoid errors with Kint
if (
class_exists('Kint')) {
\Kint::$enabled_mode = DEBUGMODE;
Kint\Renderer\RichRenderer::$folder = false;
-
} else {
class Kint
{
- static $enabled_mode = false;
- static $aliases = [];
+ public static $enabled_mode = false;
+ public static $aliases = [];
+
public static function dump() {}
}
}
@@ -96,19 +77,19 @@ function ddd(...$v)
\Kint::$aliases[] = 'ddd';
// Polyfill for PHPConsole
if (isset($conf['php_console']) &&
- class_exists('PhpConsole\Helper') &&
+ class_exists('\PhpConsole\Helper') &&
$conf['php_console'] === true) {
\PhpConsole\Helper::register(); // it will register global PC class
if (!is_null($phpConsoleHandler)) {
$phpConsoleHandler->start(); // initialize phpConsoleHandler*/
}
-
} else {
class PC
{
public static function debug() {}
}
}
+//\PC::dump($phpConsoleHandler);
ini_set('display_errors', intval(DEBUGMODE));
ini_set('display_startup_errors', intval(DEBUGMODE));
@@ -121,7 +102,6 @@ if (DEBUGMODE) {
list($container, $app) = \PHPPgAdmin\ContainerUtils::createContainer();
if ($container instanceof \Psr\Container\ContainerInterface) {
-
if (PHP_SAPI == 'cli-server') {
$subfolder = '/index.php';
} elseif (isset($conf['subfolder']) && is_string($conf['subfolder'])) {
@@ -164,6 +144,7 @@ $container['conf'] = function ($c) use ($conf) {
$server['sslmode'] = 'unspecified';
}
}
+
return $conf;
};
@@ -175,6 +156,7 @@ $container['lang'] = function ($c) {
$container['plugin_manager'] = function ($c) {
$plugin_manager = new \PHPPgAdmin\PluginManager($c);
+
return $plugin_manager;
};
@@ -199,6 +181,7 @@ $container['misc'] = function ($c) {
$_SESSION['ppaTheme'] = $_theme;
$misc->setConf('theme', $_theme);
}
+
return $misc;
};
@@ -231,6 +214,7 @@ $container['view'] = function ($c) {
$view->offsetSet('appName', $c->get('settings')['appName']);
$misc->setView($view);
+
return $view;
};
diff --git a/src/middleware/PopulateRequestResponse.php b/src/middleware/PopulateRequestResponse.php
index 97416fa8..47ccd3ea 100644
--- a/src/middleware/PopulateRequestResponse.php
+++ b/src/middleware/PopulateRequestResponse.php
@@ -4,7 +4,7 @@ namespace PHPPgAdmin\Middleware;
/**
* Set the requestobj and responseobj properties of the container
- * as the value of $request and $response, which already contain the route
+ * as the value of $request and $response, which already contain the route.
*/
class PopulateRequestResponse extends Middleware
{
@@ -15,7 +15,6 @@ class PopulateRequestResponse extends Middleware
\Psr\Http\Message\ResponseInterface $response,
$next
) {
-
$container = $this->container;
$container['requestobj'] = $request;
$container['responseobj'] = $response;
@@ -35,7 +34,7 @@ class PopulateRequestResponse extends Middleware
$query_string = $request->getUri()->getQuery();
$container->view->offsetSet('query_string', $query_string);
- $path = (SUBFOLDER ? (SUBFOLDER . '/') : '') . $request->getUri()->getPath() . ($query_string ? '?' . $query_string : '');
+ $path = (SUBFOLDER ? (SUBFOLDER.'/') : '').$request->getUri()->getPath().($query_string ? '?'.$query_string : '');
$container->view->offsetSet('path', $path);
$params = $request->getParams();
@@ -68,7 +67,7 @@ class PopulateRequestResponse extends Middleware
$messages = $container->flash->getMessages();
if (!empty($messages)) {
foreach ($messages as $key => $message) {
- \PC::debug($message, 'Flash: ' . $key);
+ \PC::debug($message, 'Flash: '.$key);
}
}
diff --git a/src/traits/AdminTrait.php b/src/traits/AdminTrait.php
index e0a01fac..e301fb7b 100644
--- a/src/traits/AdminTrait.php
+++ b/src/traits/AdminTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
diff --git a/src/traits/ExportTrait.php b/src/traits/ExportTrait.php
index 9b95183b..2af4ce06 100644
--- a/src/traits/ExportTrait.php
+++ b/src/traits/ExportTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
diff --git a/src/traits/FormTrait.php b/src/traits/FormTrait.php
index bd2ad4c8..248862e0 100644
--- a/src/traits/FormTrait.php
+++ b/src/traits/FormTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
diff --git a/src/traits/HelperTrait.php b/src/traits/HelperTrait.php
index cabc0e1e..060e04d6 100644
--- a/src/traits/HelperTrait.php
+++ b/src/traits/HelperTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
@@ -13,8 +13,6 @@ namespace PHPPgAdmin\Traits;
/**
* A trait with helpers methods to debug, halt the app and format text to html.
- *
- * @package PHPPgAdmin
*/
trait HelperTrait
{
diff --git a/src/traits/InsertEditRowTrait.php b/src/traits/InsertEditRowTrait.php
index 8b535b1d..6958e46d 100644
--- a/src/traits/InsertEditRowTrait.php
+++ b/src/traits/InsertEditRowTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
diff --git a/src/traits/MiscTrait.php b/src/traits/MiscTrait.php
index 821d05e9..efe537be 100644
--- a/src/traits/MiscTrait.php
+++ b/src/traits/MiscTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
@@ -15,8 +15,6 @@ use PHPPgAdmin\Decorators\Decorator;
/**
* A trait to deal with nav tabs.
- *
- * @package PHPPgAdmin
*/
trait MiscTrait
{
@@ -215,7 +213,7 @@ trait MiscTrait
if (!isset($params['clip']) || $params['clip'] !== true) {
return $str;
}
- $maxlen = isset($params['cliplen']) && is_integer($params['cliplen']) ? $params['cliplen'] : $this->conf['max_chars'];
+ $maxlen = isset($params['cliplen']) && is_int($params['cliplen']) ? $params['cliplen'] : $this->conf['max_chars'];
$ellipsis = isset($params['ellipsis']) ? $params['ellipsis'] : $this->lang['strellipsis'];
if (strlen($str) > $maxlen) {
$str = substr($str, 0, $maxlen - 1).$ellipsis;
diff --git a/src/traits/ServersTrait.php b/src/traits/ServersTrait.php
index 9ddccc14..2cdcedf7 100644
--- a/src/traits/ServersTrait.php
+++ b/src/traits/ServersTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
diff --git a/src/traits/ViewsMatViewsPropertiesTrait.php b/src/traits/ViewsMatViewsPropertiesTrait.php
index a618f5af..aa67484c 100644
--- a/src/traits/ViewsMatViewsPropertiesTrait.php
+++ b/src/traits/ViewsMatViewsPropertiesTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
diff --git a/src/traits/ViewsMatviewsTrait.php b/src/traits/ViewsMatviewsTrait.php
index 40e40c8c..d2c91dda 100644
--- a/src/traits/ViewsMatviewsTrait.php
+++ b/src/traits/ViewsMatviewsTrait.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Traits;
@@ -120,7 +120,7 @@ trait ViewsMatviewsTrait
$attrs->fields['type']
), '</td>';
echo '</tr>'.PHP_EOL;
- ++$i;
+ $i++;
$attrs->moveNext();
}
// Select all checkbox
@@ -155,7 +155,7 @@ trait ViewsMatviewsTrait
}
}
- if (0 == sizeof($_POST['show'])) {
+ if (0 == count($_POST['show'])) {
return $this->doSelectRows(true, $this->lang['strselectneedscol']);
}
// Generate query SQL
@@ -226,7 +226,7 @@ trait ViewsMatviewsTrait
$tmpHsh[$arrTmp['fieldname']] = 1;
} elseif ('rename' == $_POST['dblFldMeth']) {
// field exist and must be renamed
- ++$tmpHsh[$arrTmp['fieldname']];
+ $tmpHsh[$arrTmp['fieldname']]++;
$selFields .= $field_element.' AS "'.implode('_', $field_arr).'_'.$tmpHsh[$arrTmp['fieldname']].'", ';
}
// if field already exist, just ignore this one
@@ -246,7 +246,7 @@ trait ViewsMatviewsTrait
}
}
// We must perform some magic to make sure that we have a valid join order
- $count = sizeof($arrLinks);
+ $count = count($arrLinks);
}
return [$arrLinks, $count];
@@ -325,7 +325,7 @@ trait ViewsMatviewsTrait
$arrUsedTbls[] = $tbl2;
}
}
- ++$j;
+ $j++;
}
//if linkFields has no length then either _POST['formLink'] was not set, or there were no join conditions
@@ -375,10 +375,10 @@ trait ViewsMatviewsTrait
{
$data = $this->misc->getDatabaseAccessor();
- $tblCount = sizeof($_POST['formTables']);
+ $tblCount = count($_POST['formTables']);
$arrSelTables = [];
//unserialize our schema/table information and store in arrSelTables
- for ($i = 0; $i < $tblCount; ++$i) {
+ for ($i = 0; $i < $tblCount; $i++) {
$arrSelTables[] = unserialize($_POST['formTables'][$i]);
}
@@ -391,7 +391,7 @@ trait ViewsMatviewsTrait
//if we have schemas we need to specify the correct schema for each table we're retrieiving
//with getTableAttributes
$curSchema = $data->_schema;
- for ($i = 0; $i < $tblCount; ++$i) {
+ for ($i = 0; $i < $tblCount; $i++) {
if ($arrSelTables[$i]['schemaname'] != $data->_schema) {
$data->setSchema($arrSelTables[$i]['schemaname']);
}
@@ -442,7 +442,7 @@ trait ViewsMatviewsTrait
echo "<tr><th class=\"data\">{$this->lang['strviewlink']}</th></tr>";
$rowClass = 'data1';
$formLink = [];
- for ($i = 0; $i < $linkCount; ++$i) {
+ for ($i = 0; $i < $linkCount; $i++) {
// Initialise variables
$this->coalesceArr($formLink[$i], 'operator', 'INNER JOIN');
@@ -478,7 +478,7 @@ trait ViewsMatviewsTrait
echo '<table>'.PHP_EOL;
echo "<tr><th class=\"data\">{$this->lang['strviewconditions']}</th></tr>";
$rowClass = 'data1';
- for ($i = 0; $i < $linkCount; ++$i) {
+ for ($i = 0; $i < $linkCount; $i++) {
echo "<tr>\n<td class=\"${rowClass}\">".PHP_EOL;
echo \PHPPgAdmin\XHtml\HTMLController::printCombo($arrFields, "formCondition[${i}][field]");
echo \PHPPgAdmin\XHtml\HTMLController::printCombo($arrOperators, "formCondition[${i}][operator]", false, '', false);
diff --git a/src/translations/Afrikaans.php b/src/translations/Afrikaans.php
index fd11785f..139b162d 100644
--- a/src/translations/Afrikaans.php
+++ b/src/translations/Afrikaans.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Afrikaans language.
- *
- * @package PHPPgAdmin
*/
class Afrikaans extends English
{
diff --git a/src/translations/Arabic.php b/src/translations/Arabic.php
index 4ef3ef97..40f9180e 100644
--- a/src/translations/Arabic.php
+++ b/src/translations/Arabic.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Arabic language.
- *
- * @package PHPPgAdmin
*/
class Arabic extends English
{
diff --git a/src/translations/Catalan.php b/src/translations/Catalan.php
index 80cff727..280a0eba 100644
--- a/src/translations/Catalan.php
+++ b/src/translations/Catalan.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Catalan language.
- *
- * @package PHPPgAdmin
*/
class Catalan extends English
{
diff --git a/src/translations/ChineseSim.php b/src/translations/ChineseSim.php
index 313b7b49..353c8a6c 100644
--- a/src/translations/ChineseSim.php
+++ b/src/translations/ChineseSim.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for ChineseSim language.
- *
- * @package PHPPgAdmin
*/
class ChineseSim extends English
{
diff --git a/src/translations/ChineseTr.php b/src/translations/ChineseTr.php
index 36b45d18..abdc40cf 100644
--- a/src/translations/ChineseTr.php
+++ b/src/translations/ChineseTr.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for ChineseTr language.
- *
- * @package PHPPgAdmin
*/
class ChineseTr extends English
{
diff --git a/src/translations/ChineseUtf8ZhCn.php b/src/translations/ChineseUtf8ZhCn.php
index 3f333ad7..e7ed24da 100644
--- a/src/translations/ChineseUtf8ZhCn.php
+++ b/src/translations/ChineseUtf8ZhCn.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for ChineseUtf8ZhCn language.
- *
- * @package PHPPgAdmin
*/
class ChineseUtf8ZhCn extends English
{
diff --git a/src/translations/ChineseUtf8ZhTw.php b/src/translations/ChineseUtf8ZhTw.php
index c1f255f2..588357be 100644
--- a/src/translations/ChineseUtf8ZhTw.php
+++ b/src/translations/ChineseUtf8ZhTw.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for ChineseUtf8ZhTw language.
- *
- * @package PHPPgAdmin
*/
class ChineseUtf8ZhTw extends English
{
diff --git a/src/translations/Czech.php b/src/translations/Czech.php
index ebc65933..e6cc7abd 100644
--- a/src/translations/Czech.php
+++ b/src/translations/Czech.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Czech language.
- *
- * @package PHPPgAdmin
*/
class Czech extends English
{
diff --git a/src/translations/Danish.php b/src/translations/Danish.php
index 5a178dcc..34ded5ef 100644
--- a/src/translations/Danish.php
+++ b/src/translations/Danish.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Danish language.
- *
- * @package PHPPgAdmin
*/
class Danish extends English
{
diff --git a/src/translations/Dutch.php b/src/translations/Dutch.php
index eabcaed7..a20a960c 100644
--- a/src/translations/Dutch.php
+++ b/src/translations/Dutch.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Dutch language.
- *
- * @package PHPPgAdmin
*/
class Dutch extends English
{
diff --git a/src/translations/English.php b/src/translations/English.php
index 8624d9c3..3f7ce4fe 100644
--- a/src/translations/English.php
+++ b/src/translations/English.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Ukrainian language.
- *
- * @package PHPPgAdmin
*/
class English
{
diff --git a/src/translations/French.php b/src/translations/French.php
index 12934928..6f63267e 100644
--- a/src/translations/French.php
+++ b/src/translations/French.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for French language.
- *
- * @package PHPPgAdmin
*/
class French extends English
{
diff --git a/src/translations/Galician.php b/src/translations/Galician.php
index f227eb3e..d0b533f9 100644
--- a/src/translations/Galician.php
+++ b/src/translations/Galician.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Galician language.
- *
- * @package PHPPgAdmin
*/
class Galician extends English
{
diff --git a/src/translations/German.php b/src/translations/German.php
index b5a683fd..e472368b 100644
--- a/src/translations/German.php
+++ b/src/translations/German.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for German language.
- *
- * @package PHPPgAdmin
*/
class German extends English
{
diff --git a/src/translations/Greek.php b/src/translations/Greek.php
index 38164f4f..b16dab24 100644
--- a/src/translations/Greek.php
+++ b/src/translations/Greek.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Greek language.
- *
- * @package PHPPgAdmin
*/
class Greek extends English
{
diff --git a/src/translations/Hebrew.php b/src/translations/Hebrew.php
index e428104c..1fae8eda 100644
--- a/src/translations/Hebrew.php
+++ b/src/translations/Hebrew.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Hebrew language.
- *
- * @package PHPPgAdmin
*/
class Hebrew extends English
{
diff --git a/src/translations/Hungarian.php b/src/translations/Hungarian.php
index 8c5048a9..a2336ba3 100644
--- a/src/translations/Hungarian.php
+++ b/src/translations/Hungarian.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Hungarian language.
- *
- * @package PHPPgAdmin
*/
class Hungarian extends English
{
diff --git a/src/translations/Italian.php b/src/translations/Italian.php
index fd9443df..56036fe9 100644
--- a/src/translations/Italian.php
+++ b/src/translations/Italian.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Italian language.
- *
- * @package PHPPgAdmin
*/
class Italian extends English
{
diff --git a/src/translations/Japanese.php b/src/translations/Japanese.php
index 8fb06dde..c6450256 100644
--- a/src/translations/Japanese.php
+++ b/src/translations/Japanese.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Japanese language.
- *
- * @package PHPPgAdmin
*/
class Japanese extends English
{
diff --git a/src/translations/Lithuanian.php b/src/translations/Lithuanian.php
index f34dbeba..5bc8afbe 100644
--- a/src/translations/Lithuanian.php
+++ b/src/translations/Lithuanian.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Lithuanian language.
- *
- * @package PHPPgAdmin
*/
class Lithuanian extends English
{
diff --git a/src/translations/Mongol.php b/src/translations/Mongol.php
index 8ccbfe07..cbb04a27 100644
--- a/src/translations/Mongol.php
+++ b/src/translations/Mongol.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Mongol language.
- *
- * @package PHPPgAdmin
*/
class Mongol extends English
{
diff --git a/src/translations/Polish.php b/src/translations/Polish.php
index c46c5cc0..ee98c34b 100644
--- a/src/translations/Polish.php
+++ b/src/translations/Polish.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Polish language.
- *
- * @package PHPPgAdmin
*/
class Polish extends English
{
diff --git a/src/translations/PortugueseBr.php b/src/translations/PortugueseBr.php
index fe26f8c8..ceef5abb 100644
--- a/src/translations/PortugueseBr.php
+++ b/src/translations/PortugueseBr.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for PortugueseBr language.
- *
- * @package PHPPgAdmin
*/
class PortugueseBr extends English
{
diff --git a/src/translations/PortuguesePt.php b/src/translations/PortuguesePt.php
index de896eb4..4027981e 100644
--- a/src/translations/PortuguesePt.php
+++ b/src/translations/PortuguesePt.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for PortuguesePt language.
- *
- * @package PHPPgAdmin
*/
class PortuguesePt extends English
{
diff --git a/src/translations/Romanian.php b/src/translations/Romanian.php
index 939fd9b3..1f561af2 100644
--- a/src/translations/Romanian.php
+++ b/src/translations/Romanian.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Romanian language.
- *
- * @package PHPPgAdmin
*/
class Romanian extends English
{
diff --git a/src/translations/Russian.php b/src/translations/Russian.php
index 3732b23a..2b0d8487 100644
--- a/src/translations/Russian.php
+++ b/src/translations/Russian.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Russian language.
- *
- * @package PHPPgAdmin
*/
class Russian extends English
{
diff --git a/src/translations/RussianUtf8.php b/src/translations/RussianUtf8.php
index 91c3b06f..98e24448 100644
--- a/src/translations/RussianUtf8.php
+++ b/src/translations/RussianUtf8.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for RussianUtf8 language.
- *
- * @package PHPPgAdmin
*/
class RussianUtf8 extends English
{
diff --git a/src/translations/Slovak.php b/src/translations/Slovak.php
index be258973..3bb59eb4 100644
--- a/src/translations/Slovak.php
+++ b/src/translations/Slovak.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Slovak language.
- *
- * @package PHPPgAdmin
*/
class Slovak extends English
{
diff --git a/src/translations/Spanish.php b/src/translations/Spanish.php
index 33541e68..de79e0c6 100644
--- a/src/translations/Spanish.php
+++ b/src/translations/Spanish.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Spanish language.
- *
- * @package PHPPgAdmin
*/
class Spanish extends English
{
diff --git a/src/translations/Swedish.php b/src/translations/Swedish.php
index 47092aa3..cbdae492 100644
--- a/src/translations/Swedish.php
+++ b/src/translations/Swedish.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Swedish language.
- *
- * @package PHPPgAdmin
*/
class Swedish extends English
{
diff --git a/src/translations/Turkish.php b/src/translations/Turkish.php
index 4f732232..20a934d1 100644
--- a/src/translations/Turkish.php
+++ b/src/translations/Turkish.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Turkish language.
- *
- * @package PHPPgAdmin
*/
class Turkish extends English
{
diff --git a/src/translations/Ukrainian.php b/src/translations/Ukrainian.php
index e8b7d58b..c9f00773 100644
--- a/src/translations/Ukrainian.php
+++ b/src/translations/Ukrainian.php
@@ -1,15 +1,13 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\Translations;
/**
* Class providing translation for Ukrainian language.
- *
- * @package PHPPgAdmin
*/
class Ukrainian extends English
{
diff --git a/src/xhtml/HTMLController.php b/src/xhtml/HTMLController.php
index 4825d6c7..775e9cea 100644
--- a/src/xhtml/HTMLController.php
+++ b/src/xhtml/HTMLController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/HTMLFooterController.php b/src/xhtml/HTMLFooterController.php
index 77cfee63..cc7a9403 100644
--- a/src/xhtml/HTMLFooterController.php
+++ b/src/xhtml/HTMLFooterController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
@@ -44,12 +44,14 @@ class HTMLFooterController extends HTMLController
}
/**
- * Prints the page footer.
+ * fetches the page footer.
*
- * @param bool $doBody True to output body tag, false to return the html
- * @param mixed $template
+ * @param string $template the template's name
+ * @param array $viewParams Optional - extra view parameters
+ *
+ * @return string the html content for the footer section
*/
- public function printFooter($doBody = true, $template = 'footer.twig')
+ public function getFooter($template = 'footer.twig', $viewParams = [])
{
$reload_param = 'none';
if ($this->misc->getReloadBrowser()) {
@@ -59,17 +61,15 @@ class HTMLFooterController extends HTMLController
}
$this->view->offsetSet('script_footer', '');
+ $this->view->offsetSet('inPopUp', $inPopUp);
$this->view->offsetSet('reload', $reload_param);
$this->view->offsetSet('footer_template', $template);
$this->view->offsetSet('print_bottom_link', !$this->_no_bottom_link);
-
- $footer_html = $this->view->fetch($template);
-
- if ($doBody) {
- echo $footer_html;
- } else {
- return $footer_html;
+ foreach ($viewParams as $key => $value) {
+ $this->view->offsetSet($key, $value);
}
+ return $this->view->fetch($template);
+
}
/**
@@ -79,9 +79,9 @@ class HTMLFooterController extends HTMLController
*/
public function setFocus($object)
{
- echo '<script type="text/javascript">'.PHP_EOL;
+ echo '<script type="text/javascript">' . PHP_EOL;
echo " document.{$object}.focus();\n";
- echo '</script>'.PHP_EOL;
+ echo '</script>' . PHP_EOL;
}
/**
@@ -93,11 +93,11 @@ class HTMLFooterController extends HTMLController
*/
public function setWindowName($name, $addServer = true)
{
- echo '<script type="text/javascript">'.PHP_EOL;
+ echo '<script type="text/javascript">' . PHP_EOL;
echo "//<![CDATA[\n";
- echo " window.name = '{$name}", ($addServer ? ':'.htmlspecialchars($this->misc->getServerId()) : ''), "';\n";
- echo '//]]>'.PHP_EOL;
- echo '</script>'.PHP_EOL;
+ echo " window.name = '{$name}", ($addServer ? ':' . htmlspecialchars($this->misc->getServerId()) : ''), "';\n";
+ echo '//]]>' . PHP_EOL;
+ echo '</script>' . PHP_EOL;
}
/**
@@ -111,13 +111,11 @@ class HTMLFooterController extends HTMLController
* Allows to give some environnement details to plugins.
* and 'browse' is the place inside that code (doBrowse).
* @param bool $do_print if true, print html, if false, return html
- * @param mixed $from can either be null, false or the method calling this one
+ * @param stromg $from who is calling this method (mostly for debug)
*/
public function printNavLinks($navlinks, $place, $env, $do_print, $from)
{
- if (null === $from || false === $from) {
- $from = __METHOD__;
- }
+
//$this->prtrace($navlinks);
$plugin_manager = $this->plugin_manager;
@@ -130,11 +128,9 @@ class HTMLFooterController extends HTMLController
$plugin_manager->doHook('navlinks', $plugin_functions_parameters);
if (count($navlinks) > 0) {
- if ($do_print) {
- $this->printLinksList($navlinks, 'navlink', true, $from);
- } else {
- return $this->printLinksList($navlinks, 'navlink', false, $from);
- }
+
+ return $this->printLinksList($navlinks, 'navlink', $do_print, $from);
+
}
}
}
diff --git a/src/xhtml/HTMLHeaderController.php b/src/xhtml/HTMLHeaderController.php
index 5d26b001..6e0d71dd 100644
--- a/src/xhtml/HTMLHeaderController.php
+++ b/src/xhtml/HTMLHeaderController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/HTMLNavbarController.php b/src/xhtml/HTMLNavbarController.php
index c9705bf2..6ed7d949 100644
--- a/src/xhtml/HTMLNavbarController.php
+++ b/src/xhtml/HTMLNavbarController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/HTMLTableController.php b/src/xhtml/HTMLTableController.php
index 2012a8eb..ed9dd508 100644
--- a/src/xhtml/HTMLTableController.php
+++ b/src/xhtml/HTMLTableController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
@@ -209,7 +209,7 @@ class HTMLTableController extends HTMLController
switch ($column_id) {
case 'actions':
- if (sizeof($actions) > 0) {
+ if (count($actions) > 0) {
$thead_html .= '<th class="data" >'.$column['title'].'</th>'.PHP_EOL;
}
@@ -316,7 +316,7 @@ class HTMLTableController extends HTMLController
$tbody_html .= '</tr>'.PHP_EOL;
$tabledata->moveNext();
- ++$i;
+ $i++;
}
$tbody_html .= '</tbody>';
@@ -341,7 +341,7 @@ class HTMLTableController extends HTMLController
$class = (isset($column['class']) && '' !== $column['class']) ? $column['class'] : '';
- if ($column_id !== 'actions' || sizeof($actions) > 0) {
+ if ($column_id !== 'actions' || count($actions) > 0) {
$tfoot_html .= "<td class=\"data{$class}\"></td>".PHP_EOL;
}
}
diff --git a/src/xhtml/TreeController.php b/src/xhtml/TreeController.php
index a762295a..e5062072 100644
--- a/src/xhtml/TreeController.php
+++ b/src/xhtml/TreeController.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
@@ -46,49 +46,6 @@ class TreeController
/**
* Produce JSON data for the browser tree.
*
- * @param \PHPPgAdmin\ArrayRecordSet $_treedata a set of records to populate the tree
- * @param array $attrs Attributes for tree items
- * 'text' - the text for the tree node
- * 'icon' - an icon for node
- * 'openIcon' - an alternative icon when the node is expanded
- * 'toolTip' - tool tip text for the node
- * 'action' - URL to visit when single clicking the node
- * 'iconAction' - URL to visit when single clicking the icon node
- * 'branch' - URL for child nodes (tree XML)
- * 'expand' - the action to return XML for the subtree
- * 'nodata' - message to display when node has no children
- * @param string $section The section where the branch is linked in the tree
- * @param bool $print either to return or echo the result
- *
- * @return \Slim\Http\Response|string the json rendered tree
- */
- public function printTree(&$_treedata, &$attrs, $section, $print = true)
- {
- $plugin_manager = $this->plugin_manager;
-
- $treedata = [];
-
- if ($_treedata->recordCount() > 0) {
- while (!$_treedata->EOF) {
- $treedata[] = $_treedata->fields;
- $_treedata->moveNext();
- }
- }
-
- $tree_params = [
- 'treedata' => &$treedata,
- 'attrs' => &$attrs,
- 'section' => $section,
- ];
-
- $plugin_manager->doHook('tree', $tree_params);
-
- return $this->printTreeJSON($treedata, $attrs, $print);
- }
-
- /**
- * Produce JSON data for the browser tree.
- *
* @param array $treedata a set of records to populate the tree
* @param array $attrs Attributes for tree items
* 'text' - the text for the tree node
@@ -100,22 +57,30 @@ class TreeController
* 'branch' - URL for child nodes (tree JSON)
* 'expand' - the action to return JSON for the subtree
* 'nodata' - message to display when node has no children
- * @param bool $print either to return or echo the result
+ * @param string $section section of the tree
*
* @return \Slim\Http\Response|string the json rendered tree
*/
- private function printTreeJSON(&$treedata, &$attrs, $print = true)
+ public function printTreeJSON(&$treedata, &$attrs, $section = '')
{
+ $tree_params = [
+ 'treedata' => &$treedata,
+ 'attrs' => &$attrs,
+ 'section' => $section,
+ ];
+ $plugin_manager = $this->plugin_manager;
+ $plugin_manager->doHook('tree', $tree_params);
+
$parent = [];
if (isset($attrs['is_root'])) {
$parent = [
'id' => 'root',
'children' => true,
- 'icon' => \SUBFOLDER.'/assets/images/themes/default/Servers.png',
+ 'icon' => \SUBFOLDER . '/assets/images/themes/default/Servers.png',
'state' => ['opened' => true],
- 'a_attr' => ['href' => str_replace('//', '/', \SUBFOLDER.'/src/views/servers')],
- 'url' => str_replace('//', '/', \SUBFOLDER.'/src/views/servers?action=tree'),
+ 'a_attr' => ['href' => str_replace('//', '/', \SUBFOLDER . '/src/views/servers')],
+ 'url' => str_replace('//', '/', \SUBFOLDER . '/src/views/servers?action=tree'),
'text' => 'Servers',
];
} elseif (count($treedata) > 0) {
@@ -137,7 +102,7 @@ class TreeController
];
$url = Decorator::get_sanitized_value($attrs['branch'], $rec);
if ($url && strpos($url, '/src/views') === false) {
- $url = str_replace('//', '/', \SUBFOLDER.'/src/views/'.$url);
+ $url = str_replace('//', '/', \SUBFOLDER . '/src/views/' . $url);
}
if ($url) {
$tree['url'] = $url;
@@ -152,20 +117,17 @@ class TreeController
$parent = ['children' => false];
}
- if (true === $print) {
- if (isset($_REQUEST['children'])) {
- $children = $parent;
- $parent = ['children' => $children];
- }
-
- return $this
- ->container
- ->responseobj
- ->withStatus(200)
- ->withJson($parent);
+ if (isset($_REQUEST['children'])) {
+ $children = $parent;
+ $parent = ['children' => $children];
}
- return $parent;
+ return $this
+ ->container
+ ->responseobj
+ ->withStatus(200)
+ ->withJson($parent);
+
}
/**
diff --git a/src/xhtml/XHtmlButton.php b/src/xhtml/XHtmlButton.php
index 24dabd16..0eed0c8b 100644
--- a/src/xhtml/XHtmlButton.php
+++ b/src/xhtml/XHtmlButton.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/XHtmlElement.php b/src/xhtml/XHtmlElement.php
index 86a076aa..9f124339 100644
--- a/src/xhtml/XHtmlElement.php
+++ b/src/xhtml/XHtmlElement.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/XHtmlOption.php b/src/xhtml/XHtmlOption.php
index 1edd111f..5216558a 100644
--- a/src/xhtml/XHtmlOption.php
+++ b/src/xhtml/XHtmlOption.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/XHtmlSelect.php b/src/xhtml/XHtmlSelect.php
index b3d20a27..2f103aa9 100644
--- a/src/xhtml/XHtmlSelect.php
+++ b/src/xhtml/XHtmlSelect.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/src/xhtml/XHtmlSimpleElement.php b/src/xhtml/XHtmlSimpleElement.php
index 3aa11fb9..ae0291cb 100644
--- a/src/xhtml/XHtmlSimpleElement.php
+++ b/src/xhtml/XHtmlSimpleElement.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace PHPPgAdmin\XHtml;
diff --git a/tests/_support/AcceptanceTester.php b/tests/_support/AcceptanceTester.php
index b48faa12..732dc513 100644
--- a/tests/_support/AcceptanceTester.php
+++ b/tests/_support/AcceptanceTester.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
class AcceptanceTester extends \Codeception\Actor
{
use _generated\AcceptanceTesterActions;
diff --git a/tests/_support/FunctionalTester.php b/tests/_support/FunctionalTester.php
index 208b367a..e4d07b1a 100644
--- a/tests/_support/FunctionalTester.php
+++ b/tests/_support/FunctionalTester.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
class FunctionalTester extends \Codeception\Actor
{
use _generated\FunctionalTesterActions;
diff --git a/tests/_support/Helper/Acceptance.php b/tests/_support/Helper/Acceptance.php
index 784b7e74..ec1a71c4 100644
--- a/tests/_support/Helper/Acceptance.php
+++ b/tests/_support/Helper/Acceptance.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace Helper;
diff --git a/tests/_support/Helper/Functional.php b/tests/_support/Helper/Functional.php
index b11aae68..1e70251c 100644
--- a/tests/_support/Helper/Functional.php
+++ b/tests/_support/Helper/Functional.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace Helper;
diff --git a/tests/_support/Helper/Unit.php b/tests/_support/Helper/Unit.php
index 329b1b8b..230b13bd 100644
--- a/tests/_support/Helper/Unit.php
+++ b/tests/_support/Helper/Unit.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace Helper;
diff --git a/tests/_support/UnitTester.php b/tests/_support/UnitTester.php
index 052fc20f..f9864334 100644
--- a/tests/_support/UnitTester.php
+++ b/tests/_support/UnitTester.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
class UnitTester extends \Codeception\Actor
{
use _generated\UnitTesterActions;
diff --git a/tests/_support/_generated/UnitTesterActions.php b/tests/_support/_generated/UnitTesterActions.php
index 3c4545e1..23b4db0f 100644
--- a/tests/_support/_generated/UnitTesterActions.php
+++ b/tests/_support/_generated/UnitTesterActions.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
namespace _generated;
diff --git a/tests/unit/ContainerTest.php b/tests/unit/ContainerTest.php
index 5af4b839..8dcabdbc 100644
--- a/tests/unit/ContainerTest.php
+++ b/tests/unit/ContainerTest.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
class ContainerTest extends \Codeception\Test\Unit
{
/**
diff --git a/tests/unit/ViewTest.php b/tests/unit/ViewTest.php
index 983f1e16..6beca942 100644
--- a/tests/unit/ViewTest.php
+++ b/tests/unit/ViewTest.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
class ViewTest extends \Codeception\Test\Unit
{
/**
diff --git a/tests/views/acinsert.php b/tests/views/acinsert.php
index afae1b18..29fd18cc 100644
--- a/tests/views/acinsert.php
+++ b/tests/views/acinsert.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/aggregates.php b/tests/views/aggregates.php
index 27b4875e..41d52466 100644
--- a/tests/views/aggregates.php
+++ b/tests/views/aggregates.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/alldb.php b/tests/views/alldb.php
index 703d397c..326e2d8e 100644
--- a/tests/views/alldb.php
+++ b/tests/views/alldb.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/browser.php b/tests/views/browser.php
index 2a802713..91632a61 100644
--- a/tests/views/browser.php
+++ b/tests/views/browser.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/casts.php b/tests/views/casts.php
index 6076f78a..c2b9b180 100644
--- a/tests/views/casts.php
+++ b/tests/views/casts.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/colproperties.php b/tests/views/colproperties.php
index 4b970f26..546aac5d 100644
--- a/tests/views/colproperties.php
+++ b/tests/views/colproperties.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/constraints.php b/tests/views/constraints.php
index 8ff8dc1e..639be85a 100644
--- a/tests/views/constraints.php
+++ b/tests/views/constraints.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/conversions.php b/tests/views/conversions.php
index c55bf9d2..5f914c06 100644
--- a/tests/views/conversions.php
+++ b/tests/views/conversions.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/database.php b/tests/views/database.php
index d2a8eb7f..253c0055 100644
--- a/tests/views/database.php
+++ b/tests/views/database.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/dataexport.php b/tests/views/dataexport.php
index cbdd6dd3..5eddbd21 100644
--- a/tests/views/dataexport.php
+++ b/tests/views/dataexport.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/dataimport.php b/tests/views/dataimport.php
index 9ccf980e..3cd2fd13 100644
--- a/tests/views/dataimport.php
+++ b/tests/views/dataimport.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/dbexport.php b/tests/views/dbexport.php
index 6ff145fd..de1c204d 100644
--- a/tests/views/dbexport.php
+++ b/tests/views/dbexport.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/display.php b/tests/views/display.php
index 35ce1772..a45bc4a6 100644
--- a/tests/views/display.php
+++ b/tests/views/display.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/domains.php b/tests/views/domains.php
index 3ba4eada..4e93501b 100644
--- a/tests/views/domains.php
+++ b/tests/views/domains.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/fulltext.php b/tests/views/fulltext.php
index 6a08645d..c0717b97 100644
--- a/tests/views/fulltext.php
+++ b/tests/views/fulltext.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/functions.php b/tests/views/functions.php
index afc188bb..d4ed9e2b 100644
--- a/tests/views/functions.php
+++ b/tests/views/functions.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/groups.php b/tests/views/groups.php
index 910eceac..49fda808 100644
--- a/tests/views/groups.php
+++ b/tests/views/groups.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/help.php b/tests/views/help.php
index 83e24e79..85047d07 100644
--- a/tests/views/help.php
+++ b/tests/views/help.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/history.php b/tests/views/history.php
index db1cc074..0e5121fc 100644
--- a/tests/views/history.php
+++ b/tests/views/history.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/indexes.php b/tests/views/indexes.php
index 4af00214..4699bc19 100644
--- a/tests/views/indexes.php
+++ b/tests/views/indexes.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/info.php b/tests/views/info.php
index afdb8baa..1eaadc26 100644
--- a/tests/views/info.php
+++ b/tests/views/info.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/intro.php b/tests/views/intro.php
index 5b69d09d..28044ce9 100644
--- a/tests/views/intro.php
+++ b/tests/views/intro.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/languages.php b/tests/views/languages.php
index dea525cd..a71aa661 100644
--- a/tests/views/languages.php
+++ b/tests/views/languages.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/login.php b/tests/views/login.php
index 16ba772b..e4f85845 100644
--- a/tests/views/login.php
+++ b/tests/views/login.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/materializedviewproperties.php b/tests/views/materializedviewproperties.php
index d8b93e68..f606a110 100644
--- a/tests/views/materializedviewproperties.php
+++ b/tests/views/materializedviewproperties.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/materializedviews.php b/tests/views/materializedviews.php
index 21de127c..9b5abe13 100644
--- a/tests/views/materializedviews.php
+++ b/tests/views/materializedviews.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/opclasses.php b/tests/views/opclasses.php
index 35050657..2db4a1b9 100644
--- a/tests/views/opclasses.php
+++ b/tests/views/opclasses.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/operators.php b/tests/views/operators.php
index 237689ab..5494dbf8 100644
--- a/tests/views/operators.php
+++ b/tests/views/operators.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/privileges.php b/tests/views/privileges.php
index a7f13ad1..04775206 100644
--- a/tests/views/privileges.php
+++ b/tests/views/privileges.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/roles.php b/tests/views/roles.php
index b34d970b..453b94a8 100644
--- a/tests/views/roles.php
+++ b/tests/views/roles.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/rules.php b/tests/views/rules.php
index 9958366a..f6a5ecb0 100644
--- a/tests/views/rules.php
+++ b/tests/views/rules.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/schemas.php b/tests/views/schemas.php
index 8a16a83f..fb2e02ed 100644
--- a/tests/views/schemas.php
+++ b/tests/views/schemas.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/sequences.php b/tests/views/sequences.php
index 0b8a459c..b3e02efb 100644
--- a/tests/views/sequences.php
+++ b/tests/views/sequences.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/servers.php b/tests/views/servers.php
index 0b5d08cc..907760ca 100644
--- a/tests/views/servers.php
+++ b/tests/views/servers.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/sql.php b/tests/views/sql.php
index 736b4d01..0f684669 100644
--- a/tests/views/sql.php
+++ b/tests/views/sql.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/sqledit.php b/tests/views/sqledit.php
index 702d9c13..74e41e65 100644
--- a/tests/views/sqledit.php
+++ b/tests/views/sqledit.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/tables.php b/tests/views/tables.php
index 37c354a1..dabcdb12 100644
--- a/tests/views/tables.php
+++ b/tests/views/tables.php
@@ -1,9 +1,8 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
-
$do_render = false;
if (!defined('BASE_PATH')) {
require_once '../../src/lib.inc.php';
diff --git a/tests/views/tablespaces.php b/tests/views/tablespaces.php
index b35ae86f..9e3fb48b 100644
--- a/tests/views/tablespaces.php
+++ b/tests/views/tablespaces.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/tblproperties.php b/tests/views/tblproperties.php
index 6a0d29ce..70922484 100644
--- a/tests/views/tblproperties.php
+++ b/tests/views/tblproperties.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/triggers.php b/tests/views/triggers.php
index 675c5a5f..16af176e 100644
--- a/tests/views/triggers.php
+++ b/tests/views/triggers.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/types.php b/tests/views/types.php
index e1148ecc..ebdfa690 100644
--- a/tests/views/types.php
+++ b/tests/views/types.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/users.php b/tests/views/users.php
index 68b878cf..5f44a58b 100644
--- a/tests/views/users.php
+++ b/tests/views/users.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/viewproperties.php b/tests/views/viewproperties.php
index d3e6b4ca..14b2f08c 100644
--- a/tests/views/viewproperties.php
+++ b/tests/views/viewproperties.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions
diff --git a/tests/views/views.php b/tests/views/views.php
index 21856494..8171c916 100644
--- a/tests/views/views.php
+++ b/tests/views/views.php
@@ -1,7 +1,7 @@
<?php
/**
- * PHPPgAdmin v6.0.0-RC2
+ * PHPPgAdmin v6.0.0-RC1.
*/
// Include application functions