58 Commits

Author SHA1 Message Date
Vojtěch Sajdl 9963e1f834 Merge pull request #126 from Nothing4You/fix-head.php
fix head.php: comment wasn't part of of a php block
2020-09-01 09:39:18 +02:00
Richard Schwab ff06a320b0 fix head.php: comment wasn't part of of a php block 2020-09-01 08:28:31 +02:00
Yiğit Kerem Oktay 3c540496d4 Update template.php 2020-08-30 22:03:42 +03:00
Yiğit Kerem Oktay e09d02cf2e Update and rename head.txt to head.php 2020-08-30 22:03:09 +03:00
Vojtěch Sajdl 14015d4666 Update README.md 2020-08-30 09:19:46 +02:00
Yiğit Kerem Oktay b3a1bfeb0e Update issue templates 2020-08-24 23:04:14 +03:00
Yiğit Kerem Oktay 1573b062b5 Update README.md 2020-08-24 22:46:31 +03:00
Yiğit Kerem Oktay 95f4fc5a41 Add support for additional code after head tag 2020-08-24 16:24:05 +03:00
Yiğit Kerem Oktay 8b2c664f36 Add support for custom code 2020-08-24 16:20:04 +03:00
Vojtěch Sajdl eecde5f23a Merge pull request #121 from yigitkeremoktay/patch-4
Fix contributors link
2020-08-15 15:15:55 +02:00
Yiğit Kerem Oktay 12e6fd693f Fix contributors link 2020-08-14 22:36:50 +03:00
Vojtěch Sajdl 0b16909899 Merge pull request #120 from yigitkeremoktay/patch-3
Fix a major issue
2020-08-14 20:54:47 +02:00
Vojtěch Sajdl 9f2e2db846 Merge pull request #118 from yigitkeremoktay/patch-1
Fix back https://github.com/Pryx/server-status/pull/106
2020-08-14 20:52:19 +02:00
Yiğit Kerem Oktay 7fceaf75d2 Fix a major issue
Makes this file functional.
2020-08-14 21:47:50 +03:00
Yiğit Kerem Oktay 0e78c04594 Fix back https://github.com/Pryx/server-status/pull/106
https://github.com/Pryx/server-status/pull/106 was reverted back via another PR  this fixes it back again
2020-08-14 21:07:05 +03:00
Vojtěch Sajdl 96bf232ec5 Merge pull request #115 from yigitkeremoktay/patch-1
Çeviriler Güncellendi
2020-08-14 19:48:45 +02:00
Vojtěch Sajdl f3aca0c172 Merge pull request #117 from yigitkeremoktay/patch-4
Some Graphical Improvements
2020-08-14 19:47:33 +02:00
Vojtěch Sajdl d9f0587e88 Merge pull request #116 from yigitkeremoktay/patch-3
Added Example Sites and Install Guide
2020-08-14 19:46:18 +02:00
Yiğit Kerem Oktay c6be6cb561 Add fix for language issue 2020-08-14 20:27:38 +03:00
Yiğit Kerem Oktay 10b485418c Fix a bug caused copyright to go blank 2020-08-14 20:15:39 +03:00
Yiğit Kerem Oktay 2d10e18453 Missing Commit Added (Manual Merge 5) 2020-08-14 20:14:23 +03:00
Yiğit Kerem Oktay 0dd6c5edaf Manual Merge 4 2020-08-14 20:07:00 +03:00
Yiğit Kerem Oktay 7d4aaf9948 Manual Merge Step 3 2020-08-14 20:05:34 +03:00
Yiğit Kerem Oktay d99e754647 Manual Merge Step 2 2020-08-14 20:04:49 +03:00
Yiğit Kerem Oktay f785d56b78 Manual Merge of PR 114 STEP 1 2020-08-14 20:02:42 +03:00
Yiğit Kerem Oktay 28431cc240 Added required definitions 2020-08-14 19:52:18 +03:00
Yiğit Kerem Oktay 7585a0d650 Logo size issue fixed 2020-08-14 19:50:56 +03:00
Yiğit Kerem Oktay 70c8a4fa0f Add support for custom logo 2020-08-14 19:46:48 +03:00
Yiğit Kerem Oktay 17a6115aab Some Graphical Improvements 2020-08-14 19:37:16 +03:00
Yiğit Kerem Oktay 27c90e30aa Çeviriler Güncellendi 2020-08-14 19:12:36 +03:00
Yiğit Kerem Oktay 9674e371de Delete Server_status_Turkish.mo 2020-08-14 19:11:27 +03:00
Yiğit Kerem Oktay 26e9135e60 Add files via upload 2020-08-14 19:10:54 +03:00
Yiğit Kerem Oktay 8dc7a342fe Delete server-status.mo 2020-08-14 19:10:37 +03:00
Yiğit Kerem Oktay 05ee9256eb Added Example Sites and Install Guide 2020-08-14 18:14:39 +03:00
Yiğit Kerem Oktay 09770165a6 Çeviriler Güncellendi
Updated translations. Privacy policy may still need some translations.
2020-08-14 17:14:09 +03:00
Vojtěch Sajdl a476a20737 Fix discord link 2020-08-14 14:51:05 +02:00
Vojtěch Sajdl e96f8733a7 Merge pull request #112 from yigitkeremoktay/patch-1
Add some required info for creating server config
2020-08-14 14:46:39 +02:00
Yiğit Kerem Oktay d538f7d358 Create IISWebConfig 2020-08-14 15:13:12 +03:00
Yiğit Kerem Oktay af2f8969eb Create ApacheHtaccess 2020-08-14 15:12:30 +03:00
Yiğit Kerem Oktay 34e3782a61 Add additional info 2020-08-14 15:11:42 +03:00
Yiğit Kerem Oktay b14f60e08b Add some required info for creating server config 2020-08-14 14:58:05 +03:00
Yiğit Kerem Oktay 484bbd60d0 Create create-htaccess.php (#108)
* Create create-htaccess.php

This file generates a .htaccess file that contains all necessary 
code for it.
This is needed because some hosts do not either unzip hidden files
or neither GitHub puts that file inside the zips.

* Delete .htaccess

* Add required code for creating htaccess

* Add support for both iis and apache

* Delete web.config

* Rename create-htaccess.php to create-server-config.php

* Rename file links for create-server-config.php

* Last nitpick :)
2020-08-14 13:40:42 +02:00
Vojtěch Sajdl 7362c857b0 Merge pull request #106 from yigitkeremoktay/patch-1
Fix service labels not fitting inside  container
2020-08-14 13:23:24 +02:00
Yiğit Kerem Oktay ab085596ca Patch 1.3 2020-08-14 14:00:38 +03:00
Yiğit Kerem Oktay 14e04d0737 Patch 1.2 2020-08-14 13:58:55 +03:00
Yiğit Kerem Oktay f6acd559d5 Fix service labels not fitting inside container
Service Labels are automatically pushed to a new line when there is no enough space
2020-08-14 12:09:12 +03:00
Vojtěch Sajdl dc7fcdbd4f Added discord to readme 2020-08-12 10:03:11 +02:00
Vojtěch Sajdl d9b7ed432e Merge pull request #104 from Nothing4You/fix-maintenance-relative-dates
Fix relative timestamps not properly displaying dates in the future.
2020-06-12 12:04:54 +02:00
Richard Schwab 0be50cf9f9 Fix relative timestamps not properly displaying dates in the future.
In 184247c4ab (#99) jquery.timeago was updated from version 1.6.1 to 1.6.7.
This changed the default value for allowFuture, which is responsible for restricting whether a date in the future would be shown e.g. as "3 days ago" or "3 days from now".
2020-06-12 11:30:09 +02:00
Vojtěch Sajdl 570895c7bd Fix #102 - strip tags when saving incident 2020-06-03 09:13:54 +02:00
Vojtěch Sajdl 9eba848423 Merge pull request #101 from thnilsen/issue81
Remove urlencode() call from install routine
2020-05-28 14:46:53 +02:00
thnilsen 253bf925ce Fixes issue #81, #91, #94, #95 by removing escaping of of what becomes the WEB_URL config parameter. 2020-05-27 19:31:25 +02:00
Vojtěch Sajdl 45a90aef71 Merge pull request #100 from thnilsen/issue64
Fix for translation when selecting a different language
Fixes #64 #80 #84
2020-05-23 17:18:47 +02:00
thnilsen 02cd19a439 Fixes issue #64 2020-05-23 17:03:08 +02:00
Vojtěch Sajdl 41fd9a2745 Merge pull request #99 from Nothing4You/update-libs
Fix #92 Update libs
2020-05-11 09:57:12 +02:00
Richard Schwab 184247c4ab Update libs:
- jquery to 3.2.1
- jquery.growl to 1.3.5
- jquery.timeago to 1.6.7
- bootstrap to 3.4.1
2020-05-11 07:07:02 +02:00
Vojtěch Sajdl 7294b356dd Fix #78 - run data through htmlspecialchars so we don't crash when there are quotes in the name 2019-03-15 12:22:16 +01:00
Vojtěch Sajdl 2b54aa9d46 Translate (#79)
* Update server-status.mo (POEditor.com)

* Update server-status.po (POEditor.com)

* Add translations from POEditor
2019-03-15 12:14:24 +01:00
26 changed files with 609 additions and 351 deletions
+38
View File
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: yigitkeremoktay
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.
+22
View File
@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE-REQUEST]"
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Was this considered before?**
**Additional context**
Add any other context or screenshots about the feature request here.
+41
View File
@@ -0,0 +1,41 @@
---
name: Help Needed
about: If this is not a bug but you need help
title: "[HELP-NEEDED]"
labels: help wanted
assignees: yigitkeremoktay
---
**Describe the problem**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**What you tried?**
**Was this mentioned before?**
**Additional context**
Add any other context about the problem here.
+18
View File
@@ -0,0 +1,18 @@
---
name: PR Template
about: If you have submitted a PR,fill this for to help us!
title: "[PR-INFO]"
labels: PR
assignees: ''
---
## Link to your PR:
## Is this from a feature request? Please link it
## Are there any known bugs or security issues
## Precisely describe what this does
## Give us an example use case
-11
View File
@@ -1,12 +1,10 @@
ErrorDocument 404 /404.php ErrorDocument 404 /404.php
<IfModule mod_headers.c> <IfModule mod_headers.c>
Header set X-UA-Compatible "IE=edge" Header set X-UA-Compatible "IE=edge"
<FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|woff2?|xloc|xml|xpi)$"> <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|woff2?|xloc|xml|xpi)$">
Header unset X-UA-Compatible Header unset X-UA-Compatible
</FilesMatch> </FilesMatch>
</IfModule> </IfModule>
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
#DELETE THIS IF YOU DON'T HAVE HTTPS! #DELETE THIS IF YOU DON'T HAVE HTTPS!
RewriteEngine On RewriteEngine On
@@ -14,21 +12,16 @@ ErrorDocument 404 /404.php
RewriteCond %{HTTPS} off RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule> </IfModule>
<IfModule mod_headers.c> <IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff" Header set X-Content-Type-Options "nosniff"
</IfModule> </IfModule>
<IfModule mod_deflate.c> <IfModule mod_deflate.c>
<IfModule mod_setenvif.c> <IfModule mod_setenvif.c>
<IfModule mod_headers.c> <IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule> </IfModule>
</IfModule> </IfModule>
<IfModule mod_filter.c> <IfModule mod_filter.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \ AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \ "application/javascript" \
@@ -63,17 +56,13 @@ ErrorDocument 404 /404.php
"text/x-cross-domain-policy" \ "text/x-cross-domain-policy" \
"text/xml" "text/xml"
</IfModule> </IfModule>
<IfModule mod_mime.c> <IfModule mod_mime.c>
AddEncoding gzip svgz AddEncoding gzip svgz
</IfModule> </IfModule>
<IfModule mod_headers.c> <IfModule mod_headers.c>
Header unset ETag Header unset ETag
</IfModule> </IfModule>
FileETag None FileETag None
<IfModule mod_expires.c> <IfModule mod_expires.c>
ExpiresActive on ExpiresActive on
ExpiresDefault "access plus 1 month" ExpiresDefault "access plus 1 month"
+19 -19
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<system.webServer> <system.webServer>
<rewrite> <rewrite>
<rules> <rules>
<rule name="Imported Rule 1" stopProcessing="true"> <rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" /> <match url="^(.*)$" ignoreCase="false" />
<conditions> <conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="false" /> <add input="{HTTPS}" pattern="off" ignoreCase="false" />
</conditions> </conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}{URL}" /> <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}{URL}" />
</rule> </rule>
</rules> </rules>
</rewrite> </rewrite>
<staticContent> <staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent> </staticContent>
</system.webServer> </system.webServer>
</configuration> </configuration>
+38 -10
View File
@@ -1,28 +1,50 @@
# Server status page # Server status page
![License](https://img.shields.io/github/license/Pryx/server-status.svg) ![Current release](https://img.shields.io/github/release/Pryx/server-status.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/b82d62fa6d8b41119f68fd9eca3c3a08)](https://www.codacy.com/app/sajdl.vojtech/server-status?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=Pryx/server-status&amp;utm_campaign=Badge_Grade) ![License](https://img.shields.io/github/license/Pryx/server-status.svg) ![Current release](https://img.shields.io/github/release/Pryx/server-status.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/b82d62fa6d8b41119f68fd9eca3c3a08)](https://www.codacy.com/app/sajdl.vojtech/server-status?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=Pryx/server-status&amp;utm_campaign=Badge_Grade) [![Discord](https://img.shields.io/discord/742703112590065745?logo=discord)](https://discord.gg/Wgxnxz4)
![screenshot](https://status.trucksbook.eu/img/screenshot.png) ![screenshot](https://status.trucksbook.eu/img/screenshot.png)
Very simple server status page written in PHP that can run on **PHP 5.4+** - even on **shared webhosting**. Because why waste your money on another server (or host on a server that you might want to do maintenance on), when you can use cheap webhosting? And as a cherry on top - it works even without javascript! Very simple server status page written in PHP that can run on **PHP 5.4+** - even on **shared webhosting** even without shell access. Because why waste your money on another server (or host on a server that you might want to do maintenance on), when you can use cheap webhosting? And as a cherry on top - it works even without javascript!
## How do I install this thing? ## How do I install this thing?
Simply put the files on your server and access it from your browser. There will be a simple install dialog waiting for you. Simply put the files on your server and access it from your browser. There will be a simple install dialog waiting for you.
If you prefer you can install manually by filling the info in config.php.template and renaming it to config.php.
As this **does not** run installation scripts you need to head to your install directory and run create-server-config.php and then delete it.
If you don't want to allow php to access your files or you have permission issues, use the following instructions.
### Creating server config:
* **IIS**: Rename IISWebConfig to web.config
* **Apache**: Rename ApacheHtaccess to .htaccess
* **Nginx**: You can run with php-fpm no additional modifications required.
You can find more info on [our wiki page](https://github.com/Pryx/server-status/wiki) You can find more info on [our wiki page](https://github.com/server-status-project/server-status/wiki)
## Contributing ## Contributing
Anyone is welcome to make pull request with new features or security patches / bug fixes. You can find some ideas [here](https://github.com/Pryx/server-status/labels/help%20wanted). Anyone is welcome to make pull request with new features or security patches / bug fixes.
You may create a pull request anytime or you can join our discord here(https://discord.gg/Wgxnxz4)
### Translations ### Translations
Any help with translations is much welcome! You can join us at https://poeditor.com/join/project/37SpmJtyOm. You can even add your own language. Just let me know when you're done and I'm going to include the language in the next release. Any help with translations is much welcome! You can join us at https://poeditor.com/join/project/37SpmJtyOm. You can even add your own language. Just let me know when you're done and I'm going to include the language in the next release.
[List of contributors](https://github.com/Pryx/server-status/wiki/contributors) [List of contributors](https://github.com/server-status-project/server-status/graphs/contributors)
### Does it actually run somewhere?
Yes it does!
https://status.trucksbook.eu/ (Trucksbook)
https://status.theskyfallen.com (The Skyfallen Productions Company)
https://status.ecidsf.com/ (ECIDSF)
https://status.otuts.eu/ (OTUTS)
And many more!
## FAQ ## FAQ
### Does it actually run somewhere? ### My Translations are not working. What to do?
Yes it does! This is basically debranded version of https://status.trucksbook.eu/. 1. Open your shell
2. Type this command 'sudo nano /etc/locale.gen'
3. Uncomment all the languages you want.
4. Save with 'Ctrl+X'
5. Run 'sudo locale-gen'
6. Restart apache 'sudo service apache2 restart'
7. Enjoy!
### Do you have a demo page? ### Do you have a demo page?
Yes we have! Head over to https://demo.status.sajdl.com/admin and try the admin interface for yourself. Yes we have! Head over to https://demo.status.sajdl.com/admin and try the admin interface for yourself.
Login details: Login details:
@@ -33,7 +55,13 @@ password: Ss123456
Please note that changes are reverted every hour. Please note that changes are reverted every hour.
### I noticed there is a new release. How do I update? ### I noticed there is a new release. How do I update?
Updating server status is fairly straightforward. Simply copy over the new files (with exception of `install.php`). Please double check that `config.php` didn't change - if it did, you will need to update it accordingly. This is also pretty straightforward - copy over the old `define()` statements and fill out any new ones (this should be fairly easy as the names are usually pretty self explanatory). This should not be required in future as it is planned to move most settings to database. Updating server status is fairly straightforward. Download your config.php from the server. Delete all files. Upload the new release with config.php you downloaded earlier. You need to manually run install scripts. For that head to your domain and run create-server-config.php deleting it afterwards.
If you don't want to allow php to access your files or you have permission issues, use the following instructions.
#### Updating server config
Follow the instructions for installation without giving the app write access. Keep in mind that you will need to re-apply any modifications you made.
### Is there any way to do this automatically?
We are working on it but it is not yet included. Stay tuned!
### Can I somehow pull status info from Server status programatically? ### Can I somehow pull status info from Server status programatically?
Yes you can! As of [9f7e15f](https://github.com/Pryx/server-status/commit/9f7e15fcd1d900108cbb0b3cad4bdc5ecf8b741b) we added API to pull status data... And more APIs are coming! Results are encoded in JSON format which should be pretty easy to use in any common programming language. Yes you can! As of [9f7e15f](https://github.com/Pryx/server-status/commit/9f7e15fcd1d900108cbb0b3cad4bdc5ecf8b741b) we added API to pull status data... And more APIs are coming! Results are encoded in JSON format which should be pretty easy to use in any common programming language.
@@ -41,7 +69,7 @@ Yes you can! As of [9f7e15f](https://github.com/Pryx/server-status/commit/9f7e15
### Why does this project exist? ### Why does this project exist?
It was written as a school project where we had to create a website. I went with this because I found the lack of good looking, easy to install and use status page rather weird. Therefore my goal (as stated above) was to create a simplistic status page that could run almost anywhere. The code is not the nicest or cleanest and it definitely doesn't have that many features, but hey, it works! It was written as a school project where we had to create a website. I went with this because I found the lack of good looking, easy to install and use status page rather weird. Therefore my goal (as stated above) was to create a simplistic status page that could run almost anywhere. The code is not the nicest or cleanest and it definitely doesn't have that many features, but hey, it works!
### I want feature XY! ### Feature Request
You can write an issue and I will try to take a look when I get some time *OR* you can actually make a fork as the code it GNU licensed. Pull requests are most welcome! You can write an issue and I will try to take a look when I get some time *OR* you can actually make a fork as the code it GNU licensed. Pull requests are most welcome!
___ ___
+3 -3
View File
@@ -83,8 +83,8 @@ class Incident implements JsonSerializable
global $mysqli, $message; global $mysqli, $message;
$user_id = $_SESSION['user']; $user_id = $_SESSION['user'];
$type = $_POST['type']; $type = $_POST['type'];
$title = $_POST['title']; $title = strip_tags($_POST['title']);
$text = $_POST['text']; $text = strip_tags($_POST['text'], '<br>');
if (strlen($title)==0) if (strlen($title)==0)
{ {
@@ -217,4 +217,4 @@ class Incident implements JsonSerializable
"username" => $this->username "username" => $this->username
]; ];
} }
} }
+1 -1
View File
@@ -163,7 +163,7 @@ class Service implements JsonSerializable
?> ?>
<div class="item clearfix"> <div class="item clearfix">
<div class="service"><?php echo $this->name; ?></div> <div class="service"><?php echo $this->name; ?></div>
<?php if ($this->status!=-1){?><div class="status <?php echo $classes[$this->status];?>"><?php echo $statuses[$this->status];?></div><?php }?> <?php if ($this->status!=-1){?><div class="status <?php echo $classes[$this->status];?>"><?php echo _($statuses[$this->status]);?></div><?php }?>
</div> </div>
<?php <?php
} }
+31 -5
View File
@@ -1,8 +1,27 @@
<?php <?php
//This is config file, please be careful /**************************************************************************************/
// SERVER STATUS CONFIG FILE TEMPLATE
// THIS FILE IS FOR CREATING YOUR CONFIG MANUALLY
// !!!!!!!IMPORTANT NOTE!!!!!!!!!
// You will need to create your htaccess or web.config file yourself if you use this template
// Please head to http(s)://yourdomain.com/create-server-config.php
// Wait until script finishes.
// Then delete it from your document root.
// If you don't want to allow php to access your root directory or if you have permission
// issues please follow the steps below.
// --------------------------
// FOR IIS:
// Rename IISWebConfig to web.config
// FOR Apache and Nginx
// Rename ApacheHtaccess to .htaccess
// --------------------------
// Contributors:
// Vojtěch Sajdl - Yigit Kerem Oktay - Thomas Nilsen - jhuesser
/**************************************************************************************/
session_start(); session_start();
//You can change these: //Start editing here
define("NAME", '##name##'); //Website name define("NAME", "##name##"); //Website name
define("TITLE", "##title##"); define("TITLE", "##title##");
define("WEB_URL", "##url##"); //Used for links define("WEB_URL", "##url##"); //Used for links
define("MAILER_NAME", "##mailer##"); //Mailer name define("MAILER_NAME", "##mailer##"); //Mailer name
@@ -15,7 +34,13 @@ define("WHO_WE_ARE","##who_we_are##");
define("POLICY_URL","##policy_url##"); define("POLICY_URL","##policy_url##");
define("INSTALL_OVERRIDE", false); define("INSTALL_OVERRIDE", false);
define("DEFAULT_LANGUAGE", "en_GB"); define("DEFAULT_LANGUAGE", "en_GB");
define("CUSTOM_LOGO_URL",""); // This will use the default logo if left empty
define("COPYRIGHT_TEXT",""); // Leave this empty if you don't want your copyright displayed
// Without COPYRIGHT_TEXT Set
// 2020 Server Status Project Contributors
// With COPYRIGHT_TEXT Set
// 2020 Server Status Project Contributors and COPYRIGHT_TEXT
//Stop editing
require("classes/locale-negotiator.php"); require("classes/locale-negotiator.php");
$negotiator = new LocaleNegotiator(DEFAULT_LANGUAGE); $negotiator = new LocaleNegotiator(DEFAULT_LANGUAGE);
@@ -27,6 +52,7 @@ if (!isset($_SESSION['locale'])||isset($_GET['lang']))
$_SESSION['locale'] = $best_match; $_SESSION['locale'] = $best_match;
} }
putenv('LANGUAGE='.$_SESSION['locale'].'.UTF-8');
setlocale(LC_ALL, $_SESSION['locale'].".UTF-8"); setlocale(LC_ALL, $_SESSION['locale'].".UTF-8");
setlocale(LC_MESSAGES, $_SESSION['locale'].".UTF-8"); setlocale(LC_MESSAGES, $_SESSION['locale'].".UTF-8");
bindtextdomain("server-status", __DIR__ . "/locale/"); bindtextdomain("server-status", __DIR__ . "/locale/");
@@ -41,4 +67,4 @@ if ($mysqli->connect_errno) {
exit(); exit();
} }
$mysqli->set_charset("utf8"); $mysqli->set_charset("utf8");
+23
View File
@@ -0,0 +1,23 @@
<?php
/********************************************************************/
// create-server-config.php
// Created by Yigit Kerem Oktay
// This file generates a .htaccess file that contains all necessary
// code for it.
// This is needed because some hosts do not either unzip hidden files
// or neither GitHub puts that file inside the zips.
/********************************************************************/
if(stripos($_SERVER['SERVER_SOFTWARE'],'apache')!== false){
$f = fopen(".htaccess", "a+");
$f2 = fopen("ApacheHtaccess","r");
fwrite($f, fread($f2, filesize("ApacheHtaccess")));
fclose($f);
fclose($f2);
} else {
$f = fopen("web.config", "a+");
$f2 = fopen("IISWebConfig","r");
fwrite($f, fread($f2, filesize("IISWebConfig")));
fclose($f);
fclose($f2);
}
?>
+3 -3
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,6 +1,6 @@
/* jQuery Growl /* jQuery Growl
* Copyright 2015 Kevin Sylvestre * Copyright 2015 Kevin Sylvestre
* 1.3.3 * 1.3.5
*/ */
.ontop, #growls-default, #growls-tl, #growls-tr, #growls-bl, #growls-br, #growls-tc, #growls-bc, #growls-cc, #growls-cl, #growls-cr { .ontop, #growls-default, #growls-tl, #growls-tr, #growls-bl, #growls-br, #growls-tc, #growls-bc, #growls-cc, #growls-cl, #growls-cr {
z-index: 50000; z-index: 50000;
+42 -33
View File
@@ -1,39 +1,40 @@
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese'); @import url('https://fonts.googleapis.com/css?family=Open+Sans:400&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese');
@import url('https://fonts.googleapis.com/css?family=Fira+Sans:400,700&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese'); @import url('https://fonts.googleapis.com/css?family=Fira+Sans:400,700&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese');
body { body {
background: #ffffff; background: #ffffff;
margin: 0; margin: 0;
height: 100%; margin-top: 80px;
line-height: 24px; height: 100%;
font-family: 'Open Sans', sans-serif; line-height: 24px;
font-family: 'Open Sans', sans-serif;
} }
img { img {
height: auto; height: auto;
max-width: 100%; max-width: 100%;
} }
a { a {
padding: 0; padding: 0;
margin: 0; margin: 0;
text-decoration: none; text-decoration: none;
} }
a:hover, a:hover,
a:focus { a:focus {
text-decoration: none; text-decoration: none;
color:#3566a8; color:#f5f4f4;
} }
.centered { .centered {
text-align: center text-align: center
} }
.navbar { .navbar {
padding-top: 5px; padding-top: 5px;
margin-bottom: 0px; margin-bottom: 0px;
} }
.navbar-brand { .navbar-brand {
@@ -42,28 +43,32 @@ a:focus {
.navbar-default .navbar-nav > li > a { .navbar-default .navbar-nav > li > a {
color: #f5f4f4; color: #f5f4f4;
font-size: 1em; font-size: 1em;
} }
.navbar-default .navbar-nav > li > a:hover { .navbar-default .navbar-nav > li > a:hover {
color: #a7a7a7; color: #a7a7a7;
} }
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
color: #ffffff; color: #f5f4f4;
background-color: transparent; background-color: transparent;
} }
.navbar-collapse .navbar-collapse
{ {
background: #2f60a3; background: #2f60a3;
} }
.navbar-default { .navbar-default {
z-index: 200; z-index: 200;
background-color: #2f60a3; background-color: gray;
border-color: transparent; border-color: transparent;
border-radius: 0px; border-radius: 0px 0px 30px 30px;
height: 77px; height: 77px;
overflow: hidden;
position: fixed;
top: 0;
width: 100%;
} }
@@ -160,7 +165,7 @@ body a h1{
.navbar-header .btn .navbar-header .btn
{ {
margin-top: 15px; margin-top: 15px;
margin-right: 10px margin-right: 10px
} }
@@ -243,11 +248,11 @@ body a h1{
border-left-color: transparent; border-left-color: transparent;
} }
.timeline .panel .panel-heading.icon * { .timeline .panel .panel-heading.icon * {
/*This shouldn't be relative in size...*/ /*This shouldn't be relative in size...*/
font-size: 20px; font-size: 20px;
vertical-align: middle; vertical-align: middle;
line-height: 40px; line-height: 40px;
} }
.timeline .panel .panel-heading.icon { .timeline .panel .panel-heading.icon {
position: absolute; position: absolute;
@@ -296,10 +301,11 @@ body a h1{
/* Footer */ /* Footer */
#footerwrap { #footerwrap {
border-radius: 30px 30px 0px 0px;
min-height: 60px; min-height: 60px;
padding-top: 15px; padding-top: 15px;
padding-bottom: 10px; padding-bottom: 10px;
background: #2f60a3; background: gray;
} }
#footerwrap a{ #footerwrap a{
@@ -564,7 +570,7 @@ i.danger{
} }
#footerwrap .dropdown-menu{ #footerwrap .dropdown-menu{
background: #337ab7 background: gray;
} }
#footerwrap .dropdown-menu a{ #footerwrap .dropdown-menu a{
@@ -573,7 +579,7 @@ i.danger{
padding: 2px 5px; padding: 2px 5px;
display: block; display: block;
transition: 125ms ease-in-out background-color; transition: 125ms ease-in-out background-color;
background-color: #337ab7 background-color: gray;
} }
#footerwrap .dropdown-menu a:hover{ #footerwrap .dropdown-menu a:hover{
@@ -615,4 +621,7 @@ body .h1,body .h2,body .h3,body h1,body h2,body h3 {
label.form-name label.form-name
{ {
line-height: 20px line-height: 20px
} }
.panel .panel-footer .label{
display: inline-block;
}
+2
View File
@@ -0,0 +1,2 @@
<?php
// Add any PHP Code Before after <head> tag
+2 -1
View File
@@ -1,13 +1,14 @@
<?php <?php
require_once("template.php");
if (!file_exists("config.php")) if (!file_exists("config.php"))
{ {
require_once("template.php");
require_once("install.php"); require_once("install.php");
} }
else{ else{
require_once("config.php"); require_once("config.php");
require_once("template.php");
require_once("classes/constellation.php"); require_once("classes/constellation.php");
$offset = 0; $offset = 0;
+18 -17
View File
@@ -113,26 +113,27 @@ if(isset($_POST['server']) && empty($message))
{ {
//Create config //Create config
$config = file_get_contents("config.php.template"); $config = file_get_contents("config.php.template");
$config = str_replace("##name##", $_POST['servername'], $config); $config = str_replace("##name##", htmlspecialchars($_POST['servername'], ENT_QUOTES), $config);
$config = str_replace("##title##", $_POST['title'], $config); $config = str_replace("##title##", htmlspecialchars($_POST['title'], ENT_QUOTES), $config);
$config = str_replace("##url##", $_POST['url'], $config); $config = str_replace("##url##", $_POST['url'], $config);
$config = str_replace("##mailer##", $_POST['mailer'], $config); $config = str_replace("##mailer##", htmlspecialchars($_POST['mailer'], ENT_QUOTES), $config);
$config = str_replace("##mailer_email##", $_POST['mailer_email'], $config); $config = str_replace("##mailer_email##", htmlspecialchars($_POST['mailer_email'], ENT_QUOTES), $config);
$config = str_replace("##server##", $_POST['server'], $config); $config = str_replace("##server##", htmlspecialchars($_POST['server'], ENT_QUOTES), $config);
$config = str_replace("##database##", $_POST['database'], $config); $config = str_replace("##database##", htmlspecialchars($_POST['database'], ENT_QUOTES), $config);
$config = str_replace("##user##", $_POST['dbuser'], $config); $config = str_replace("##user##", htmlspecialchars($_POST['dbuser'], ENT_QUOTES), $config);
$config = str_replace("##password##", $_POST['dbpassword'], $config); $config = str_replace("##password##", htmlspecialchars($_POST['dbpassword'], ENT_QUOTES), $config);
$config = str_replace("##name##", $_POST['servername'], $config); $config = str_replace("##name##", htmlspecialchars($_POST['servername'], ENT_QUOTES), $config);
$config = str_replace("##policy_name##", $_POST['policy_name'], $config); $config = str_replace("##policy_name##", htmlspecialchars($_POST['policy_name'], ENT_QUOTES), $config);
$config = str_replace("##address##", $_POST['address'], $config); $config = str_replace("##address##", htmlspecialchars($_POST['address'], ENT_QUOTES), $config);
$config = str_replace("##policy_mail##", $_POST['policy_mail'], $config); $config = str_replace("##policy_mail##", htmlspecialchars($_POST['policy_mail'], ENT_QUOTES), $config);
$config = str_replace("##policy_phone##", $_POST['policy_phone'],$config); $config = str_replace("##policy_phone##", htmlspecialchars($_POST['policy_phone'], ENT_QUOTES),$config);
$config = str_replace("##who_we_are##", $_POST['who_we_are'], $config); $config = str_replace("##who_we_are##", htmlspecialchars($_POST['who_we_are'], ENT_QUOTES), $config);
$policy_url_conf = ( ! empty($_POST['policy_url']) ) ? $_POST['policy_url'] : POLICY_URL; $policy_url_conf = ( ! empty($_POST['policy_url']) ) ? htmlspecialchars($_POST['policy_url'], ENT_QUOTES) : $_POST['url']."/policy.php";
$config = str_replace("##policy_url##", $policy_url_conf, $config); $config = str_replace("##policy_url##", $policy_url_conf, $config);
file_put_contents("config.php", $config); file_put_contents("config.php", $config);
include_once "create-server-config.php";
unlink("create-server-config.php");
unlink("config.php.template"); unlink("config.php.template");
unlink("install.sql"); unlink("install.sql");
unlink(__FILE__); unlink(__FILE__);
@@ -273,4 +274,4 @@ if (!empty($message))
</section> </section>
</form> </form>
<?php <?php
Template::render_footer(); Template::render_footer();
+3 -1
View File
@@ -8,6 +8,8 @@ function timeago()
} }
(function(){ (function(){
jQuery.timeago.settings.allowFuture = true;
timeago(); timeago();
$("body").on("click", ".navbar-toggle", function(){ $("body").on("click", ".navbar-toggle", function(){
@@ -27,4 +29,4 @@ function timeago()
}); });
}); });
})(); })();
+3 -4
View File
File diff suppressed because one or more lines are too long
-4
View File
File diff suppressed because one or more lines are too long
+2
View File
File diff suppressed because one or more lines are too long
+209 -149
View File
@@ -1,30 +1,45 @@
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
// Generated by CoffeeScript 2.1.0 // Generated by CoffeeScript 2.1.0
(function() { (function () {
/* /*
jQuery Growl jQuery Growl
Copyright 2015 Kevin Sylvestre Copyright 2015 Kevin Sylvestre
1.3.3 1.3.5
*/ */
"use strict"; "use strict";
var $, Animation, Growl; var $, Animation, Growl;
$ = jQuery; $ = jQuery;
Animation = (function() { Animation = function () {
class Animation { var Animation = function () {
static transition($el) { function Animation() {
var el, ref, result, type; _classCallCheck(this, Animation);
el = $el[0];
ref = this.transitions;
for (type in ref) {
result = ref[type];
if (el.style[type] != null) {
return result;
}
}
} }
}; _createClass(Animation, null, [{
key: "transition",
value: function transition($el) {
var el, ref, result, type;
el = $el[0];
ref = this.transitions;
for (type in ref) {
result = ref[type];
if (el.style[type] != null) {
return result;
}
}
}
}]);
return Animation;
}();
;
Animation.transitions = { Animation.transitions = {
"webkitTransition": "webkitTransitionEnd", "webkitTransition": "webkitTransitionEnd",
@@ -34,16 +49,24 @@
}; };
return Animation; return Animation;
}();
})(); Growl = function () {
var Growl = function () {
_createClass(Growl, null, [{
key: "growl",
value: function growl() {
var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
Growl = (function() { return new Growl(settings);
class Growl { }
static growl(settings = {}) { }]);
return new Growl(settings);
} function Growl() {
var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_classCallCheck(this, Growl);
constructor(settings = {}) {
this.render = this.render.bind(this); this.render = this.render.bind(this);
this.bind = this.bind.bind(this); this.bind = this.bind.bind(this);
this.unbind = this.unbind.bind(this); this.unbind = this.unbind.bind(this);
@@ -67,139 +90,170 @@
this.render(); this.render();
} }
initialize(location) { _createClass(Growl, [{
var id; key: "initialize",
id = 'growls-' + location; value: function initialize(location) {
return $('body:not(:has(#' + id + '))').append('<div id="' + id + '" />'); var id;
} id = 'growls-' + location;
return $('body:not(:has(#' + id + '))').append('<div id="' + id + '" />');
render() {
var $growl;
$growl = this.$growl();
this.$growls(this.settings.location).append($growl);
if (this.settings.fixed) {
this.present();
} else {
this.cycle();
} }
} }, {
key: "render",
bind($growl = this.$growl()) { value: function render() {
$growl.on("click", this.click); var $growl;
if (this.settings.delayOnHover) { $growl = this.$growl();
$growl.on("mouseenter", this.mouseEnter); this.$growls(this.settings.location).append($growl);
$growl.on("mouseleave", this.mouseLeave); if (this.settings.fixed) {
this.present();
} else {
this.cycle();
}
} }
return $growl.on("contextmenu", this.close).find(`.${this.settings.namespace}-close`).on("click", this.close); }, {
} key: "bind",
value: function bind() {
var $growl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.$growl();
unbind($growl = this.$growl()) { $growl.on("click", this.click);
$growl.off("click", this.click); if (this.settings.delayOnHover) {
if (this.settings.delayOnHover) { $growl.on("mouseenter", this.mouseEnter);
$growl.off("mouseenter", this.mouseEnter); $growl.on("mouseleave", this.mouseLeave);
$growl.off("mouseleave", this.mouseLeave); }
return $growl.on("contextmenu", this.close).find("." + this.settings.namespace + "-close").on("click", this.close);
} }
return $growl.off("contextmenu", this.close).find(`.${this.settings.namespace}-close`).off("click", this.close); }, {
} key: "unbind",
value: function unbind() {
var $growl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.$growl();
mouseEnter(event) { $growl.off("click", this.click);
var $growl; if (this.settings.delayOnHover) {
$growl = this.$growl(); $growl.off("mouseenter", this.mouseEnter);
return $growl.stop(true, true); $growl.off("mouseleave", this.mouseLeave);
} }
return $growl.off("contextmenu", this.close).find("." + this.settings.namespace + "-close").off("click", this.close);
mouseLeave(event) { }
return this.waitAndDismiss(); }, {
} key: "mouseEnter",
value: function mouseEnter(event) {
click(event) { var $growl;
if (this.settings.url != null) { $growl = this.$growl();
return $growl.stop(true, true);
}
}, {
key: "mouseLeave",
value: function mouseLeave(event) {
return this.waitAndDismiss();
}
}, {
key: "click",
value: function click(event) {
if (this.settings.url != null) {
event.preventDefault();
event.stopPropagation();
return window.open(this.settings.url);
}
}
}, {
key: "close",
value: function close(event) {
var $growl;
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
return window.open(this.settings.url); $growl = this.$growl();
return $growl.stop().queue(this.dismiss).queue(this.remove);
} }
} }, {
key: "cycle",
close(event) { value: function cycle() {
var $growl; var $growl;
event.preventDefault(); $growl = this.$growl();
event.stopPropagation(); return $growl.queue(this.present).queue(this.waitAndDismiss());
$growl = this.$growl();
return $growl.stop().queue(this.dismiss).queue(this.remove);
}
cycle() {
var $growl;
$growl = this.$growl();
return $growl.queue(this.present).queue(this.waitAndDismiss());
}
waitAndDismiss() {
var $growl;
$growl = this.$growl();
return $growl.delay(this.settings.duration).queue(this.dismiss).queue(this.remove);
}
present(callback) {
var $growl;
$growl = this.$growl();
this.bind($growl);
return this.animate($growl, `${this.settings.namespace}-incoming`, 'out', callback);
}
dismiss(callback) {
var $growl;
$growl = this.$growl();
this.unbind($growl);
return this.animate($growl, `${this.settings.namespace}-outgoing`, 'in', callback);
}
remove(callback) {
this.$growl().remove();
return typeof callback === "function" ? callback() : void 0;
}
animate($element, name, direction = 'in', callback) {
var transition;
transition = Animation.transition($element);
$element[direction === 'in' ? 'removeClass' : 'addClass'](name);
$element.offset().position;
$element[direction === 'in' ? 'addClass' : 'removeClass'](name);
if (callback == null) {
return;
} }
if (transition != null) { }, {
$element.one(transition, callback); key: "waitAndDismiss",
} else { value: function waitAndDismiss() {
callback(); var $growl;
$growl = this.$growl();
return $growl.delay(this.settings.duration).queue(this.dismiss).queue(this.remove);
} }
} }, {
key: "present",
$growls(location) { value: function present(callback) {
var base; var $growl;
if (this.$_growls == null) { $growl = this.$growl();
this.$_growls = []; this.bind($growl);
return this.animate($growl, this.settings.namespace + "-incoming", 'out', callback);
} }
return (base = this.$_growls)[location] != null ? base[location] : base[location] = $('#growls-' + location); }, {
} key: "dismiss",
value: function dismiss(callback) {
var $growl;
$growl = this.$growl();
this.unbind($growl);
return this.animate($growl, this.settings.namespace + "-outgoing", 'in', callback);
}
}, {
key: "remove",
value: function remove(callback) {
this.$growl().remove();
return typeof callback === "function" ? callback() : void 0;
}
}, {
key: "animate",
value: function animate($element, name) {
var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in';
var callback = arguments[3];
$growl() { var transition;
return this.$_growl != null ? this.$_growl : this.$_growl = $(this.html()); transition = Animation.transition($element);
} $element[direction === 'in' ? 'removeClass' : 'addClass'](name);
$element.offset().position;
$element[direction === 'in' ? 'addClass' : 'removeClass'](name);
if (callback == null) {
return;
}
if (transition != null) {
$element.one(transition, callback);
} else {
callback();
}
}
}, {
key: "$growls",
value: function $growls(location) {
var base;
if (this.$_growls == null) {
this.$_growls = [];
}
return (base = this.$_growls)[location] != null ? base[location] : base[location] = $('#growls-' + location);
}
}, {
key: "$growl",
value: function $growl() {
return this.$_growl != null ? this.$_growl : this.$_growl = $(this.html());
}
}, {
key: "html",
value: function html() {
return this.container(this.content());
}
}, {
key: "content",
value: function content() {
return "<div class='" + this.settings.namespace + "-close'>" + this.settings.close + "</div>\n<div class='" + this.settings.namespace + "-title'>" + this.settings.title + "</div>\n<div class='" + this.settings.namespace + "-message'>" + this.settings.message + "</div>";
}
}, {
key: "container",
value: function container(content) {
return "<div class='" + this.settings.namespace + " " + this.settings.namespace + "-" + this.settings.style + " " + this.settings.namespace + "-" + this.settings.size + "'>\n " + content + "\n</div>";
}
}]);
html() { return Growl;
return this.container(this.content()); }();
}
content() { ;
return `<div class='${this.settings.namespace}-close'>${this.settings.close}</div>\n<div class='${this.settings.namespace}-title'>${this.settings.title}</div>\n<div class='${this.settings.namespace}-message'>${this.settings.message}</div>`;
}
container(content) {
return `<div class='${this.settings.namespace} ${this.settings.namespace}-${this.settings.style} ${this.settings.namespace}-${this.settings.size}'>\n ${content}\n</div>`;
}
};
Growl.settings = { Growl.settings = {
namespace: 'growl', namespace: 'growl',
@@ -212,16 +266,19 @@
}; };
return Growl; return Growl;
}();
})();
this.Growl = Growl; this.Growl = Growl;
$.growl = function(options = {}) { $.growl = function () {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return Growl.growl(options); return Growl.growl(options);
}; };
$.growl.error = function(options = {}) { $.growl.error = function () {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var settings; var settings;
settings = { settings = {
title: "Error!", title: "Error!",
@@ -230,7 +287,9 @@
return $.growl($.extend(settings, options)); return $.growl($.extend(settings, options));
}; };
$.growl.notice = function(options = {}) { $.growl.notice = function () {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var settings; var settings;
settings = { settings = {
title: "Notice!", title: "Notice!",
@@ -239,7 +298,9 @@
return $.growl($.extend(settings, options)); return $.growl($.extend(settings, options));
}; };
$.growl.warning = function(options = {}) { $.growl.warning = function () {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var settings; var settings;
settings = { settings = {
title: "Warning!", title: "Warning!",
@@ -247,5 +308,4 @@
}; };
return $.growl($.extend(settings, options)); return $.growl($.extend(settings, options));
}; };
}).call(this);
}).call(this);
+5 -5
View File
@@ -3,15 +3,15 @@
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago"). * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
* *
* @name timeago * @name timeago
* @version 1.6.1 * @version 1.6.7
* @requires jQuery v1.2.3+ * @requires jQuery >=1.5.0 <4.0
* @author Ryan McGeary * @author Ryan McGeary
* @license MIT License - http://www.opensource.org/licenses/mit-license.php * @license MIT License - http://www.opensource.org/licenses/mit-license.php
* *
* For usage and examples, visit: * For usage and examples, visit:
* http://timeago.yarp.com/ * http://timeago.yarp.com/
* *
* Copyright (c) 2008-2017, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) * Copyright (c) 2008-2019, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
*/ */
(function (factory) { (function (factory) {
@@ -42,7 +42,7 @@
settings: { settings: {
refreshMillis: 60000, refreshMillis: 60000,
allowPast: true, allowPast: true,
allowFuture: true, allowFuture: false,
localeTitle: false, localeTitle: false,
cutoff: 0, cutoff: 0,
autoDispose: true, autoDispose: true,
@@ -51,7 +51,7 @@
prefixFromNow: null, prefixFromNow: null,
suffixAgo: "ago", suffixAgo: "ago",
suffixFromNow: "from now", suffixFromNow: "from now",
inPast: 'any moment now', inPast: "any moment now",
seconds: "less than a minute", seconds: "less than a minute",
minute: "about a minute", minute: "about a minute",
minutes: "%d minutes", minutes: "%d minutes",
Binary file not shown.
+74 -75
View File
@@ -17,7 +17,7 @@ msgstr "Üzgünüz, ama görmek istediğiniz sayfa mevcut değil."
#: admin/dashboard.php:22 admin/dashboard.php:26 template.php:115 #: admin/dashboard.php:22 admin/dashboard.php:26 template.php:115
msgid "Dashboard" msgid "Dashboard"
msgstr "Panel" msgstr "Başlangıç"
#: admin/dashboard.php:27 #: admin/dashboard.php:27
msgid "Welcome" msgid "Welcome"
@@ -25,7 +25,7 @@ msgstr "Hoşgeldiniz"
#: admin/dashboard.php:39 #: admin/dashboard.php:39
msgid "New incident" msgid "New incident"
msgstr "Yeni durum" msgstr "Yeni durum güncellemesi"
#: admin/dashboard.php:72 install.php:48 install.php:163 #: admin/dashboard.php:72 install.php:48 install.php:163
msgid "Title" msgid "Title"
@@ -37,19 +37,19 @@ msgstr "Zaman"
#: admin/dashboard.php:77 #: admin/dashboard.php:77
msgid "Here goes your text..." msgid "Here goes your text..."
msgstr "Buraya yazınız gelecek..." msgstr "Yazdığınız yazı burada görünecek"
#: admin/dashboard.php:80 classes/incident.php:183 #: admin/dashboard.php:80 classes/incident.php:183
msgid "Posted by" msgid "Posted by"
msgstr "Tarafından" msgstr "Tarafından Paylaşıldı"
#: admin/dashboard.php:80 classes/incident.php:185 #: admin/dashboard.php:80 classes/incident.php:185
msgid "Ending" msgid "Ending"
msgstr "Sonlanma" msgstr "Bitiş"
#: admin/dashboard.php:80 #: admin/dashboard.php:80
msgid "End time" msgid "End time"
msgstr "Sonlanma zamanı" msgstr "Bitiş Saati"
#: admin/dashboard.php:99 admin/new-user.php:53 #: admin/dashboard.php:99 admin/new-user.php:53
msgid "Submit" msgid "Submit"
@@ -67,24 +67,24 @@ msgstr "Lütfen devam etmek için giriş yapınız."
#: admin/lost-password.php:48 admin/new-user.php:24 admin/settings.php:72 #: admin/lost-password.php:48 admin/new-user.php:24 admin/settings.php:72
#: classes/user.php:120 classes/user.php:404 install.php:169 install.php:210 #: classes/user.php:120 classes/user.php:404 install.php:169 install.php:210
msgid "Email" msgid "Email"
msgstr "E-posta" msgstr "Elektronik Posta"
#: admin/login-form.php:19 admin/login-form.php:20 admin/new-user.php:27 #: admin/login-form.php:19 admin/login-form.php:20 admin/new-user.php:27
#: classes/user.php:123 classes/user.php:417 install.php:182 install.php:213 #: classes/user.php:123 classes/user.php:417 install.php:182 install.php:213
msgid "Password" msgid "Password"
msgstr "Parola" msgstr "Şifre"
#: admin/login-form.php:22 #: admin/login-form.php:22
msgid "Forgotten password?" msgid "Forgotten password?"
msgstr "Parolanızı mı unuttunuz?" msgstr "Unutulan Şifreyi Geri Getirme"
#: admin/login-form.php:23 #: admin/login-form.php:23
msgid "Remember me" msgid "Remember me"
msgstr "Beni hatırla" msgstr "Giriş Bilgilerini Hatırla"
#: admin/lost-password.php:2 admin/lost-password.php:5 #: admin/lost-password.php:2 admin/lost-password.php:5
msgid "Lost password" msgid "Lost password"
msgstr "Kayıp Parola" msgstr "Unutulan Şifre"
#: admin/lost-password.php:16 #: admin/lost-password.php:16
msgid "Go back" msgid "Go back"
@@ -104,7 +104,7 @@ msgstr "Başa dön"
#: admin/lost-password.php:34 #: admin/lost-password.php:34
msgid "Email with password reset link has been sent!" msgid "Email with password reset link has been sent!"
msgstr "Parola sıfırlama linkini içeren e-posta gönderildi!" msgstr "Şifre sıfırlama linkini içeren e-posta gönderildi!"
#: admin/lost-password.php:50 #: admin/lost-password.php:50
msgid "Submit request" msgid "Submit request"
@@ -117,16 +117,16 @@ msgstr "%s (%s) için parolayı sıfırla"
#: admin/lost-password.php:60 admin/lost-password.php:61 classes/user.php:421 #: admin/lost-password.php:60 admin/lost-password.php:61 classes/user.php:421
#: classes/user.php:422 #: classes/user.php:422
msgid "New password" msgid "New password"
msgstr "Yeni parola" msgstr "Yeni şifre"
#: admin/lost-password.php:62 admin/lost-password.php:63 classes/user.php:423 #: admin/lost-password.php:62 admin/lost-password.php:63 classes/user.php:423
#: classes/user.php:424 #: classes/user.php:424
msgid "Repeat password" msgid "Repeat password"
msgstr "Parolayı tekrarla" msgstr "Şifreyi tekrarla"
#: admin/lost-password.php:64 classes/user.php:425 #: admin/lost-password.php:64 classes/user.php:425
msgid "Change password" msgid "Change password"
msgstr "Parolayı değiştir" msgstr "Şifreyi değiştir"
#: admin/new-user.php:7 #: admin/new-user.php:7
msgid "New user" msgid "New user"
@@ -168,7 +168,7 @@ msgstr "Servis ekle"
#: admin/settings.php:38 admin/settings.php:72 #: admin/settings.php:38 admin/settings.php:72
msgid "ID" msgid "ID"
msgstr "ID" msgstr "Kimlik Tanımlayıcı"
#: admin/settings.php:42 #: admin/settings.php:42
msgid "Delete" msgid "Delete"
@@ -196,7 +196,7 @@ msgstr "Kullanıcı ayarları"
#: classes/constellation.php:36 template.php:4 #: classes/constellation.php:36 template.php:4
msgid "Planned maintenance" msgid "Planned maintenance"
msgstr "Planlı bakım" msgstr "Önceden Planlanmış Bakım Çalışması"
#: classes/constellation.php:42 #: classes/constellation.php:42
msgid "Back" msgid "Back"
@@ -204,15 +204,15 @@ msgstr "Geri"
#: classes/constellation.php:44 #: classes/constellation.php:44
msgid "Past incidents" msgid "Past incidents"
msgstr "Geçmiş durumlar" msgstr "Geçmiş durum güncellemeleri"
#: classes/constellation.php:48 #: classes/constellation.php:48
msgid "No incidents" msgid "No incidents"
msgstr "Durum yok" msgstr "Ufukta herhangi bir olay yok."
#: classes/constellation.php:61 #: classes/constellation.php:61
msgid "Load more" msgid "Load more"
msgstr "Daha fazla" msgstr "Daha fazla Yükle"
#: classes/constellation.php:101 #: classes/constellation.php:101
msgid "No services" msgid "No services"
@@ -224,7 +224,7 @@ msgstr "Lütfen başlık girin"
#: classes/incident.php:90 #: classes/incident.php:90
msgid "Title too long! Character limit is 50" msgid "Title too long! Character limit is 50"
msgstr "Başlık çok uzun! Limit 50 karakterdir" msgstr "Başlık çok uzun! Lütfen karakter limiti olan 50'yi geçmeyin"
#: classes/incident.php:96 #: classes/incident.php:96
msgid "Please enter text" msgid "Please enter text"
@@ -232,7 +232,7 @@ msgstr "Lütfen metin girin"
#: classes/incident.php:102 #: classes/incident.php:102
msgid "Please set start and end time! Use ISO 8601 format." msgid "Please set start and end time! Use ISO 8601 format."
msgstr "Lütfen başlama ve sonlanma zamanı girin! ISO 8601 formatı kullanın." msgstr "Lütfen başlangıç ve bitiş zamanı girin! ISO 8601 formatı kullanın."
#: classes/incident.php:107 #: classes/incident.php:107
msgid "Please select at least one service" msgid "Please select at least one service"
@@ -240,23 +240,23 @@ msgstr "Lütfen en az 1 servis seçin"
#: classes/incident.php:127 #: classes/incident.php:127
msgid "Start date format is not recognized. Please use ISO 8601 format." msgid "Start date format is not recognized. Please use ISO 8601 format."
msgstr "Başlama tarihi formatı uyumsuz. Lütfen ISO 8601 formatı kullanın." msgstr "Başlangıç tarihi formatı ISO 8601 standartına uygun değil. Lütfen ISO 8601 formatı kullanın."
#: classes/incident.php:133 #: classes/incident.php:133
msgid "End date format is not recognized. Please use ISO 8601 format." msgid "End date format is not recognized. Please use ISO 8601 format."
msgstr "Sonlanma tarihi formatı uyumsuz. Lütfen ISO 8601 formatı kullanın." msgstr "Bitiş tarihi formatı ISO 8601 standartına uygun değil. Lütfen ISO 8601 formatı kullanın."
#: classes/incident.php:185 #: classes/incident.php:185
msgid "Ended" msgid "Ended"
msgstr "Sonlandı" msgstr "Bitti."
#: classes/service.php:63 #: classes/service.php:63
msgid "Service name is too long! Character limit is 50" msgid "Service name is too long! Character limit is 50"
msgstr "Servis adı çok uzun! Limit 50 karakterdir." msgstr "Servis adı çok uzun! Lütfen karakter limiti olan 50'yi geçmeyin."
#: classes/service.php:66 #: classes/service.php:66
msgid "Please enter name!" msgid "Please enter name!"
msgstr "Lütfen isim girin!" msgstr "Lütfen bir isim girin!"
#: classes/service.php:81 classes/service.php:123 classes/user.php:97 #: classes/service.php:81 classes/service.php:123 classes/user.php:97
#: classes/user.php:199 #: classes/user.php:199
@@ -265,7 +265,7 @@ msgstr "Bunu yapmaya yetkiniz yok!"
#: classes/user.php:164 #: classes/user.php:164
msgid "Please mind the following character limits: " msgid "Please mind the following character limits: "
msgstr "Lütfen dikkat, kalan karakter limiti: " msgstr "Kalan karakter limiti: "
#: classes/user.php:185 #: classes/user.php:185
msgid "User account created" msgid "User account created"
@@ -273,7 +273,7 @@ msgstr "Kullanıcı hesabı oluşturuldu"
#: classes/user.php:186 #: classes/user.php:186
msgid "Hi %s!<br>Your account has been created. You can login with your email address at <a href=\"%s\">%s</a> with password %s - please change it as soon as possible." msgid "Hi %s!<br>Your account has been created. You can login with your email address at <a href=\"%s\">%s</a> with password %s - please change it as soon as possible."
msgstr "Merhaba %s!<br>Hesabınız oluşturuldu. <a href=\"%s\">%s</a> adresinden e-posta adresiniz ve %s parolanızla giriş yapabilirsiniz - lütfen en yakın zamanda parolanızı değiştirin." msgstr "Merhaba %s!<br>Hesabınız oluşturuldu. <a href=\"%s\">%s</a> adresinden e-posta adresiniz ve %s şifrenizle giriş yapabilirsiniz - lütfen en yakın zamanda şifrenizi değiştirin."
#: classes/user.php:180 #: classes/user.php:180
msgid "Username or email already used" msgid "Username or email already used"
@@ -285,11 +285,11 @@ msgstr "Hesabınız etkin değil. Lütfen yöneticiyle iletişime geçin."
#: classes/user.php:233 classes/user.php:256 #: classes/user.php:233 classes/user.php:256
msgid "Wrong email or password" msgid "Wrong email or password"
msgstr "Hatalı e-posta veya parola" msgstr "Şifre veya elektronik posta adresi hatalı."
#: classes/user.php:299 #: classes/user.php:299
msgid "Invalid token detected, please login again!" msgid "Invalid token detected, please login again!"
msgstr "Geçersiz anahtar tespit edildi, lütfen tekrar giriş yapın!" msgstr "Oturum anahtarı geçersiz, lütfen tekrar giriş yapın!"
#: classes/user.php:314 #: classes/user.php:314
msgid "Profile picture" msgid "Profile picture"
@@ -301,35 +301,34 @@ msgstr "Rol değiştir"
#: classes/user.php:394 #: classes/user.php:394
msgid "Change email" msgid "Change email"
msgstr "Parola değiştir" msgstr "E-Posta adresini güncelle"
#: classes/user.php:419 classes/user.php:420 #: classes/user.php:419 classes/user.php:420
msgid "Old password" msgid "Old password"
msgstr "Eski parola" msgstr "Eski Şifre"
#: classes/user.php:526 #: classes/user.php:526
msgid "Passwords do not match!" msgid "Passwords do not match!"
msgstr "Parolalar eşleşmiyor!" msgstr "Şifreler eşleşmiyor!"
#: classes/user.php:534 #: classes/user.php:534
msgid "Cannot change password of other users!" msgid "Cannot change password of other users!"
msgstr "Diğer kullanıcıların parolası değiştirilemez!" msgstr "Sadece kendi şifrenizi değiştirebilirsiniz."
#: classes/user.php:567 #: classes/user.php:567
msgid "Wrong password!" msgid "Wrong password!"
msgstr "Parola yanlış!" msgstr "Yanlış şifre!"
#: classes/user.php:595 classes/user.php:695 #: classes/user.php:595 classes/user.php:695
msgid "Invalid token detected, please retry your request from start!" msgid "Invalid token detected, please retry your request from start!"
msgstr "Geçersiz anahtar tespit edildi, lütfen isteğinizi baştan deneyin!" msgstr "Oturum anahtarı geçersiz, lütfen isteğinizi tekrar deneyin"
#: classes/user.php:623 #: classes/user.php:623
msgid "Reset password" msgid "Reset password"
msgstr "Parola Sıfırla" msgstr "Şifre Sıfırlama"
#: classes/user.php:659 #: classes/user.php:659
msgid "Email change" msgid "Email change"
msgstr "E-posta değiştir" msgstr "E-Posta adresini değiştir"
#: classes/incident.php:54 classes/user.php:736 #: classes/incident.php:54 classes/user.php:736
msgid "You don't have permission to do that!" msgid "You don't have permission to do that!"
@@ -337,47 +336,47 @@ msgstr "Bunu yapmaya yetkiniz yok!"
#: template.php:4 #: template.php:4
msgid "Major outage" msgid "Major outage"
msgstr "Önemli aksaklık" msgstr "Kapsamlı Arıza"
#: template.php:4 #: template.php:4
msgid "Minor outage" msgid "Minor outage"
msgstr "Küçük aksaklık" msgstr "Ufak Arıza"
#: template.php:4 #: template.php:4
msgid "Operational" msgid "Operational"
msgstr "Çalışıyor" msgstr "Çalışır Durumda"
#: template.php:7 #: template.php:7
msgid "Some systems are experiencing major outages" msgid "Some systems are experiencing major outages"
msgstr "Bazı sistemler ciddi aksaklıklar yaşıyor" msgstr "Bazı sistemlerde ciddi arızalar var."
#: template.php:7 #: template.php:7
msgid "Some systems are experiencing minor outages" msgid "Some systems are experiencing minor outages"
msgstr "Bazı sistemler küçük aksaklıklar yaşıyor" msgstr "Bazı sistemlerde ufak arızalar var."
#: template.php:7 #: template.php:7
msgid "Some systems are under maintenance" msgid "Some systems are under maintenance"
msgstr "Bazı sistemler bakımda" msgstr "Bazı sistemlerde bakım çalışması yürütülüyor."
#: template.php:8 #: template.php:8
msgid "Our systems are experiencing major outages." msgid "Our systems are experiencing major outages."
msgstr "Sistemlerimiz ciddi aksaklıklar yaşıyor" msgstr "Sistemlerimizde ciddi arızalar yaşanıyor."
#: template.php:8 #: template.php:8
msgid "Our systems are experiencing minor outages" msgid "Our systems are experiencing minor outages"
msgstr "Sistemlerimiz küçük aksaklıklar yaşıyor" msgstr "Sistemlerimizde küçük arızalar var."
#: template.php:8 #: template.php:8
msgid "Our systems are under maintenance" msgid "Our systems are under maintenance"
msgstr "Sistemlerimiz bakımda" msgstr "Sistemlerimizde bakım çalışması yürütülüyor."
#: template.php:8 #: template.php:8
msgid "All systems operational" msgid "All systems operational"
msgstr "Tüm sistemler çalışıyor" msgstr "Tüm sistemler çalışır halde."
#: template.php:9 #: template.php:9
msgid "Super admin" msgid "Super admin"
msgstr "Süper Yönetici" msgstr "Sistem Yöneticisi"
#: template.php:9 #: template.php:9
msgid "Admin" msgid "Admin"
@@ -385,11 +384,11 @@ msgstr "Yönetici"
#: template.php:53 #: template.php:53
msgid "Service Status" msgid "Service Status"
msgstr "Servis Durumu" msgstr "Sistem Durumu"
#: template.php:106 #: template.php:106
msgid "Toggle navigation" msgid "Toggle navigation"
msgstr "Menü Aç / Kapat" msgstr "Menüyi Görüntüle / Gizle"
#: template.php:116 #: template.php:116
msgid "User (%s)" msgid "User (%s)"
@@ -401,7 +400,7 @@ msgstr "Çıkış"
#: index.php:27 #: index.php:27
msgid "Current status" msgid "Current status"
msgstr "Şu anki durum" msgstr "Güncel Durum"
#: install.php:4 #: install.php:4
msgid "Status page" msgid "Status page"
@@ -422,11 +421,11 @@ msgstr "Bağlantı başarısız oldu: %s"
#: install.php:31 #: install.php:31
msgid "Please set valid url!" msgid "Please set valid url!"
msgstr "Lütfen geçerli URL girin!" msgstr "Lütfen geçerli bir URL girin!"
#: install.php:98 #: install.php:98
msgid "Error while creating database. Please check permission for your account or MYSQL version.<br>Error: %s" msgid "Error while creating database. Please check permission for your account or MYSQL version.<br>Error: %s"
msgstr "Veritabanı oluştururken hata oluştu. Lütfen yetkinizi veya MYSQL sürümünüzü kontrol edin.<br>Hata: %s" msgstr "Veritabanı oluştururken hata oluştu. Lütfen hesabınızın veritabanı yetkilerini ve MYSQL sürümünüzü kontrol edin.<br>Hata: %s"
#: install.php:154 #: install.php:154
msgid "Website details" msgid "Website details"
@@ -438,7 +437,7 @@ msgstr "URL"
#: install.php:166 #: install.php:166
msgid "Also an email address for mailer would be nice :)" msgid "Also an email address for mailer would be nice :)"
msgstr "Ayrıca e-postalar için bir e-posta adresi güzel olur :)" msgstr "Ayrıca e-postalar için bir e-posta adresi güzel olabilir :)"
#: install.php:173 #: install.php:173
msgid "Database connection" msgid "Database connection"
@@ -446,7 +445,7 @@ msgstr "Veritabanı bağlantısı"
#: install.php:174 #: install.php:174
msgid "We need database connection to be able to create tables. Please check that your account has the permission needed to do that." msgid "We need database connection to be able to create tables. Please check that your account has the permission needed to do that."
msgstr "Tabloları oluşturabilmek için veritabanı bağlantısına ihtiyaç var. Lütfen hesabınızın bunu yapmaya yetkili olduğunu kontrol edin." msgstr "Tabloları oluşturabilmek için veritabanı bağlantısına ihtiyacımız var. Lütfen hesabınızın bunu yapmaya yetkili olup olmadığını kontrol edin."
#: install.php:177 #: install.php:177
msgid "Server" msgid "Server"
@@ -458,7 +457,7 @@ msgstr "Veritabanı"
#: install.php:203 #: install.php:203
msgid "And finally, we need info to create a new user. You don't have to provide it, but then... No status page admin..." msgid "And finally, we need info to create a new user. You don't have to provide it, but then... No status page admin..."
msgstr "Ve nihayet, yeni bir kullanıcı oluşturmak için bilgiye ihtiyacımız var. Bunu sağlamak zorunda değilsiniz, ancak yapmazsanız... Durum sayfasının yöneticisi olmaz..." msgstr "Ve nihayet, yeni bir kullanıcı oluşturmak için bazı bilgilere ihtiyacımız var. Bunu sağlamak zorunda değilsiniz, ancak yapmazsanız... Durum sayfasının yöneticisi olmaz..."
#: install.php:216 #: install.php:216
msgid "Run install!" msgid "Run install!"
@@ -470,15 +469,15 @@ msgstr "Seviye"
#: classes/user.php:624 #: classes/user.php:624
msgid "Hi %s!<br>Below you will find link to change your password. The link is valid for 24hrs. If you didn't request this, feel free to ignore it. <br><br><a href=\"%s\">RESET PASSWORD</a><br><br>If the link doesn't work, copy &amp; paste it into your browser: <br>%s" msgid "Hi %s!<br>Below you will find link to change your password. The link is valid for 24hrs. If you didn't request this, feel free to ignore it. <br><br><a href=\"%s\">RESET PASSWORD</a><br><br>If the link doesn't work, copy &amp; paste it into your browser: <br>%s"
msgstr "Merhaba %s!<br>Parolanızı sıfırlamanız için gereken link aşağıdadır. Link 24 saat boyunca geçerlidir. Eğer bunu siz istemediyseniz görmezden gelebilirsiniz. <br><br><a href=\"%s\">PAROLAYI SIFIRLA</a><br><br>Link çalışmazsa, linki kopyalayıp tarayıcınıza yapıştırabilirsiniz: <br>%s" msgstr "Merhaba %s!<br>Şifrenizi sıfırlamanız için gereken link aşağıda. Link 24 saat boyunca geçerlidir. Eğer bunu siz talep etmediyseniz görmezden gelebilirsiniz. <br><br><a href=\"%s\">ŞİFRENİZİ SIFIRLAYIN</a><br><br>Link çalışmazsa, linki kopyalayıp tarayıcınıza yapıştırabilirsiniz: <br>%s"
#: classes/user.php:660 #: classes/user.php:660
msgid "Hi %s!<br>Below you will find link to change your email. The link is valid for 24hrs. If you didn't request this, feel free to ignore it. <br><br><a href=\"%s\">CHANGE EMAIL</a><br><br>If the link doesn't work, copy &amp; paste it into your browser: <br>%s" msgid "Hi %s!<br>Below you will find link to change your email. The link is valid for 24hrs. If you didn't request this, feel free to ignore it. <br><br><a href=\"%s\">CHANGE EMAIL</a><br><br>If the link doesn't work, copy &amp; paste it into your browser: <br>%s"
msgstr "Merhaba %s!<br>E-posta adresinizi değiştirmek için gereken link aşağıdadır. Link 24 saat boyunca geçerlidir. Eğer bunu siz istemediyseniz görmezden gelebilirsiniz. <br><br><a href=\"%s\">E-POSTA ADRESİNİ DEĞİŞTİR</a><br><br>Link çalışmazsa, linki kopyalayıp tarayıcınıza yapıştırabilirsiniz: <br>%s" msgstr "Merhaba %s!<br>E-posta adresinizi güncellemek için link aşağıda. Link 24 saat boyunca geçerlidir. Eğer bunu siz talep etmediyseniz görmezden gelebilirsiniz. <br><br><a href=\"%s\">E-POSTA ADRESİNİ DEĞİŞTİRİN</a><br><br>Link çalışmazsa, linki kopyalayıp tarayıcınıza yapıştırabilirsiniz: <br>%s"
#: template.php:9 #: template.php:9
msgid "Editor" msgid "Editor"
msgstr "Editör" msgstr "Düzenleyici"
#: install.php:36 #: install.php:36
msgid "Server name" msgid "Server name"
@@ -486,11 +485,11 @@ msgstr "Sunucu adı"
#: install.php:44 #: install.php:44
msgid "Mailer name" msgid "Mailer name"
msgstr "E-posta gönderici adı" msgstr "E-Posta Sistemi için Gönderici Adı"
#: install.php:52 #: install.php:52
msgid "Mailer email" msgid "Mailer email"
msgstr "Gönderici e-posta adresi" msgstr "E-Posta Sistemi için Gönderici Adresi"
#: install.php:56 #: install.php:56
msgid "Database server" msgid "Database server"
@@ -506,15 +505,15 @@ msgstr "Veritabanı kullanıcı adı"
#: install.php:69 #: install.php:69
msgid "Database password" msgid "Database password"
msgstr "Veritabanı parolası" msgstr "Veritabanı şifresi"
#: template.php:147 #: template.php:147
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Açılır menü arasında geçiş yap" msgstr "Açılır Kapanır Menü"
#: template.php:156 #: template.php:156
msgid "Help with translation!" msgid "Help with translation!"
msgstr "Çeviriye yardım et!" msgstr "Çeviren Yiğit Kerem Oktay"
#: classes/user.php:439 #: classes/user.php:439
msgid "Deactivate user" msgid "Deactivate user"
@@ -530,11 +529,11 @@ msgstr "Lütfen girin"
#: install.php:150 #: install.php:150
msgid "We will ask you some basic questions about your website. Most of the settings can be later edited in the config.php file." msgid "We will ask you some basic questions about your website. Most of the settings can be later edited in the config.php file."
msgstr "Siteniz hakkında siz birkaç basit soru soracağız. Ayarların çoğu daha sonra config.php dosyasından düzenlenebilir." msgstr "Siteniz hakkında siz birkaç basit soru soracağız. Ayarların çoğu kurulumdan sonra da config.php dosyasından düzenlenebilir."
#: install.php:155 #: install.php:155
msgid "We need a name for your status page (shown behind page title after the dash) and a url of your server status installation (i.e. <a href='#'>https://example.com/status</a> - without the trailing slash), so we can mail users link for forgotten password etc..." msgid "We need a name for your status page (shown behind page title after the dash) and a url of your server status installation (i.e. <a href='#'>https://example.com/status</a> - without the trailing slash), so we can mail users link for forgotten password etc..."
msgstr "Durum sayfası için bir isime (sayfa başlığının altında görünür) ve sunucu durumu kurulumunuzun web adresine ihtiyacımız var. (örn: <a href='#'>https://example.com/status</a> - adresin sonuna yatay çizgi koymayın), parolamı unuttum vb mailler için." msgstr "Durum sayfası için bir başlığa ve kurulumunuzun web adresine ihtiyacımız var. (örn: <a href='theskyfallen.com'>https://status.theskyfallen.com</a> (adresin sonuna yatay çizgi koymayın)"
#: install.php:161 #: install.php:161
msgid "A title that you want to be shown on the top of the page." msgid "A title that you want to be shown on the top of the page."
@@ -546,7 +545,7 @@ msgstr "Servis mevcut değil!"
#: classes/user.php:220 #: classes/user.php:220
msgid "Please fill in your email and password!" msgid "Please fill in your email and password!"
msgstr "Lütfen eposta ve parola giriniz!" msgstr "Lütfen E-Posta ve şifrenizi girin!"
#: classes/user.php:336 #: classes/user.php:336
msgid "Change name" msgid "Change name"
@@ -562,11 +561,11 @@ msgstr "Bu kullanıcı adı alınmış"
#: classes/user.php:470 #: classes/user.php:470
msgid "Cannot change username of other users!" msgid "Cannot change username of other users!"
msgstr "Diğer kullanıcıların kullanıcı adı değiştirilemez" msgstr "Sadece kendi kullanıcı adınızı değiştirebilirsiniz."
#: classes/user.php:504 #: classes/user.php:504
msgid "Cannot change names of other users!" msgid "Cannot change names of other users!"
msgstr "Diğer kullanıcıların adları değiştirilemez" msgstr "Sadece kendi adınızı güncelleyebilirsiniz."
#: classes/user.php:667 #: classes/user.php:667
msgid "Confirmation email sent!" msgid "Confirmation email sent!"
@@ -574,7 +573,7 @@ msgstr "Doğrulama e-postası gönderildi!"
#: install.php:186 policy.php:6 #: install.php:186 policy.php:6
msgid "Privacy Policy" msgid "Privacy Policy"
msgstr "Gizlilik sözleşmesi" msgstr "Gizlilik Politikasını Görüntüleyin"
#: install.php:190 #: install.php:190
msgid "Company name" msgid "Company name"
@@ -647,7 +646,7 @@ msgid "This site uses cookies small text files that are placed on your machi
"\tAs a rule, cookies will make your browsing experience better. However, you may prefer to disable cookies on this site and on others. \n" "\tAs a rule, cookies will make your browsing experience better. However, you may prefer to disable cookies on this site and on others. \n"
"\tThe most effective way to do this is to disable cookies in your browser. We suggest consulting the Help section of your browser \n" "\tThe most effective way to do this is to disable cookies in your browser. We suggest consulting the Help section of your browser \n"
"\tor taking a look at the About Cookies website which offers guidance for all modern browsers" "\tor taking a look at the About Cookies website which offers guidance for all modern browsers"
msgstr "Bu site, daha iyi bir kullanıcı deneyimi sunmasına yardımcı olmak için bilgisayarınıza yerleştirilen küçük metin dosyaları olan tanımlama bilgilerini kullanır.\n" msgstr "Bu site, daha iyi bir kullanıcı deneyimi sunulmasına yardımcı olmak için bilgisayarınıza yerleştirilen küçük metin dosyalarına benzetebileceğimiz çerezlerikullanır.\n"
"\n" "\n"
"Genel olarak, çerezler kullanıcı tercihlerini saklamak, alışveriş sepeti gibi şeyler için bilgi depolamak ve Google Analytics gibi üçüncü taraf uygulamalara anonimleştirilmiş izleme verileri sağlamak için kullanılır.\n" "Genel olarak, çerezler kullanıcı tercihlerini saklamak, alışveriş sepeti gibi şeyler için bilgi depolamak ve Google Analytics gibi üçüncü taraf uygulamalara anonimleştirilmiş izleme verileri sağlamak için kullanılır.\n"
"\n" "\n"
@@ -657,7 +656,7 @@ msgstr "Bu site, daha iyi bir kullanıcı deneyimi sunmasına yardımcı olmak i
#: install.php:187 #: install.php:187
msgid "Since you are collecting personal information, the GDPR needs you to have a privacy policy. Enter the details below." msgid "Since you are collecting personal information, the GDPR needs you to have a privacy policy. Enter the details below."
msgstr "Kişisel bilgileri topladığınızdan beri, GSYİH'nın bir gizlilik politikasına sahip olmanız gerekir. Aşağıdaki bilgileri girin." msgstr "Kişisel bilgileri topladığınızdan beri, KVKK'ya uygun bir gizlilik politikasına sahip olmanız gerekir. Aşağıdaki bilgileri girin."
#: install.php:198 #: install.php:198
msgid "Some info about yourself" msgid "Some info about yourself"
+11 -9
View File
@@ -1,4 +1,4 @@
<?php <?php
//This should later be translatable, maybe find a better solution? //This should later be translatable, maybe find a better solution?
//This is here for better generation of POT files :) //This is here for better generation of POT files :)
$statuses = array(_("Major outage"), _("Minor outage"), _("Planned maintenance"), _("Operational") ); $statuses = array(_("Major outage"), _("Minor outage"), _("Planned maintenance"), _("Operational") );
@@ -24,6 +24,8 @@ class Template{
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<?php
include_once "head.php"; ?>
<meta charset="utf-8"> <meta charset="utf-8">
<title><?php echo $page_name." - ".NAME ?></title> <title><?php echo $page_name." - ".NAME ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
@@ -55,7 +57,7 @@ class Template{
<div class="navbar navbar-default" role="navigation"> <div class="navbar navbar-default" role="navigation">
<div class="container"> <div class="container">
<div class="navbar-header"> <div class="navbar-header">
<a class="navbar-brand" href="<?php echo WEB_URL;?>"><img src="<?php echo WEB_URL;?>/img/logo_white.png" alt="logo" class="menu-logo" width="50" height="50"></a> <a class="navbar-brand" href="<?php echo WEB_URL;?>"><a class="navbar-brand" href="<?php echo WEB_URL;?>/admin"><img src="<?php if(strlen(CUSTOM_LOGO_URL)>1){ echo CUSTOM_LOGO_URL; } else { echo WEB_URL."/img/logo_white.png"; } ?>" alt="logo" class="menu-logo" style="height:50px;"></a>
</div> </div>
<div class="navbar-left hidden-xs"> <div class="navbar-left hidden-xs">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
@@ -66,7 +68,7 @@ class Template{
</div> </div>
</div> </div>
<div id="wrapper" class="center"> <div id="wrapper" class="center">
<?php <?php
}else{ }else{
global $user; global $user;
?> ?>
@@ -108,7 +110,7 @@ class Template{
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="<?php echo WEB_URL;?>/admin"><img src="<?php echo WEB_URL;?>/img/logo_white.png" alt="logo" class="menu-logo" width="50" height="50"></a> <a class="navbar-brand" href="<?php echo WEB_URL;?>/admin"><img src="<?php if(strlen(CUSTOM_LOGO_URL)>1){ echo CUSTOM_LOGO_URL; } else { echo WEB_URL."/img/logo_white.png"; } ?>" alt="logo" class="menu-logo" width="50" height="50"></a>
</div> </div>
<div class="navbar-collapse collapse navbar-right navbar-admin"> <div class="navbar-collapse collapse navbar-right navbar-admin">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
@@ -121,7 +123,7 @@ class Template{
</div> </div>
</div> </div>
<div id="wrapper" class="center admin"> <div id="wrapper" class="center admin">
<?php <?php
} }
} }
@@ -138,7 +140,7 @@ class Template{
<div id="footerwrap"> <div id="footerwrap">
<div class="container"> <div class="container">
<div class="row centered"> <div class="row centered">
<div class="col-md-4 text-left"><a href="https://github.com/Pryx/server-status/" target="_blank"><i class="fab fa-github" aria-hidden="true"></i>&nbsp;</a>Copyright © <?php echo date("Y");?> Vojtěch Sajdl</div> <div class="col-md-4 text-left"><a href="https://github.com/Pryx/server-status/graphs/contributors" target="_blank">Copyright © <?php echo date("Y");?> Server Status Project Contributors </a><?php if(strlen(COPYRIGHT_TEXT)>1){ echo " and ".COPYRIGHT_TEXT; } ?></div>
<div class="col-md-4 text-center"> <div class="col-md-4 text-center">
<div class="btn-group dropup"> <div class="btn-group dropup">
<button type="button" class="btn btn-primary"><?php echo '<img src="'.WEB_URL.'/locale/'.$_SESSION['locale'].'/flag.png" alt="'.$lang_names[$_SESSION['locale']].'">'.$lang_names[$_SESSION['locale']];?></button> <button type="button" class="btn btn-primary"><?php echo '<img src="'.WEB_URL.'/locale/'.$_SESSION['locale'].'/flag.png" alt="'.$lang_names[$_SESSION['locale']].'">'.$lang_names[$_SESSION['locale']];?></button>
@@ -147,7 +149,7 @@ class Template{
<span class="sr-only"><?php echo _("Toggle Dropdown");?></span> <span class="sr-only"><?php echo _("Toggle Dropdown");?></span>
</button> </button>
<div class="dropdown-menu"> <div class="dropdown-menu">
<?php <?php
foreach ($lang_names as $key => $value) { foreach ($lang_names as $key => $value) {
echo '<a href="?lang='.$key.'"><img src="'.WEB_URL.'/locale/'.$key.'/flag.png" alt="'.$value.'">'.$value.'</a>'; echo '<a href="?lang='.$key.'"><img src="'.WEB_URL.'/locale/'.$key.'/flag.png" alt="'.$value.'">'.$value.'</a>';
} }
@@ -161,7 +163,7 @@ class Template{
</div><!--/row --> </div><!--/row -->
</div><!--/container --> </div><!--/container -->
</div> </div>
<script src="<?php echo WEB_URL;?>/js/vendor/jquery-3.2.1.min.js"></script> <script src="<?php echo WEB_URL;?>/js/vendor/jquery-3.5.1.min.js"></script>
<script src="<?php echo WEB_URL;?>/js/vendor/jquery.timeago.js"></script> <script src="<?php echo WEB_URL;?>/js/vendor/jquery.timeago.js"></script>
<script src="<?php echo WEB_URL;?>/locale/<?php echo $_SESSION['locale'];?>/jquery.timeago.js"></script> <script src="<?php echo WEB_URL;?>/locale/<?php echo $_SESSION['locale'];?>/jquery.timeago.js"></script>
<?php if ($admin){?> <?php if ($admin){?>
@@ -175,4 +177,4 @@ class Template{
</html> </html>
<?php <?php
} }
} }