diff options
author | Matt Rude <[email protected]> | 2017-11-12 20:32:02 -0600 |
---|---|---|
committer | Matt Rude <[email protected]> | 2017-11-12 20:32:02 -0600 |
commit | 8ff082a45a97bf92b077dd400fda34ff647da6ea (patch) | |
tree | eaa72b34491b1decec94f87fbf441d06497e2564 | |
parent | 4372007142d0f5df9a112c8f1519b235d1727995 (diff) | |
download | xmpp-site-builder-8ff082a45a97bf92b077dd400fda34ff647da6ea.tar.gz xmpp-site-builder-8ff082a45a97bf92b077dd400fda34ff647da6ea.tar.bz2 xmpp-site-builder-8ff082a45a97bf92b077dd400fda34ff647da6ea.zip |
create assets folder
-rw-r--r-- | _includes/footer.html | 5 | ||||
-rw-r--r-- | _includes/header.html | 4 | ||||
-rw-r--r-- | _includes/menu.html | 1 | ||||
-rw-r--r-- | _layouts/user-guides.html | 4 | ||||
-rw-r--r-- | assets/css/main.css (renamed from css/main.css) | 0 | ||||
-rw-r--r-- | assets/css/main.css-old (renamed from css/main.css-old) | 0 | ||||
-rw-r--r-- | assets/img/clients/chatsecure_logo.png (renamed from img/clients/chatsecure_logo.png) | bin | 1715 -> 1715 bytes | |||
-rw-r--r-- | assets/img/clients/conversations_logo.png (renamed from img/clients/conversations_logo.png) | bin | 31889 -> 31889 bytes | |||
-rw-r--r-- | assets/img/clients/gajim_logo.png (renamed from img/clients/gajim_logo.png) | bin | 23295 -> 23295 bytes | |||
-rw-r--r-- | assets/img/clients/messages_logo.png (renamed from img/clients/messages_logo.png) | bin | 4228 -> 4228 bytes | |||
-rw-r--r-- | assets/img/clients/psi_logo.png (renamed from img/clients/psi_logo.png) | bin | 15980 -> 15980 bytes | |||
-rw-r--r-- | assets/img/clients/spark_logo.png (renamed from img/clients/spark_logo.png) | bin | 9575 -> 9575 bytes | |||
-rw-r--r-- | assets/img/clients/swift_logo.svg (renamed from img/clients/swift_logo.svg) | 0 | ||||
-rw-r--r-- | assets/img/clients/xabber_logo.png (renamed from img/clients/xabber_logo.png) | bin | 55710 -> 55710 bytes | |||
-rw-r--r-- | assets/img/clients/yaxim_logo.png (renamed from img/clients/yaxim_logo.png) | bin | 35324 -> 35324 bytes | |||
-rw-r--r-- | assets/img/favicon.ico (renamed from img/favicon.ico) | bin | 3474 -> 3474 bytes | |||
-rw-r--r-- | assets/img/guides/gajim/AccountCreationWizard.png (renamed from img/guides/gajim/AccountCreationWizard.png) | bin | 21779 -> 21779 bytes | |||
-rw-r--r-- | assets/img/guides/gajim/AccountCreationWizard1.png (renamed from img/guides/gajim/AccountCreationWizard1.png) | bin | 24370 -> 24370 bytes | |||
-rw-r--r-- | assets/img/guides/gajim/AccountCreationWizard2.png (renamed from img/guides/gajim/AccountCreationWizard2.png) | bin | 24942 -> 24942 bytes | |||
-rw-r--r-- | assets/img/guides/gajim/AccountModification.png (renamed from img/guides/gajim/AccountModification.png) | bin | 27832 -> 27832 bytes | |||
-rw-r--r-- | assets/img/guides/gajim/Gajim-logo.png (renamed from img/guides/gajim/Gajim-logo.png) | bin | 23295 -> 23295 bytes | |||
-rw-r--r-- | assets/img/guides/spark/spark-login-screen.png (renamed from img/guides/spark/spark-login-screen.png) | bin | 40329 -> 40329 bytes | |||
-rw-r--r-- | assets/img/guides/spark/spark_add+contact.jpg (renamed from img/guides/spark/spark_add+contact.jpg) | bin | 21491 -> 21491 bytes | |||
-rw-r--r-- | assets/img/guides/spark/spark_chat+window.jpg (renamed from img/guides/spark/spark_chat+window.jpg) | bin | 72470 -> 72470 bytes | |||
-rw-r--r-- | assets/img/guides/spark/spark_sc_roster_2.7.6.png (renamed from img/guides/spark/spark_sc_roster_2.7.6.png) | bin | 35941 -> 35941 bytes | |||
-rw-r--r-- | assets/img/guides/spark/spark_status.jpg (renamed from img/guides/spark/spark_status.jpg) | bin | 35822 -> 35822 bytes | |||
-rw-r--r-- | assets/img/offline.png (renamed from img/offline.png) | bin | 905 -> 905 bytes | |||
-rw-r--r-- | assets/img/online.png (renamed from img/online.png) | bin | 920 -> 920 bytes | |||
-rw-r--r-- | assets/img/status_away.png (renamed from img/status_away.png) | bin | 948 -> 948 bytes | |||
-rw-r--r-- | assets/img/status_chat.png (renamed from img/status_chat.png) | bin | 920 -> 920 bytes | |||
-rw-r--r-- | assets/img/status_dnd.png (renamed from img/status_dnd.png) | bin | 822 -> 822 bytes | |||
-rw-r--r-- | assets/img/status_offline.png (renamed from img/status_offline.png) | bin | 905 -> 905 bytes | |||
-rw-r--r-- | assets/img/status_online.png (renamed from img/status_online.png) | bin | 920 -> 920 bytes | |||
-rw-r--r-- | assets/img/status_xa.png (renamed from img/status_xa.png) | bin | 954 -> 954 bytes | |||
-rw-r--r-- | assets/img/xmpp_logo.png (renamed from img/xmpp_logo.png) | bin | 14898 -> 14898 bytes | |||
-rw-r--r-- | assets/js/jqBootstrapValidation/1.3.6/jqBootstrapValidation.js | 912 | ||||
-rw-r--r-- | index.html | 2 | ||||
-rw-r--r-- | pages/chatsecure.md | 2 | ||||
-rw-r--r-- | pages/contact.html | 4 | ||||
-rw-r--r-- | pages/conversations.md | 2 | ||||
-rw-r--r-- | pages/register_web/register.html | 8 | ||||
-rw-r--r-- | pages/register_web/success.html | 8 | ||||
-rw-r--r-- | pages/spark.md | 2 | ||||
-rw-r--r-- | pages/web-presence.md | 12 |
44 files changed, 940 insertions, 26 deletions
diff --git a/_includes/footer.html b/_includes/footer.html index ad3790d..511e012 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -12,7 +12,8 @@ </div><!-- Closing Footer Section --> </div><!-- Closing Menu Section (from header) --> </div> -</body> -<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> +</body>{% if page.url == "/files/register_web/register.html" %} +<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>{% if page.url == "/files/register_web/register.html" %} +<script src="https://raw.github.com/ReactiveRaven/jqBootstrapValidation/1.3.6/jqBootstrapValidation.js"></script><!-- This is the Register page, so we will add jqBootstrapValidation -->{% endif %} <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> </html> diff --git a/_includes/header.html b/_includes/header.html index 70a632a..1246904 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -7,9 +7,9 @@ <meta name="viewport" content="width=device-width"> <meta name="description" content="{{ site.description }}"> <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.url }}"> - <link rel="shortcut icon" href="{{ "/img/favicon.ico" | prepend: site.url }}"/> + <link rel="shortcut icon" href="{{ "/assets/img/favicon.ico" | prepend: site.url }}"/> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> - <link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.url }}"> + <link rel="stylesheet" href="{{ "/assets/css/main.css" | prepend: site.url }}"> </head> <body> diff --git a/_includes/menu.html b/_includes/menu.html index f61241b..d61b18c 100644 --- a/_includes/menu.html +++ b/_includes/menu.html @@ -24,6 +24,7 @@ <ul class="nav navbar-nav navbar-right"> <li><a href="{{ site.url }}/help/">User Guides</a></li>{% if site.register-web == 1 %} <li><a href="{{ site.url }}/register/">Register</a></li>{% endif %} + <li><a href="https://status.im.mattrude.com/">Status</a></li> <li><a href="{{ site.url }}/certificates/">Certificates</a></li> </ul> </div> diff --git a/_layouts/user-guides.html b/_layouts/user-guides.html index 5e93f24..b5a7bdd 100644 --- a/_layouts/user-guides.html +++ b/_layouts/user-guides.html @@ -2,11 +2,11 @@ {% include header.html %} {% include menu.html %} <div class="container offsetanchor" style="padding-top:80px;"> -<center><img src="/img/clients/{{ page.client}}_logo.png" alt="{{ page.client | capitalize }} XMPP Client Logo" height="128px" width="128px"><h1>{{ page.client | capitalize }} User Guide</h1></center> +<center><img src="/assets/img/clients/{{ page.client}}_logo.png" alt="{{ page.client | capitalize }} XMPP Client Logo" height="128px" width="128px"><h1>{{ page.client | capitalize }} User Guide</h1></center> <!-- <div class="col-md-4 pull-right float-right"> - <center><img src="/img/clients/{{ page.client}}_logo.png" alt="{{ page.client | capitalize }} XMPP Client Logo" height="80px" width="80px"><h1></center> + <center><img src="/assets/img/clients/{{ page.client}}_logo.png" alt="{{ page.client | capitalize }} XMPP Client Logo" height="80px" width="80px"><h1></center> <center><h3>{{ page.client | capitalize }}</h3></center> </div> --> diff --git a/css/main.css b/assets/css/main.css index 8fe6a4c..8fe6a4c 100644 --- a/css/main.css +++ b/assets/css/main.css diff --git a/css/main.css-old b/assets/css/main.css-old index d7ca4ef..d7ca4ef 100644 --- a/css/main.css-old +++ b/assets/css/main.css-old diff --git a/img/clients/chatsecure_logo.png b/assets/img/clients/chatsecure_logo.png Binary files differindex e51b711..e51b711 100644 --- a/img/clients/chatsecure_logo.png +++ b/assets/img/clients/chatsecure_logo.png diff --git a/img/clients/conversations_logo.png b/assets/img/clients/conversations_logo.png Binary files differindex df2d41b..df2d41b 100644 --- a/img/clients/conversations_logo.png +++ b/assets/img/clients/conversations_logo.png diff --git a/img/clients/gajim_logo.png b/assets/img/clients/gajim_logo.png Binary files differindex 2d02d3b..2d02d3b 100644 --- a/img/clients/gajim_logo.png +++ b/assets/img/clients/gajim_logo.png diff --git a/img/clients/messages_logo.png b/assets/img/clients/messages_logo.png Binary files differindex 7005089..7005089 100644 --- a/img/clients/messages_logo.png +++ b/assets/img/clients/messages_logo.png diff --git a/img/clients/psi_logo.png b/assets/img/clients/psi_logo.png Binary files differindex ce28218..ce28218 100644 --- a/img/clients/psi_logo.png +++ b/assets/img/clients/psi_logo.png diff --git a/img/clients/spark_logo.png b/assets/img/clients/spark_logo.png Binary files differindex a5f5e01..a5f5e01 100644 --- a/img/clients/spark_logo.png +++ b/assets/img/clients/spark_logo.png diff --git a/img/clients/swift_logo.svg b/assets/img/clients/swift_logo.svg index 1c06ad9..1c06ad9 100644 --- a/img/clients/swift_logo.svg +++ b/assets/img/clients/swift_logo.svg diff --git a/img/clients/xabber_logo.png b/assets/img/clients/xabber_logo.png Binary files differindex e61cfc4..e61cfc4 100644 --- a/img/clients/xabber_logo.png +++ b/assets/img/clients/xabber_logo.png diff --git a/img/clients/yaxim_logo.png b/assets/img/clients/yaxim_logo.png Binary files differindex 1c3a58d..1c3a58d 100644 --- a/img/clients/yaxim_logo.png +++ b/assets/img/clients/yaxim_logo.png diff --git a/img/favicon.ico b/assets/img/favicon.ico Binary files differindex 1a2f39d..1a2f39d 100644 --- a/img/favicon.ico +++ b/assets/img/favicon.ico diff --git a/img/guides/gajim/AccountCreationWizard.png b/assets/img/guides/gajim/AccountCreationWizard.png Binary files differindex 9eaf3d4..9eaf3d4 100644 --- a/img/guides/gajim/AccountCreationWizard.png +++ b/assets/img/guides/gajim/AccountCreationWizard.png diff --git a/img/guides/gajim/AccountCreationWizard1.png b/assets/img/guides/gajim/AccountCreationWizard1.png Binary files differindex 36a29b2..36a29b2 100644 --- a/img/guides/gajim/AccountCreationWizard1.png +++ b/assets/img/guides/gajim/AccountCreationWizard1.png diff --git a/img/guides/gajim/AccountCreationWizard2.png b/assets/img/guides/gajim/AccountCreationWizard2.png Binary files differindex 1a888fc..1a888fc 100644 --- a/img/guides/gajim/AccountCreationWizard2.png +++ b/assets/img/guides/gajim/AccountCreationWizard2.png diff --git a/img/guides/gajim/AccountModification.png b/assets/img/guides/gajim/AccountModification.png Binary files differindex 4ac1324..4ac1324 100644 --- a/img/guides/gajim/AccountModification.png +++ b/assets/img/guides/gajim/AccountModification.png diff --git a/img/guides/gajim/Gajim-logo.png b/assets/img/guides/gajim/Gajim-logo.png Binary files differindex 2d02d3b..2d02d3b 100644 --- a/img/guides/gajim/Gajim-logo.png +++ b/assets/img/guides/gajim/Gajim-logo.png diff --git a/img/guides/spark/spark-login-screen.png b/assets/img/guides/spark/spark-login-screen.png Binary files differindex 864be6b..864be6b 100644 --- a/img/guides/spark/spark-login-screen.png +++ b/assets/img/guides/spark/spark-login-screen.png diff --git a/img/guides/spark/spark_add+contact.jpg b/assets/img/guides/spark/spark_add+contact.jpg Binary files differindex 9a61041..9a61041 100644 --- a/img/guides/spark/spark_add+contact.jpg +++ b/assets/img/guides/spark/spark_add+contact.jpg diff --git a/img/guides/spark/spark_chat+window.jpg b/assets/img/guides/spark/spark_chat+window.jpg Binary files differindex eb9d559..eb9d559 100644 --- a/img/guides/spark/spark_chat+window.jpg +++ b/assets/img/guides/spark/spark_chat+window.jpg diff --git a/img/guides/spark/spark_sc_roster_2.7.6.png b/assets/img/guides/spark/spark_sc_roster_2.7.6.png Binary files differindex 019b189..019b189 100644 --- a/img/guides/spark/spark_sc_roster_2.7.6.png +++ b/assets/img/guides/spark/spark_sc_roster_2.7.6.png diff --git a/img/guides/spark/spark_status.jpg b/assets/img/guides/spark/spark_status.jpg Binary files differindex 3d18be3..3d18be3 100644 --- a/img/guides/spark/spark_status.jpg +++ b/assets/img/guides/spark/spark_status.jpg diff --git a/img/offline.png b/assets/img/offline.png Binary files differindex 12db2af..12db2af 100644 --- a/img/offline.png +++ b/assets/img/offline.png diff --git a/img/online.png b/assets/img/online.png Binary files differindex fb257c3..fb257c3 100644 --- a/img/online.png +++ b/assets/img/online.png diff --git a/img/status_away.png b/assets/img/status_away.png Binary files differindex 0de5c6a..0de5c6a 100644 --- a/img/status_away.png +++ b/assets/img/status_away.png diff --git a/img/status_chat.png b/assets/img/status_chat.png Binary files differindex 324f40b..324f40b 100644 --- a/img/status_chat.png +++ b/assets/img/status_chat.png diff --git a/img/status_dnd.png b/assets/img/status_dnd.png Binary files differindex 015f3da..015f3da 100644 --- a/img/status_dnd.png +++ b/assets/img/status_dnd.png diff --git a/img/status_offline.png b/assets/img/status_offline.png Binary files differindex 12db2af..12db2af 100644 --- a/img/status_offline.png +++ b/assets/img/status_offline.png diff --git a/img/status_online.png b/assets/img/status_online.png Binary files differindex fb257c3..fb257c3 100644 --- a/img/status_online.png +++ b/assets/img/status_online.png diff --git a/img/status_xa.png b/assets/img/status_xa.png Binary files differindex 321d35b..321d35b 100644 --- a/img/status_xa.png +++ b/assets/img/status_xa.png diff --git a/img/xmpp_logo.png b/assets/img/xmpp_logo.png Binary files differindex 1a3110c..1a3110c 100644 --- a/img/xmpp_logo.png +++ b/assets/img/xmpp_logo.png diff --git a/assets/js/jqBootstrapValidation/1.3.6/jqBootstrapValidation.js b/assets/js/jqBootstrapValidation/1.3.6/jqBootstrapValidation.js new file mode 100644 index 0000000..29cbb08 --- /dev/null +++ b/assets/js/jqBootstrapValidation/1.3.6/jqBootstrapValidation.js @@ -0,0 +1,912 @@ +/* jqBootstrapValidation + * A plugin for automating validation on Twitter Bootstrap formatted forms. + * + * v1.3.6 + * + * License: MIT <http://opensource.org/licenses/mit-license.php> - see LICENSE file + * + * http://ReactiveRaven.github.com/jqBootstrapValidation/ + */ + +(function( $ ){ + + var createdElements = []; + + var defaults = { + options: { + prependExistingHelpBlock: false, + sniffHtml: true, // sniff for 'required', 'maxlength', etc + preventSubmit: true, // stop the form submit event from firing if validation fails + submitError: false, // function called if there is an error when trying to submit + submitSuccess: false, // function called just before a successful submit event is sent to the server + semanticallyStrict: false, // set to true to tidy up generated HTML output + autoAdd: { + helpBlocks: true + }, + filter: function () { + // return $(this).is(":visible"); // only validate elements you can see + return true; // validate everything + } + }, + methods: { + init : function( options ) { + + var settings = $.extend(true, {}, defaults); + + settings.options = $.extend(true, settings.options, options); + + var $siblingElements = this; + + var uniqueForms = $.unique( + $siblingElements.map( function () { + return $(this).parents("form")[0]; + }).toArray() + ); + + $(uniqueForms).bind("submit", function (e) { + var $form = $(this); + var warningsFound = 0; + var $inputs = $form.find("input,textarea,select").not("[type=submit],[type=image]").filter(settings.options.filter); + $inputs.trigger("submit.validation").trigger("validationLostFocus.validation"); + + $inputs.each(function (i, el) { + var $this = $(el), + $controlGroup = $this.parents(".control-group").first(); + if ( + $controlGroup.hasClass("warning") + ) { + $controlGroup.removeClass("warning").addClass("error"); + warningsFound++; + } + }); + + $inputs.trigger("validationLostFocus.validation"); + + if (warningsFound) { + if (settings.options.preventSubmit) { + e.preventDefault(); + } + $form.addClass("error"); + if ($.isFunction(settings.options.submitError)) { + settings.options.submitError($form, e, $inputs.jqBootstrapValidation("collectErrors", true)); + } + } else { + $form.removeClass("error"); + if ($.isFunction(settings.options.submitSuccess)) { + settings.options.submitSuccess($form, e); + } + } + }); + + return this.each(function(){ + + // Get references to everything we're interested in + var $this = $(this), + $controlGroup = $this.parents(".control-group").first(), + $helpBlock = $controlGroup.find(".help-block").first(), + $form = $this.parents("form").first(), + validatorNames = []; + + // create message container if not exists + if (!$helpBlock.length && settings.options.autoAdd && settings.options.autoAdd.helpBlocks) { + $helpBlock = $('<div class="help-block" />'); + $controlGroup.find('.controls').append($helpBlock); + createdElements.push($helpBlock[0]); + } + + // ============================================================= + // SNIFF HTML FOR VALIDATORS + // ============================================================= + + // *snort sniff snuffle* + + if (settings.options.sniffHtml) { + var message = ""; + // --------------------------------------------------------- + // PATTERN + // --------------------------------------------------------- + if ($this.attr("pattern") !== undefined) { + message = "Not in the expected format<!-- data-validation-pattern-message to override -->"; + if ($this.data("validationPatternMessage")) { + message = $this.data("validationPatternMessage"); + } + $this.data("validationPatternMessage", message); + $this.data("validationPatternRegex", $this.attr("pattern")); + } + // --------------------------------------------------------- + // MAX + // --------------------------------------------------------- + if ($this.attr("max") !== undefined || $this.attr("aria-valuemax") !== undefined) { + var max = ($this.attr("max") !== undefined ? $this.attr("max") : $this.attr("aria-valuemax")); + message = "Too high: Maximum of '" + max + "'<!-- data-validation-max-message to override -->"; + if ($this.data("validationMaxMessage")) { + message = $this.data("validationMaxMessage"); + } + $this.data("validationMaxMessage", message); + $this.data("validationMaxMax", max); + } + // --------------------------------------------------------- + // MIN + // --------------------------------------------------------- + if ($this.attr("min") !== undefined || $this.attr("aria-valuemin") !== undefined) { + var min = ($this.attr("min") !== undefined ? $this.attr("min") : $this.attr("aria-valuemin")); + message = "Too low: Minimum of '" + min + "'<!-- data-validation-min-message to override -->"; + if ($this.data("validationMinMessage")) { + message = $this.data("validationMinMessage"); + } + $this.data("validationMinMessage", message); + $this.data("validationMinMin", min); + } + // --------------------------------------------------------- + // MAXLENGTH + // --------------------------------------------------------- + if ($this.attr("maxlength") !== undefined) { + message = "Too long: Maximum of '" + $this.attr("maxlength") + "' characters<!-- data-validation-maxlength-message to override -->"; + if ($this.data("validationMaxlengthMessage")) { + message = $this.data("validationMaxlengthMessage"); + } + $this.data("validationMaxlengthMessage", message); + $this.data("validationMaxlengthMaxlength", $this.attr("maxlength")); + } + // --------------------------------------------------------- + // MINLENGTH + // --------------------------------------------------------- + if ($this.attr("minlength") !== undefined) { + message = "Too short: Minimum of '" + $this.attr("minlength") + "' characters<!-- data-validation-minlength-message to override -->"; + if ($this.data("validationMinlengthMessage")) { + message = $this.data("validationMinlengthMessage"); + } + $this.data("validationMinlengthMessage", message); + $this.data("validationMinlengthMinlength", $this.attr("minlength")); + } + // --------------------------------------------------------- + // REQUIRED + // --------------------------------------------------------- + if ($this.attr("required") !== undefined || $this.attr("aria-required") !== undefined) { + message = settings.builtInValidators.required.message; + if ($this.data("validationRequiredMessage")) { + message = $this.data("validationRequiredMessage"); + } + $this.data("validationRequiredMessage", message); + } + // --------------------------------------------------------- + // NUMBER + // --------------------------------------------------------- + if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "number") { + message = settings.builtInValidators.number.message; + if ($this.data("validationNumberMessage")) { + message = $this.data("validationNumberMessage"); + } + $this.data("validationNumberMessage", message); + } + // --------------------------------------------------------- + // EMAIL + // --------------------------------------------------------- + if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "email") { + message = "Not a valid email address<!-- data-validator-validemail-message to override -->"; + if ($this.data("validationValidemailMessage")) { + message = $this.data("validationValidemailMessage"); + } else if ($this.data("validationEmailMessage")) { + message = $this.data("validationEmailMessage"); + } + $this.data("validationValidemailMessage", message); + } + // --------------------------------------------------------- + // MINCHECKED + // --------------------------------------------------------- + if ($this.attr("minchecked") !== undefined) { + message = "Not enough options checked; Minimum of '" + $this.attr("minchecked") + "' required<!-- data-validation-minchecked-message to override -->"; + if ($this.data("validationMincheckedMessage")) { + message = $this.data("validationMincheckedMessage"); + } + $this.data("validationMincheckedMessage", message); + $this.data("validationMincheckedMinchecked", $this.attr("minchecked")); + } + // --------------------------------------------------------- + // MAXCHECKED + // --------------------------------------------------------- + if ($this.attr("maxchecked") !== undefined) { + message = "Too many options checked; Maximum of '" + $this.attr("maxchecked") + "' required<!-- data-validation-maxchecked-message to override -->"; + if ($this.data("validationMaxcheckedMessage")) { + message = $this.data("validationMaxcheckedMessage"); + } + $this.data("validationMaxcheckedMessage", message); + $this.data("validationMaxcheckedMaxchecked", $this.attr("maxchecked")); + } + } + + // ============================================================= + // COLLECT VALIDATOR NAMES + // ============================================================= + + // Get named validators + if ($this.data("validation") !== undefined) { + validatorNames = $this.data("validation").split(","); + } + + // Get extra ones defined on the element's data attributes + $.each($this.data(), function (i, el) { + var parts = i.replace(/([A-Z])/g, ",$1").split(","); + if (parts[0] === "validation" && parts[1]) { + validatorNames.push(parts[1]); + } + }); + + // ============================================================= + // NORMALISE VALIDATOR NAMES + // ============================================================= + + var validatorNamesToInspect = validatorNames; + var newValidatorNamesToInspect = []; + + do // repeatedly expand 'shortcut' validators into their real validators + { + // Uppercase only the first letter of each name + $.each(validatorNames, function (i, el) { + validatorNames[i] = formatValidatorName(el); + }); + + // Remove duplicate validator names + validatorNames = $.unique(validatorNames); + + // Pull out the new validator names from each shortcut + newValidatorNamesToInspect = []; + $.each(validatorNamesToInspect, function(i, el) { + if ($this.data("validation" + el + "Shortcut") !== undefined) { + // Are these custom validators? + // Pull them out! + $.each($this.data("validation" + el + "Shortcut").split(","), function(i2, el2) { + newValidatorNamesToInspect.push(el2); + }); + } else if (settings.builtInValidators[el.toLowerCase()]) { + // Is this a recognised built-in? + // Pull it out! + var validator = settings.builtInValidators[el.toLowerCase()]; + if (validator.type.toLowerCase() === "shortcut") { + $.each(validator.shortcut.split(","), function (i, el) { + el = formatValidatorName(el); + newValidatorNamesToInspect.push(el); + validatorNames.push(el); + }); + } + } + }); + + validatorNamesToInspect = newValidatorNamesToInspect; + + } while (validatorNamesToInspect.length > 0) + + // ============================================================= + // SET UP VALIDATOR ARRAYS + // ============================================================= + + var validators = {}; + + $.each(validatorNames, function (i, el) { + // Set up the 'override' message + var message = $this.data("validation" + el + "Message"); + var hasOverrideMessage = (message !== undefined); + var foundValidator = false; + message = + ( + message + ? message + : "'" + el + "' validation failed <!-- Add attribute 'data-validation-" + el.toLowerCase() + "-message' to input to change this message -->" + ) + ; + + $.each( + settings.validatorTypes, + function (validatorType, validatorTemplate) { + if (validators[validatorType] === undefined) { + validators[validatorType] = []; + } + if (!foundValidator && $this.data("validation" + el + formatValidatorName(validatorTemplate.name)) !== undefined) { + validators[validatorType].push( + $.extend( + true, + { + name: formatValidatorName(validatorTemplate.name), + message: message + }, + validatorTemplate.init($this, el) + ) + ); + foundValidator = true; + } + } + ); + + if (!foundValidator && settings.builtInValidators[el.toLowerCase()]) { + + var validator = $.extend(true, {}, settings.builtInValidators[el.toLowerCase()]); + if (hasOverrideMessage) { + validator.message = message; + } + var validatorType = validator.type.toLowerCase(); + + if (validatorType === "shortcut") { + foundValidator = true; + } else { + $.each( + settings.validatorTypes, + function (validatorTemplateType, validatorTemplate) { + if (validators[validatorTemplateType] === undefined) { + validators[validatorTemplateType] = []; + } + if (!foundValidator && validatorType === validatorTemplateType.toLowerCase()) { + $this.data("validation" + el + formatValidatorName(validatorTemplate.name), validator[validatorTemplate.name.toLowerCase()]); + validators[validatorType].push( + $.extend( + validator, + validatorTemplate.init($this, el) + ) + ); + foundValidator = true; + } + } + ); + } + } + + if (! foundValidator) { + $.error("Cannot find validation info for '" + el + "'"); + } + }); + + // ============================================================= + // STORE FALLBACK VALUES + // ============================================================= + + $helpBlock.data( + "original-contents", + ( + $helpBlock.data("original-contents") + ? $helpBlock.data("original-contents") + : $helpBlock.html() + ) + ); + + $helpBlock.data( + "original-role", + ( + $helpBlock.data("original-role") + ? $helpBlock.data("original-role") + : $helpBlock.attr("role") + ) + ); + + $controlGroup.data( + "original-classes", + ( + $controlGroup.data("original-clases") + ? $controlGroup.data("original-classes") + : $controlGroup.attr("class") + ) + ); + + $this.data( + "original-aria-invalid", + ( + $this.data("original-aria-invalid") + ? $this.data("original-aria-invalid") + : $this.attr("aria-invalid") + ) + ); + + // ============================================================= + // VALIDATION + // ============================================================= + + $this.bind( + "validation.validation", + function (event, params) { + + var value = getValue($this); + + // Get a list of the errors to apply + var errorsFound = []; + + $.each(validators, function (validatorType, validatorTypeArray) { + if (value || value.length || (params && params.includeEmpty) || (!!settings.validatorTypes[validatorType].blockSubmit && params && !!params.submitting)) { + $.each(validatorTypeArray, function (i, validator) { + if (settings.validatorTypes[validatorType].validate($this, value, validator)) { + errorsFound.push(validator.message); + } + }); + } + }); + + return errorsFound; + } + ); + + $this.bind( + "getValidators.validation", + function () { + return validators; + } + ); + + // ============================================================= + // WATCH FOR CHANGES + // ============================================================= + $this.bind( + "submit.validation", + function () { + return $this.triggerHandler("change.validation", {submitting: true}); + } + ); + $this.bind( + [ + "keyup", + "focus", + "blur", + "click", + "keydown", + "keypress", + "change" + ].join(".validation ") + ".validation", + function (e, params) { + + var value = getValue($this); + + var errorsFound = []; + + $controlGroup.find("input,textarea,select").each(function (i, el) { + var oldCount = errorsFound.length; + $.each($(el).triggerHandler("validation.validation", params), function (j, message) { + errorsFound.push(message); + }); + if (errorsFound.length > oldCount) { + $(el).attr("aria-invalid", "true"); + } else { + var original = $this.data("original-aria-invalid"); + $(el).attr("aria-invalid", (original !== undefined ? original : false)); + } + }); + + $form.find("input,select,textarea").not($this).not("[name=\"" + $this.attr("name") + "\"]").trigger("validationLostFocus.validation"); + + errorsFound = $.unique(errorsFound.sort()); + + // Were there any errors? + if (errorsFound.length) { + // Better flag it up as a warning. + $controlGroup.removeClass("success error").addClass("warning"); + + // How many errors did we find? + if (settings.options.semanticallyStrict && errorsFound.length === 1) { + // Only one? Being strict? Just output it. + $helpBlock.html(errorsFound[0] + + ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" )); + } else { + // Multiple? Being sloppy? Glue them together into an UL. + $helpBlock.html("<ul role=\"alert\"><li>" + errorsFound.join("</li><li>") + "</li></ul>" + + ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" )); + } + } else { + $controlGroup.removeClass("warning error success"); + if (value.length > 0) { + $controlGroup.addClass("success"); + } + $helpBlock.html($helpBlock.data("original-contents")); + } + + if (e.type === "blur") { + $controlGroup.removeClass("success"); + } + } + ); + $this.bind("validationLostFocus.validation", function () { + $controlGroup.removeClass("success"); + }); + }); + }, + destroy : function( ) { + + return this.each( + function() { + + var + $this = $(this), + $controlGroup = $this.parents(".control-group").first(), + $helpBlock = $controlGroup.find(".help-block").first(); + + // remove our events + $this.unbind('.validation'); // events are namespaced. + // reset help text + $helpBlock.html($helpBlock.data("original-contents")); + // reset classes + $controlGroup.attr("class", $controlGroup.data("original-classes")); + // reset aria + $this.attr("aria-invalid", $this.data("original-aria-invalid")); + // reset role + $helpBlock.attr("role", $this.data("original-role")); + // remove all elements we created + if (createdElements.indexOf($helpBlock[0]) > -1) { + $helpBlock.remove(); + } + + } + ); + + }, + collectErrors : function(includeEmpty) { + + var errorMessages = {}; + this.each(function (i, el) { + var $el = $(el); + var name = $el.attr("name"); + var errors = $el.triggerHandler("validation.validation", {includeEmpty: true}); + errorMessages[name] = $.extend(true, errors, errorMessages[name]); + }); + + $.each(errorMessages, function (i, el) { + if (el.length === 0) { + delete errorMessages[i]; + } + }); + + return errorMessages; + + }, + hasErrors: function() { + + var errorMessages = []; + + this.each(function (i, el) { + errorMessages = errorMessages.concat( + $(el).triggerHandler("getValidators.validation") ? $(el).triggerHandler("validation.validation", {submitting: true}) : [] + ); + }); + + return (errorMessages.length > 0); + }, + override : function (newDefaults) { + defaults = $.extend(true, defaults, newDefaults); + } + }, + validatorTypes: { + callback: { + name: "callback", + init: function ($this, name) { + return { + validatorName: name, + callback: $this.data("validation" + name + "Callback"), + lastValue: $this.val(), + lastValid: true, + lastFinished: true + }; + }, + validate: function ($this, value, validator) { + if (validator.lastValue === value && validator.lastFinished) { + return !validator.lastValid; + } + + if (validator.lastFinished === true) + { + validator.lastValue = value; + validator.lastValid = true; + validator.lastFinished = false; + + var rrjqbvValidator = validator; + var rrjqbvThis = $this; + executeFunctionByName( + validator.callback, + window, + $this, + value, + function (data) { + if (rrjqbvValidator.lastValue === data.value) { + rrjqbvValidator.lastValid = data.valid; + if (data.message) { + rrjqbvValidator.message = data.message; + } + rrjqbvValidator.lastFinished = true; + rrjqbvThis.data("validation" + rrjqbvValidator.validatorName + "Message", rrjqbvValidator.message); + // Timeout is set to avoid problems with the events being considered 'already fired' + setTimeout(function () { + rrjqbvThis.trigger("change.validation"); + }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst + } + } + ); + } + + return false; + + } + }, + ajax: { + name: "ajax", + init: function ($this, name) { + return { + validatorName: name, + url: $this.data("validation" + name + "Ajax"), + lastValue: $this.val(), + lastValid: true, + lastFinished: true + }; + }, + validate: function ($this, value, validator) { + if (""+validator.lastValue === ""+value && validator.lastFinished === true) { + return validator.lastValid === false; + } + + if (validator.lastFinished === true) + { + validator.lastValue = value; + validator.lastValid = true; + validator.lastFinished = false; + $.ajax({ + url: validator.url, + data: "value=" + value + "&field=" + $this.attr("name"), + dataType: "json", + success: function (data) { + if (""+validator.lastValue === ""+data.value) { + validator.lastValid = !!(data.valid); + if (data.message) { + validator.message = data.message; + } + validator.lastFinished = true; + $this.data("validation" + validator.validatorName + "Message", validator.message); + // Timeout is set to avoid problems with the events being considered 'already fired' + setTimeout(function () { + $this.trigger("change.validation"); + }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst + } + }, + failure: function () { + validator.lastValid = true; + validator.message = "ajax call failed"; + validator.lastFinished = true; + $this.data("validation" + validator.validatorName + "Message", validator.message); + // Timeout is set to avoid problems with the events being considered 'already fired' + setTimeout(function () { + $this.trigger("change.validation"); + }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst + } + }); + } + + return false; + + } + }, + regex: { + name: "regex", + init: function ($this, name) { + return {regex: regexFromString($this.data("validation" + name + "Regex"))}; + }, + validate: function ($this, value, validator) { + return (!validator.regex.test(value) && ! validator.negative) + || (validator.regex.test(value) && validator.negative); + } + }, + required: { + name: "required", + init: function ($this, name) { + return {}; + }, + validate: function ($this, value, validator) { + return !!(value.length === 0 && ! validator.negative) + || !!(value.length > 0 && validator.negative); + }, + blockSubmit: true + }, + match: { + name: "match", + init: function ($this, name) { + var element = $this.parents("form").first().find("[name=\"" + $this.data("validation" + name + "Match") + "\"]").first(); + element.bind("validation.validation", function () { + $this.trigger("change.validation", {submitting: true}); + }); + return {"element": element}; + }, + validate: function ($this, value, validator) { + return (value !== validator.element.val() && ! validator.negative) + || (value === validator.element.val() && validator.negative); + }, + blockSubmit: true + }, + max: { + name: "max", + init: function ($this, name) { + return {max: $this.data("validation" + name + "Max")}; + }, + validate: function ($this, value, validator) { + return (parseFloat(value, 10) > parseFloat(validator.max, 10) && ! validator.negative) + || (parseFloat(value, 10) <= parseFloat(validator.max, 10) && validator.negative); + } + }, + min: { + name: "min", + init: function ($this, name) { + return {min: $this.data("validation" + name + "Min")}; + }, + validate: function ($this, value, validator) { + return (parseFloat(value) < parseFloat(validator.min) && ! validator.negative) + || (parseFloat(value) >= parseFloat(validator.min) && validator.negative); + } + }, + maxlength: { + name: "maxlength", + init: function ($this, name) { + return {maxlength: $this.data("validation" + name + "Maxlength")}; + }, + validate: function ($this, value, validator) { + return ((value.length > validator.maxlength) && ! validator.negative) + || ((value.length <= validator.maxlength) && validator.negative); + } + }, + minlength: { + name: "minlength", + init: function ($this, name) { + return {minlength: $this.data("validation" + name + "Minlength")}; + }, + validate: function ($this, value, validator) { + return ((value.length < validator.minlength) && ! validator.negative) + || ((value.length >= validator.minlength) && validator.negative); + } + }, + maxchecked: { + name: "maxchecked", + init: function ($this, name) { + var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]"); + elements.bind("click.validation", function () { + $this.trigger("change.validation", {includeEmpty: true}); + }); + return {maxchecked: $this.data("validation" + name + "Maxchecked"), elements: elements}; + }, + validate: function ($this, value, validator) { + return (validator.elements.filter(":checked").length > validator.maxchecked && ! validator.negative) + || (validator.elements.filter(":checked").length <= validator.maxchecked && validator.negative); + }, + blockSubmit: true + }, + minchecked: { + name: "minchecked", + init: function ($this, name) { + var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]"); + elements.bind("click.validation", function () { + $this.trigger("change.validation", {includeEmpty: true}); + }); + return {minchecked: $this.data("validation" + name + "Minchecked"), elements: elements}; + }, + validate: function ($this, value, validator) { + return (validator.elements.filter(":checked").length < validator.minchecked && ! validator.negative) + || (validator.elements.filter(":checked").length >= validator.minchecked && validator.negative); + }, + blockSubmit: true + } + }, + builtInValidators: { + email: { + name: "Email", + type: "shortcut", + shortcut: "validemail" + }, + validemail: { + name: "Validemail", + type: "regex", + regex: "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\.[A-Za-z]{2,4}", + message: "Not a valid email address<!-- data-validator-validemail-message to override -->" + }, + passwordagain: { + name: "Passwordagain", + type: "match", + match: "password", + message: "Does not match the given password<!-- data-validator-paswordagain-message to override -->" + }, + positive: { + name: "Positive", + type: "shortcut", + shortcut: "number,positivenumber" + }, + negative: { + name: "Negative", + type: "shortcut", + shortcut: "number,negativenumber" + }, + number: { + name: "Number", + type: "regex", + regex: "([+-]?\\\d+(\\\.\\\d*)?([eE][+-]?[0-9]+)?)?", + message: "Must be a number<!-- data-validator-number-message to override -->" + }, + integer: { + name: "Integer", + type: "regex", + regex: "[+-]?\\\d+", + message: "No decimal places allowed<!-- data-validator-integer-message to override -->" + }, + positivenumber: { + name: "Positivenumber", + type: "min", + min: 0, + message: "Must be a positive number<!-- data-validator-positivenumber-message to override -->" + }, + negativenumber: { + name: "Negativenumber", + type: "max", + max: 0, + message: "Must be a negative number<!-- data-validator-negativenumber-message to override -->" + }, + required: { + name: "Required", + type: "required", + message: "This is required<!-- data-validator-required-message to override -->" + }, + checkone: { + name: "Checkone", + type: "minchecked", + minchecked: 1, + message: "Check at least one option<!-- data-validation-checkone-message to override -->" + } + } + }; + + var formatValidatorName = function (name) { + return name + .toLowerCase() + .replace( + /(^|\s)([a-z])/g , + function(m,p1,p2) { + return p1+p2.toUpperCase(); + } + ) + ; + }; + + var getValue = function ($this) { + // Extract the value we're talking about + var value = $this.val(); + var type = $this.attr("type"); + if (type === "checkbox") { + value = ($this.is(":checked") ? value : ""); + } + if (type === "radio") { + value = ($('input[name="' + $this.attr("name") + '"]:checked').length > 0 ? value : ""); + } + return value; + }; + + function regexFromString(inputstring) { + return new RegExp("^" + inputstring + "$"); + } + + /** + * Thanks to Jason Bunting via StackOverflow.com + * + * http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string#answer-359910 + * Short link: http://tinyurl.com/executeFunctionByName + **/ + function executeFunctionByName(functionName, context /*, args*/) { + var args = Array.prototype.slice.call(arguments).splice(2); + var namespaces = functionName.split("."); + var func = namespaces.pop(); + for(var i = 0; i < namespaces.length; i++) { + context = context[namespaces[i]]; + } + return context[func].apply(this, args); + } + + $.fn.jqBootstrapValidation = function( method ) { + + if ( defaults.methods[method] ) { + return defaults.methods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); + } else if ( typeof method === 'object' || ! method ) { + return defaults.methods.init.apply( this, arguments ); + } else { + $.error( 'Method ' + method + ' does not exist on jQuery.jqBootstrapValidation' ); + return null; + } + + }; + + $.jqBootstrapValidation = function (options) { + $(":input").not("[type=image],[type=submit]").jqBootstrapValidation.apply(this,arguments); + }; + +})( jQuery ); @@ -7,7 +7,7 @@ permalink: / <div class="jumbotron" style="padding-top:90px;"> <div class="container"> <div class="col-md-4 col-sm-4"> - <img src="{{ site.url }}/img/xmpp_logo.png" width="233px;" height="240px;"> + <img src="{{ site.url }}/assets/img/xmpp_logo.png" width="233px;" height="240px;"> </div> <div class="col-md-8" style="text-align:right;"> <h1>XMPP Communication Service</h1> diff --git a/pages/chatsecure.md b/pages/chatsecure.md index 16e5803..d3da219 100644 --- a/pages/chatsecure.md +++ b/pages/chatsecure.md @@ -4,4 +4,4 @@ title: ChatSecure User Guide permalink: /help/chatsecure/ --- -# ChatSecure User Guide +<center><img src="/assets/img/clients/chatsecure_logo.png" alt="ChatSecure Logo" height="128px" width="128px"><h1>ChatSecure User Guide</h1></center> diff --git a/pages/contact.html b/pages/contact.html index 3e3f1c2..2d60bbc 100644 --- a/pages/contact.html +++ b/pages/contact.html @@ -25,7 +25,7 @@ permalink: /contact/ <li><b><a href="https://keyserver.mattrude.com/search/vindex/hash/fingerprint/0xc4909ee495b0761f" title="PGP Public Key"><i class="fa fa-key"></i></a></b></li> </ul> </div> - <div class="col-md-7 pull-right"> + <div class="col-md-7"> <h3 id="my-public-pgp-key-information">My Public PGP Key Information</h3> <p><strong>My Default RSA Key:</strong></p> <div class="highlighter-rouge"> @@ -46,7 +46,7 @@ fingerprint = 77F1 D65B 5FF0 54DC 9286 6078 0314 CD85 0330 5F35</code></pre> <h3 id="signed-contact-information">Signed Contact Information</h3> <p>A signed copy of this information may be found <a href="https://im.mattrude.com/contact.txt">here</a>, or using my <a href="https://keyserver.mattrude.com/d/0x0314CD8503305F35">ECC key</a>, may be found <a href="https://im.mattrude.com/contact-ecc.txt">here</a>. You may validate these files by running the below commands:</p> <div class="highlighter-rouge"> - <pre class="highlight"><code>curl -s https://im.mattrude.com/contact.txt |gpg --keyserver-options auto-key-retrieve --auto-key-locate pka --verify + <pre class="highlight"><code style="overflow:auto;word-wrap:normal;white-space:pre;">curl -s https://im.mattrude.com/contact.txt |gpg --keyserver-options auto-key-retrieve --auto-key-locate pka --verify curl -s https://im.mattrude.com/contact-ecc.txt |gpg --keyserver-options auto-key-retrieve --auto-key-locate pka --verify </code></pre> </div> diff --git a/pages/conversations.md b/pages/conversations.md index b9e46e1..59090f3 100644 --- a/pages/conversations.md +++ b/pages/conversations.md @@ -4,7 +4,7 @@ title: Conversations User Guide permalink: /help/conversations/ --- -<center><img src="/img/clients/conversations_logo.png" alt="Conversations Logo" height="128px" width="128px"><h1>Conversations User Guide</h1></center> +<center><img src="/assets/img/clients/conversations_logo.png" alt="Conversations Logo" height="128px" width="128px"><h1>Conversations User Guide</h1></center> ## Overview diff --git a/pages/register_web/register.html b/pages/register_web/register.html index 51104d2..cf6a11b 100644 --- a/pages/register_web/register.html +++ b/pages/register_web/register.html @@ -22,22 +22,22 @@ permalink: /files/register_web/register.html <p>Once you have logged into the server, you may then chat with users on nearly any XMPP server.</p> <div class="col-md-3"> <center><a href="https://conversations.im/" title="Conversations User Guide" target=”_blank”> - <img src="{{ site.url }}/img/clients/conversations_logo.png" height="80px" width="80px"></a></center> + <img src="{{ site.url }}/assets/img/clients/conversations_logo.png" height="80px" width="80px"></a></center> <center><h4>Conversations</h4></center> </div> <div class="col-md-3"> <center><a href="https://swift.im/" title="Swift User Guide" target=”_blank”> - <img src="{{ site.url }}/img/clients/swift_logo.svg" height="80px" width="80px"></a></center> + <img src="{{ site.url }}/assets/img/clients/swift_logo.svg" height="80px" width="80px"></a></center> <center><h4>Swift</h4></center> </div> <div class="col-md-3"> <center><a href="https://chatsecure.org/" title="Chatsecure User Guide" target=”_blank”> - <img src="{{ site.url }}/img/clients/chatsecure_logo.png" height="80px" width="80px"></a></center> + <img src="{{ site.url }}/assets/img/clients/chatsecure_logo.png" height="80px" width="80px"></a></center> <center><h4>ChatSecure</h4></center> </div> <div class="col-md-3"> <center><a href="https://gajim.org/" title="Gajim User Guide" target=”_blank”> - <img src="{{ site.url }}/img/clients/gajim_logo.png" height="80px" width="80px"></a></center> + <img src="{{ site.url }}/assets/img/clients/gajim_logo.png" height="80px" width="80px"></a></center> <center><h4>Gajim</h4></center> </div> <hr style="color:grey"> diff --git a/pages/register_web/success.html b/pages/register_web/success.html index 642ce8c..e30e3df 100644 --- a/pages/register_web/success.html +++ b/pages/register_web/success.html @@ -14,13 +14,13 @@ permalink: /files/register_web/success.html <h3>Client List</h3> <div id="client-list"> <div class="col-md-3 col-sm-3 col-xs-3"><a href="https://conversations.im/" title="Conversations User Guide" target=”_blank”> - <img src="https://im.mattrude.com/img/clients/conversations_logo.png" height="80px" /></a></div> + <img src="{{ site.url }}/assets/img/clients/conversations_logo.png" height="80px" /></a></div> <div class="col-md-3 col-sm-3 col-xs-3"><a href="https://chatsecure.org/" title="Chatsecure User Guide" target=”_blank”> - <img src="https://im.mattrude.com/img/clients/chatsecure_logo.png" height="80px" /></a></div> + <img src="{{ site.url }}/assets/img/clients/chatsecure_logo.png" height="80px" /></a></div> <div class="col-md-3 col-sm-3 col-xs-3"><a href="https://swift.im/" title="Swift User Guide" target=”_blank”> - <img src="https://im.mattrude.com/img/clients/swift_logo.svg" height="80px" /></a></div> + <img src="{{ site.url }}/assets/img/clients/swift_logo.svg" height="80px" /></a></div> <div class="col-md-3 col-sm-3 col-xs-3"><a href="https://gajim.org/" title="Gajim User Guide" target=”_blank”> - <img src="https://im.mattrude.com/img/clients/gajim_logo.png" height="80px" /></a></div> + <img src="{{ site.url }}/assets/img/clients/gajim_logo.png" height="80px" /></a></div> </div> </div> </div> diff --git a/pages/spark.md b/pages/spark.md index 15709b3..3392c05 100644 --- a/pages/spark.md +++ b/pages/spark.md @@ -14,7 +14,7 @@ Spark is an Open Source, cross-platform IM client optimized for businesses and o ## Logging into Spark -<img style="float: right;" src="{{ site.url }}/img/guides/spark/spark-login-screen.png"> +<img style="float: right;" src="{{ site.url }}/assets/img/guides/spark/spark-login-screen.png"> Logging into Spark is just like logging into anyother program. You should have been provided with a <b>JID</b> and a <b>Password</b>. diff --git a/pages/web-presence.md b/pages/web-presence.md index c5ee8e7..8bafe4d 100644 --- a/pages/web-presence.md +++ b/pages/web-presence.md @@ -14,12 +14,12 @@ To use web presence, just add the below image url to a site or email. The useri <img src="{{ site.url }}/status/userid" /> -* ![online]({{ site.url }}/img/status_online.png) - User's current status is **online** -* ![status-chat]({{ site.url }}/img/status_chat.png) - User's current status is **free to chat** -* ![status-away]({{ site.url }}/img/status_away.png) - User's current status is **away** -* ![status-xa]({{ site.url }}/img/status_xa.png) - User's current status is **extended away** -* ![status-dnd]({{ site.url }}/img/status_dnd.png) - User's current status is **dnd** (do not disturb) -* ![offline]({{ site.url }}/img/status_offline.png) - User's current status is **offline** +* ![online]({{ site.url }}/assets/img/status_online.png) - User's current status is **online** +* ![status-chat]({{ site.url }}/assets/img/status_chat.png) - User's current status is **free to chat** +* ![status-away]({{ site.url }}/assets/img/status_away.png) - User's current status is **away** +* ![status-xa]({{ site.url }}/assets/img/status_xa.png) - User's current status is **extended away** +* ![status-dnd]({{ site.url }}/assets/img/status_dnd.png) - User's current status is **dnd** (do not disturb) +* ![offline]({{ site.url }}/assets/img/status_offline.png) - User's current status is **offline** ### Web Presence Status text |