summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/ErrorWidget.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/ErrorWidget.php')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/ErrorWidget.php134
1 files changed, 134 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/ErrorWidget.php b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/ErrorWidget.php
new file mode 100644
index 00000000..2834f177
--- /dev/null
+++ b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/ErrorWidget.php
@@ -0,0 +1,134 @@
+<?php
+
+namespace SMW\MediaWiki\Specials\Ask;
+
+use Html;
+use SMW\Message;
+use SMW\ProcessingErrorMsgHandler;
+use SMWQuery as Query;
+
+/**
+ * @license GNU GPL v2+
+ * @since 2.5
+ *
+ * @author mwjames
+ */
+class ErrorWidget {
+
+ /**
+ * @since 3.0
+ *
+ * @return string
+ */
+ public static function disabled() {
+ return Html::element(
+ 'div',
+ [
+ 'class' => 'smw-callout smw-callout-error'
+ ],
+ Message::get( 'smw_iq_disabled', Message::TEXT, Message::USER_LANGUAGE )
+ );
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @return string
+ */
+ public static function noResult() {
+ return Html::element(
+ 'div',
+ [
+ 'id' => 'no-result',
+ 'class' => 'smw-callout smw-callout-info'
+ ],
+ Message::get( 'smw_result_noresults', Message::TEXT, Message::USER_LANGUAGE )
+ );
+ }
+
+ /**
+ * @since 3.0
+ *
+ * @return string
+ */
+ public static function noScript() {
+ return Html::rawElement(
+ 'div',
+ [
+ 'id' => 'ask-status',
+ 'class' => 'smw-ask-status plainlinks'
+ ],
+ Html::rawElement(
+ 'noscript',
+ [],
+ Html::rawElement(
+ 'div',
+ [
+ 'class' => 'smw-callout smw-callout-error',
+ ],
+ Message::get( 'smw-noscript', Message::PARSE, Message::USER_LANGUAGE )
+ )
+ )
+ );
+ }
+
+ /**
+ * @since 3.0
+ *
+ * @return string
+ */
+ public static function sessionFailure() {
+ return Html::rawElement(
+ 'div',
+ [
+ 'class' => 'smw-callout smw-callout-error'
+ ],
+ Message::get( 'sessionfailure', Message::TEXT, Message::USER_LANGUAGE )
+ );
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @param Query|null $query
+ *
+ * @return string
+ */
+ public static function queryError( Query $query = null ) {
+
+ if ( $query === null || !is_array( $query->getErrors() ) || $query->getErrors() === [] ) {
+ return '';
+ }
+
+ $errors = [];
+
+ foreach ( ProcessingErrorMsgHandler::normalizeAndDecodeMessages( $query->getErrors() ) as $value ) {
+
+ if ( $value === '' ) {
+ continue;
+ }
+
+ if ( is_array( $value ) ) {
+ $value = implode( " ", $value );
+ }
+
+ $errors[] = $value;
+ }
+
+ if ( count( $errors ) > 1 ) {
+ $error = '<ul><li>' . implode( '</li><li>', $errors ) . '</li></ul>';
+ } else {
+ $error = implode( ' ', $errors );
+ }
+
+ return Html::rawElement(
+ 'div',
+ [
+ 'id' => 'result-error',
+ 'class' => 'smw-callout smw-callout-error'
+ ],
+ $error
+ );
+ }
+
+}