Browse code

added fonts and made CSS changes for Nextcloud 28

DoubleBastionAdmin authored on 11/01/2024 04:45:38
Showing 50 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,59 @@
1
+======= CHANGELOG =======
2
+
3
+Versions:
4
+
5
+== 1.0.0 - 2022-1-27 ==
6
+* Initial release.
7
+
8
+== 1.0.1 - 2022-3-31 ==
9
+* Changed presentation text.
10
+
11
+== 1.0.2 - 2022-4-11 ==
12
+* Respect custom 'datadirectory'.
13
+* Fixed received/sent faxes list not shown in the right hand pane when clicking the 'Received Faxes/Sent Faxes' button, while using Apache as a web server.
14
+* Fixed error when uploading pdf files, while using Apache as a web server.
15
+
16
+== 1.0.3 - 2022-4-14 ==
17
+* Changed the way the app gets the timezone.
18
+
19
+== 1.0.4 - 2022-4-29 ==
20
+* Specified how usernames containing an @ can be included in the callback URL, on the Settings page.
21
+* Adjusted pdf files paths, so that uploaded pdf files can be previewed when Nextcloud is served on a subdomain or on a subdirectory, by Nginx or by Apache. 
22
+
23
+== 1.0.5 - 2022-5-10 ==
24
+* Changed syntax of SQL queries and of encryption function.
25
+* Modified file paths to match changes in Nextcloud 24.
26
+* Text change on Settings page.
27
+
28
+== 1.0.6 - 2022-9-3 ==
29
+* Solved issue with viewing images picked from Nextcloud.
30
+* Small text changes on navigation pane.
31
+* Minor CSS modifications.
32
+
33
+== 1.0.7 - 2022-9-22 ==
34
+* Changed presentation text and text on Settings page.
35
+
36
+== 1.0.8 - 2022-10-27 ==
37
+* Changed CSS settings to match the modifications introduced in Nextcloud 25.
38
+
39
+== 1.0.9 - 2022-12-3 ==
40
+* Added support for dark themes.
41
+
42
+== 1.1.0 - 2023-3-22 ==
43
+* Fixed error when removing files in the 'temp_files' directory.
44
+* Renounced disabling the buttons 'Received Faxes', 'Sent Faxes', 'Failed Received Faxes' and 'Failed Sent Faxes' after successfull fax sending.
45
+
46
+== 1.1.1 - 2023-5-31 ==
47
+* Made app available for Nextcloud 26.
48
+
49
+== 1.1.2 - 2023-10-30 ==
50
+* Marked the app as compatible with Nextcloud 27.
51
+* Changed app presentation text.
52
+
53
+== 1.1.3 - 2023-11-2 ==
54
+* Changed how the app sends notifications for incoming faxes.
55
+
56
+== 1.1.4 - 2024-1-11 ==
57
+* Added the 'fonts' directory and stored the 'Open Sans' and 'Inter' fonts inside it.
58
+* Made small CSS changes.
59
+* Marked the app as compatible with Nextcloud 28.
0 60
new file mode 100644
... ...
@@ -0,0 +1,79 @@
1
+<?xml version="1.0"?>
2
+<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
3
+      xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
4
+    <id>pax_fax</id>
5
+    <name>Pax Fax</name>
6
+    <summary>A fax sending application</summary>
7
+    <description><![CDATA[
8
+This application allows sending and receiving faxes in Nextcloud. A phaxio.com account and a real fax number acquired from Phaxio are needed. 
9
+Complete instructions on how to configure and use this application are detailed in the 'Admin documentation' linked on this page.
10
+          
11
+### Features:
12
+
13
+* 🚀 Multiple documents can be sent in one fax call (up to 20 separate files with a cumulative size of up to 20 MB).
14
+
15
+* 📠 A fax can be sent to multiple fax numbers at once (up to 15 different fax numbers).
16
+
17
+* 📄 Users can send as fax any document in any of the following formats: pdf, doc, docx, odt, jpeg/jpg, png, tiff/tif, txt, html.
18
+
19
+* 📰 All incoming faxes are received as pdf documents and stored in a Nextcloud folder.
20
+
21
+* 📧 Users receive notifications and (optionally) emails when new faxes arrive.
22
+
23
+* 🔍 All the sent and received faxes are stored in specific Nextcloud folders, so that they can be searched by caller/callee phone number or date.
24
+
25
+* 💻 When they want to send a fax, users can upload files from their computer or choose them directly from Nextcloud.
26
+
27
+* 🔏 Incoming fax requests are checked for authenticity and integrity by verifying Phaxio's signature.
28
+
29
+* 💵 Current Phaxio balance can be always checked by pressing a button on the left panel.
30
+
31
+* 💰 The only ongoing cost is $2 per month for a fax number located in USA or Canada, in a city chosen by the user. No contracts.
32
+
33
+* 💸 Straightforward pricing: $0.07 per sent/received page for faxes to/from USA and Canada and $0.1 per sent/received page for faxes to/from other countries.
34
+
35
+We have no affiliation with Phaxio.
36
+
37
+### Documentation
38
+
39
+* [Admin documentation](https://www.doublebastion.com/install-nextcloud/#install-pax-fax)
40
+
41
+### Donations
42
+
43
+* 🎁 [Donate](https://www.doublebastion.com/donations/)
44
+
45
+    ]]></description>
46
+    <version>1.1.4</version>
47
+    <licence>AGPL</licence>
48
+    <author homepage="https://www.doublebastion.com">Double Bastion LLC</author>
49
+    <namespace>PaxFax</namespace>
50
+	<documentation>
51
+		<admin>https://www.doublebastion.com/install-nextcloud/#install-pax-fax</admin>
52
+	</documentation>
53
+    <category>office</category>
54
+    <category>organization</category>
55
+
56
+    <website>https://www.doublebastion.com/pax-fax/</website>
57
+    <bugs>https://git.doublebastion.com/pax-fax/issues/develop</bugs>
58
+    <repository>https://git.doublebastion.com/pax-fax/develop/</repository>
59
+
60
+    <screenshot>https://git.doublebastion.com/pax-fax/raw/develop/img/pax_fax_screenshot.png</screenshot>
61
+
62
+    <dependencies>
63
+            <nextcloud min-version="26" max-version="28" />
64
+    </dependencies>
65
+
66
+    <navigations>
67
+        <navigation>
68
+            <name>Pax Fax</name>
69
+            <route>pax_fax.page.index</route>
70
+            <order>103</order>
71
+            <icon>pax_fax.svg</icon>
72
+        </navigation>
73
+    </navigations>
74
+
75
+    <settings>
76
+            <personal>OCA\PaxFax\Settings\Personal</personal>
77
+            <personal-section>OCA\PaxFax\Settings\PersonalSection</personal-section>
78
+    </settings>
79
+</info>
0 80
new file mode 100644
... ...
@@ -0,0 +1,155 @@
1
+{
2
+    "hashes": {
3
+        "CHANGELOG.txt": "dadab56bd2035cea37d98953aa84006db496ec458ede296c99a2d89daae4dea9e2bb6a4271971bf14cb537db1772a51226d2d4f8169027826a50536b3f3f2cfe",
4
+        "COPYING.txt": "a0a86214ea153fb07ff35ceec0848dd1703eae22de036a825efc8394e50f65e3044832f3b49cf7e45a39edc470bdf738abc36a3a78ca7df3a6e73c14eaef94a8",
5
+        "Contributors.txt": "36bb17a05cb65b7ce8faf6b601396a2ff9b2e99b159a3eac35f21107f0457fbcee645b53c97aab653eac8433e59ad774b521aaf4f4dfdf8470817e51636d1535",
6
+        "Phaxio\/composer.json": "15a73bed2e5760f4c4dd1fd60abf746cbd245830ba502884261e9a0b6202844a8a37936e60a2761c6cd94a3054ebdf0c791fb866e191797a9f08227c125f5e4c",
7
+        "Phaxio\/composer.lock": "a6366b124ebbd604e11245e4e01f2f3a6d2bb63bccb861bf2e275f7be7d84d3380447cd9b84afd9dd5da0258cdaa01cdbde0f67ca27f2494d60b9304b092d2f9",
8
+        "Phaxio\/vendor\/autoload.php": "4eeb7a390556c23bed27d39fa0e9921347ccd07a8116f373f1d9ec45e6be608ba526392b6392722fd0aca67b14c8365f45773c50d983218df51f2b221d225761",
9
+        "Phaxio\/vendor\/composer\/ClassLoader.php": "2b6fa585122ace1ba816410acbd8372cb75329917aae6363dbad48e396cca581452616e1386a2e445a8fbb0e461b988279103f4f89adf704bce7726f761abf0e",
10
+        "Phaxio\/vendor\/composer\/InstalledVersions.php": "d7273807c70dea77e8708d58a8368ac9e1cd03a952f5cca0202d469a76d13ae84e17152a52b17768e16f54b18a84963959031c32485166a46b425bb4852b8a2a",
11
+        "Phaxio\/vendor\/composer\/LICENSE": "f3bb64009f41a425df5a9bbab53490f0eb9b74fa8d6aaa2f57efb928edc4ffff330260666edeaa04a91fed708c3663371cf01b284f3a08d6698aaef7a23f355a",
12
+        "Phaxio\/vendor\/composer\/autoload_classmap.php": "38cb0fcac43c6563d0320769be34f7020cecc2d172100930fb5f77043fafae1e1d7467bf681996316e41bb5e5d71a159a02f2b88fa5e067a1fa7883f1f734c79",
13
+        "Phaxio\/vendor\/composer\/autoload_namespaces.php": "e94d2ac452dac5c0a46d259cb9c142ce02d424db8ecd680e16eb604636cbe7b1cff5ce75406b8c99d762952343abfde8a29c3611994c77fb15ad3c9a4d3737f8",
14
+        "Phaxio\/vendor\/composer\/autoload_psr4.php": "1d78c03bc79c82476a9b806cba84ce9067f3dd1a2565f5616f6bcdb0c2eae4ccee33e7267f78a636c9e02904253c024cef43ec01d789918294586d2a1b4654fb",
15
+        "Phaxio\/vendor\/composer\/autoload_real.php": "8e0c72be16830e95bdac7c33043d1ad5144a294dbc28d078563274f379d81e957b2edc400382abd517adc74c0d295ecb606701e4240f55a7303686f424f5432c",
16
+        "Phaxio\/vendor\/composer\/autoload_static.php": "c1abaf9518c87901439bbdba91b10c144ab4fa5263fa35bafba3d56143febc7d045fb281f8fea746e82279c74fe4b22e323a6857cd9fc1ec688e70212546845a",
17
+        "Phaxio\/vendor\/composer\/installed.json": "4cb36f28c497f8d506b8570c0894262a37e98c4327737ed67a963b1ecfa561625a10bf7322e9b0fab7e2401182cc6864e529458ac5d421d8658610479c73cb5e",
18
+        "Phaxio\/vendor\/composer\/installed.php": "2dc2f106f98921818677d17f135455d02ad3946f06dbf85cbecbbef387adbc0d4ffaa53b0fa18697130c53977cccb5a745e69ba3e539fc2ace74997430283a7d",
19
+        "Phaxio\/vendor\/composer\/platform_check.php": "03262b35b0226cd690c4e88d4ac19edfa911b51cd3b49589f6a7d19100a566ee3848d5afedafc68f4dbdf0c1580e98be4bb929195e9e23906fc14d542dc921a1",
20
+        "Phaxio\/vendor\/phaxio\/phaxio\/CHANGELOG": "2eff47994cc1ef1ff374ab0e6d63c6504518b2731149c200ed7aa0aa5ea13fef070a7408741426c1c384a298061bc4c53c3dd91ef8eb6c5e4f62894aee1a3206",
21
+        "Phaxio\/vendor\/phaxio\/phaxio\/LICENSE": "a2a7604f0909b0e4b282508198c8e525d239a18995574b54569abd07ba784e872af3757b2a0802e1a8430fcbfe8260eee8f508f3821f29b0fe95ccc7e44874a2",
22
+        "Phaxio\/vendor\/phaxio\/phaxio\/composer.json": "37a15063347f6997ccebacc48942110158f8fd682ac5eb5c58465e3562a9cad346228dec018841d28be3d6afd282f5dce978a22d778f77b75dda05e1cf6a4213",
23
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/autoload.php": "fccd9008107c490da7808c70d27ea04f13ee3de4bde8291a69c3283ebf7b5efc0d0a440aaad0d68ebeadfe37241f924040c977dd0bc93a16b894638211bad1dd",
24
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/cancelFax.php": "590564fdaaef85e7b72b49c31ddc0a5cd9ae70a5c452f1ce4b08f56bec1e19ae9f8c826fe179dd0c68127f96333ddab1faa3d652879e35d27ac5e4b422586c07",
25
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/createPhaxCode.php": "8fd8fe39a97abc99afae8edc9363319bee3ef07841b91f0bc6f738d283a24b2e8e56f109ecd0b4d567e5da694abd4deae14008c1d247dd8690de7ad54e48238e",
26
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/deleteFax.php": "0f14c0147950102848ed065c3ca3f12bb56fad382a35e42f77f0acf67ed491050054bbc43f3ee49a96895d3081156ddbdc7640f3f7d9a0fc7848d13bf4921107",
27
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/downloadFaxDocument.php": "ee26536919405a2e5f4303c69cbaaa66d08eb946143f17dabc8636881b88cb08abdb56812d826424e756efa247dc1c6aeb585ad9f7bfaa21547d0827f4d2e934",
28
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/downloadFaxThumbnail.php": "b581ab76492911decadad4357e6d1cba800394dea1dd0be3ebe925b43b41efc0005ec66707f52ec8a21bcba46f9be0626ff8d08e2686da35e690ebd13302b4db",
29
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/files\/content.pdf": "515cdf6ba8271b7a17bd44e9458e28aa288cd9aee64db2daf721568d0eab1249d47243bfa6b2cf39563e848afa1f246453288682d16ddfd4a0a89c981424dbdc",
30
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/files\/coverPage.html": "8c14d034bd830269ab9df374f6bff8261b4641d121e4c5806c0e923f744e5b0eab82504924e474f04b9218b166edddb5ad1dc42524c64a018e21e9c968f8160a",
31
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/listFaxes.php": "4bd4e16ae654cd39df0f7b405537af034a48c4acee9107dec5fc7f5bb982c2b9cfd6ea030912f0190132664c80fad629bfebb1229d7650200d0ca096a5aabdfe",
32
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/phaxio_config.php.temp": "1efc886fce5ea24e9a650a35c497d45b8bae47bc035c6ce4f58aa2abd78ba46585c0401d8e4cc34614d3521b234d12d539536bc9bfe78a9e980f97f92ff898f9",
33
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/sendContentUrls.php": "f65f864142f8f856d504ddc89f37a570cb3f229563fdeb2a7a56d628c7f4d316c930cd0e4f944cea3c73c0349aba51340f9cf02a174fcdcb7dcf4823ecd4d3c7",
34
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/sendFiles.php": "ae986282c3c75b8e0162bbe95bd08100ce4ec10af67cd536b763e674d9c21a8168948a5f2b1fc3efeb9fd9d9daf46645ffbf179e1e3166ff0060c4ee39edd593",
35
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/sendFilesWithBatching.php": "5e4915fe1fb7fb1c916c776a962aff398ea8c0d3bb753fb0b6edd00ceea8374c8cdc6a528c1e36ee61368d072f8ef549c2ffc62ccff6057088b768d764fe5984",
36
+        "Phaxio\/vendor\/phaxio\/phaxio\/examples\/sendText.php": "914a594bdd09c08727c9f155945060212f6c03ecf920a9ffe3eeed9ed5ff35547e541a3bd18b242ef47ae356f2c1e55f74b8d790ca077950a07881ae926fa46e",
37
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio.php": "e13f967f4b54f99de59d91fe0dbcf8c653a388825fa1f84f76b391a839941586d38d215f63005fe4307a2a3658afaece45088c002de83f962bb1d936476e9b13",
38
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/AbstractResource.php": "48f68360a03312162d9aae7195345ba848216700f9a7d89f08d681d500d27af715af7d569aaab23b2426867519244d2cbec50fa3db7c8eee897bfd9e43aa30a8",
39
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/AbstractResourceCollection.php": "0365a3e8c6194b51633199d9123aa0789e2279f5b29455c1ae5feb0c01a7731d053ef5252d91f6aa62ac1a4726fa3b906ffffabf9e715f30f9aaa34780367aaa",
40
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/AbstractResources.php": "b22c82110e2f60cdf92c7546f1ec8e8039cb9f4b92298087290c9113698166e9ef7d25b9a2645809e0f2aceb3994e45f4c8904b1a2ca03cf00c05be8504df6bd",
41
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Account.php": "aea5b414544a9c3c7797146c15c4f419d732225de824113ece7a089f26bbc99426f11e980fa7214e4a3065b8efcd1e32ac1d29ea82ebb1eff445e9d27ff6aac0",
42
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Account\/Status.php": "678e00b88f00ce03ce1cdfacd7ff23608baa09f5298bdda06f834d73257b89ba60ced77df88c2604fcc828b5432f2bb7c13e0d5418674b76a5152a59138d8e35",
43
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error.php": "db0e1a32af83054c31662c26b30bef0ce125d0269a3b762ee231af524df152698814fd479db55833f5a7e580a83f6e823130b4b4e81e6635cbcfca796c8154c1",
44
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error\/APIConnectionException.php": "39411737aa1d7c4e8ac656908db977500fb3a5bc9a429e5367341525d010bb48c2785ec9eec0b7d84a244d21182cf0e0f635125a7aef96006a2222cb066ac353",
45
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error\/AuthenticationException.php": "50dc9337d0e0339547d74d49fb608cb9434ec645b16a283f2feef6959de9ebcd0bd0134c113188c8ee4fb06e21a981ed4274670eb0adc51634b1de8c4f3be8ad",
46
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error\/GeneralException.php": "d6d1d96f8ef2d89eff98814befa51b3f0f5a24a44611414c9bbeaf3046633f8a3b752d33b002738ddd5bbde167a1478f897a127e8ec90e710446ca53bf6a2af0",
47
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error\/InvalidRequestException.php": "64988a6943b848b3f74614c27a16c109af76e4cca9df497ee7066b4ccac0719e2665460337b1e03dcc9ebc7d469f0f670c45b680bdf327c8a3ffaecf4e872846",
48
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error\/NotFoundException.php": "cdbe663b94bd2fdef124570af93509a8080312b0ba13e8ac1664744d40a19c9701c35813da6b10f619c6ccd449ba863c012ef2613b24993e59ecb460dd901cf7",
49
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Error\/RateLimitException.php": "583aebaa33f59f697795034ea4053919e7203218a6984516ad8ffca8a5eb85a7804a30414b33595016b48ca6b83b1926f5b3eefb4bf8bca5fd88ecf173f0e0d1",
50
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Fax.php": "754cc2e5f039acfd3e6ee98311fb12519d83079bb8acfb21338a0ea175df1b53ae863a709c14e43ae1ef39eddc51bfcaaa577eb284d33da787e511c3abb56df0",
51
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Fax\/File.php": "650cf3c1e6aabd535c13c09de0525d73e695f813f0c267008b7722e7a594b5a25f2156bcf6d9fc0828dc0869fa250c138f55256d8aee6a10d83569f33228ed5e",
52
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/FaxCollection.php": "cd04652b9ff7b19af3d53436ca45cb82db41b611df18473b52cc6eb6f5051ad8db34fe751cec891ab315032f6dd109fff6c430baef95aba11cfae10fc073d2ce",
53
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/Faxes.php": "2e1c9c7c78e80fd6efbd49820002c423560bc2fc32d15799b70e26b754a9e659ef61aa707846724c999e1f98ac82366cf57ea49b0ea101a6d825b5bcc80ca278",
54
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/OperationResult.php": "3e85b6a921303cd1e03bc67a79203446e59f76714eed5b468ced130a33fe4e37d6198ef07059fc1f1b8784115ff2084d67e0c3a44b2d7c9433158873c67d7cd9",
55
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxCode.php": "3999628fee6f6f8488e49b8a03a587186a78c20f0ea1a07a5f60455de9dcc8fee644aab86b1942dfeef3b5510de3fa6c71bdf8ee4f2724ddd60309bc09e07fc6",
56
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxCodes.php": "b4d3e68f7c69646cc7e740496173504c8d5ba5956ca43e556c4da1b472500c2937f8ae81fdf8598a7c96899f8e9e9570236cf290547b3a604b0873495a39c4af",
57
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic.php": "9dcb4a790708f552289c28e12de86a5be8af96c1383e079ca626aaba2dc0ae0ac1930c2cc32547d328c69867476746caa7a0c1e9af4b162cee8ea98637720749",
58
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic\/AreaCode.php": "e40391514dc3ac86040436625c8cc977177269d878f97f1f7a26f441b75899fc0ac5f124e82563be63998b5009261287a709630bd5feb7f58d1ca0aff4e799c8",
59
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic\/AreaCodeCollection.php": "36ef6b3a17eaf0bbb45cafd7bc63a387b028c55759e9650c597ed9ad4d98a6788a5c4f2c59055dacaa7ba5cd958f1d8e0811b53962c3b9ad51e96b26ca85e418",
60
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic\/AreaCodes.php": "59b42f33330ad1856d9ecc01588abdcf34080e770f32134cbbf207144d10e1b65c1182df7e39c11f6ba9381fe845715eefd6891cbe29ffc06a8ce2e4e20a3987",
61
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic\/Countries.php": "c3214a5af911c09a2be6de5446c02c6b262082a0cfca057e9a135dbd29631f00a75bfea3bb9181bea1dbe45a7238afd05510275822857031726002ba7d9f2118",
62
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic\/Country.php": "df81c4fd6eaf3d3fd82b090e481cef2c19e34cf532c16753ec909b36c38ac2e87efda4133d8322a512cd0a31d53421fdd2009e6f04be0119a31a90c30c690db5",
63
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhaxioPublic\/CountryCollection.php": "5457c89d54da2c2f6ff8ae907e8c7e21e7fa8197e05c6209d7924e2ac02e422002c6d92e434b45cefe79630532d2c80f1ddd7f4508c0867db637288bc32833c6",
64
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhoneNumber.php": "e8d578db0d72ff22b472c2ecbd58f6b90c06a581392dcb0281b8116dfda57d7fe43d33a212b79d6185276b69ec6c3dadc231603eedb62ded7bd695177baa7b50",
65
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhoneNumberCollection.php": "17e29c72a0a23bf39ab4aca4e77836f78a1a9b570cbece8837e479e2039f8bbf433fe9137c7f9f39e0de930f8eea3eccaf202e6e60cda6ca8fab25e5738af264",
66
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/PhoneNumbers.php": "0a196164d5abb4598c5f3e4eaf092e999aa2e6d097fa4d93c284757ce5c616d949f07e5a6e9a93f632f838551c5979d6517802243014131f2a6bd20bd64c0246",
67
+        "Phaxio\/vendor\/phaxio\/phaxio\/lib\/Phaxio\/StringUpload.php": "a8e15f97d3562d17375989d34ee31569ae2b7a684632bf64f209e61cac7198ec91cc6668e7be51e1d3cf6110a66e881b20e47d6eac0dd2dc6ba8404f04cd0423",
68
+        "README.md": "7469b3471d4bc2dfe5e333bc76b6d0e76875965352938b77c0ac655ed99d9fa6a779dfe0421d5bca19e7a929cdd7f5c2cc165d427bb3172969ee54d105348373",
69
+        "appinfo\/info.xml": "63b1e6391774704630edcd95cb4af9dfa9f4a1274ca73f9c624a932c512ee7d0ddba240cf00a9ee45ef7c9101d9ab2bd654adbe57752cc9e48aa781c2434eaa9",
70
+        "appinfo\/routes.php": "5c13e06285f7bdea64204c7603ea997220a6bacfef64e74bb676546e7fba262f4a47792c270de13b1fcb454e1759c824517f8af6107af8b877e0a81cf4a250c4",
71
+        "css\/style.css": "b75a128c4db60e075f268bff4bb744363540db3c8334476b46a2d9effa0664276b4b0d61aa61ff3648db2a666c5200f4587f873f20e9a2a226d15c3a8af94d5d",
72
+        "fonts\/Apache_License_v2.0_Open_Sans.txt": "fdae7ed259455ca9fa45939e7f25cbb4de29831cda16d9151de25a5f6e9d9be43b053f4fd3b896026239fca77abce04f543d591c501ecf4ce18c854bc0a51660",
73
+        "fonts\/Inter-Bold.woff": "f34ed611dc0ba6e7c0bf7242bad7c02e09f208bfbdd21d6649ebf9b41bc06696d8856707851944786c80c718df455e619caab170c70bfe97ba2043d651d4532e",
74
+        "fonts\/Inter-Bold.woff2": "736b4aaf8a2de0c17fbd5396a338577227326f078ee0646072d851d328b58a8058989af8735ac073f935b05f291d9310797d95c963e5e3ff0ea61a87f21c9da5",
75
+        "fonts\/Inter-BoldItalic.woff": "619e398d37249fae96ba0deb06fcf5dab215ba888740024287e2c8f1278b33273124cd5b9ea8f7525a17657566b72a1661b688ca670bc068ca6ddf466b7e7ffe",
76
+        "fonts\/Inter-BoldItalic.woff2": "a24bdb558a9b26fbe7631d6cf90b8db8f5f0164c3c814a2971fb7d45e807b0856454893bbd0d5bd0d9f060689f2be5f5bb1b69e4bdea0293d1122e13ad28e96f",
77
+        "fonts\/Inter-ExtraBold.woff": "d527e43747abed5a13d49a70c8db7ef39aab35ab0accfe1e3f6e037f685e08d2e5f7552b40c75d4faecc0e7e1227e97c563af093afefb57f2b6be9c783a85b0e",
78
+        "fonts\/Inter-ExtraBold.woff2": "20a22b0255b2bdc8f30ca7d59f20b3e2dfcbeaa39f035ccbeff40b57ad77d616dee1c41eebe30e1fab53fbb7ab4cc9f842cd13539ef34a680f6dd43441a3f2f6",
79
+        "fonts\/Inter-ExtraBoldItalic.woff": "6fc1da8183d8b131d670ff5a89593967e4666436b37fcf08c4d99d8532654558f281bb8c20c92be8c5e3d6b34e05c7aad182f4c9a413f8bb1c11ef600b3c524b",
80
+        "fonts\/Inter-ExtraBoldItalic.woff2": "3a8c4a113a4308ac9a57e7ad75060e0f08a1dd8638c29c1190f86929363b755ed2de66e4c11d3164a0a1fb1e6e35865bf786a295d3e0ad561c4a94cc8cbec6db",
81
+        "fonts\/Inter-Italic.woff": "72defeb5040f6375683dba41d4ce43654fdbae4f64aea88b01feb023b3e894c278c8a8c7e5583b6d83d980495ca0d5afa5ec7e1bfcc731be08d3dbe1b8b3f348",
82
+        "fonts\/Inter-Italic.woff2": "b128da83c81fe4a28026dc0a2a75c7920f37d4e04d6d6bde4e60b3a9527dbff04ff0ebc8b300874db9bd90036a41a52f4c9d82eb2f78fb8e99a35bb04defa1c2",
83
+        "fonts\/Inter-Medium.woff": "1f7c25aeb1ed534a106254fdba6bf59dfa03542f813489dca31fe067e2a22ab9549babb48af4cd465ab3ef0ef2f4b0f46532efcc8aae8942ad2cf98d0a5a4a3f",
84
+        "fonts\/Inter-Medium.woff2": "ce94d1a0cea81d42546ebc0247403b02c6fae24d3afba618cf658436734557a8b2b8ebed54319a9f66b233bd224da3685f848470866de63a144c8c28070491d4",
85
+        "fonts\/Inter-MediumItalic.woff": "7b7bef9c7a7717c6d52d619059e5ec258b537f538ada38325c2c7bfa4968ff53109bc9ee17a57819ef37d0a145a973f4a7c8e4d8d09e71d3faa4d0fe14cbf487",
86
+        "fonts\/Inter-MediumItalic.woff2": "4a2c5dc8c2ece82489e63b16cd8b1536b8f5502cf8f93307b0c71c6d54594a28ec2a80b8e58dfbbcc1d38a51aa8dd6d6fa025aed2cdc1429a462745a2bf2d414",
87
+        "fonts\/Inter-Regular.woff": "e37409956d19653617af32af2f99f4038c815a3664f2dcb2fef5e6a1a7345c78aaac3badc2ae499b1423514076ad676ab4bd5d936ef9d159899a6f668d991e4c",
88
+        "fonts\/Inter-Regular.woff2": "731924aedf31d6ef8fcd57a3b74182331ec7ba743d64033d8912d350ba98fd5b1942decaa4268f4dc925be2ed711c71a77200b2497bec10cae499b452fb27138",
89
+        "fonts\/Inter-SemiBold.woff": "684602b1f45bf7a9ca5ea6b1aca2cc2046e07ac79eb63b920099463f25866f50cca77ca253f16078d3a6e781ca23b964a69c87389621fa101d5cfffdb292d132",
90
+        "fonts\/Inter-SemiBold.woff2": "12b7680eccc54f56f800ac3ea4eff0490f515911d0fc83f99f62fa0f72d848155c8a7186918301a372d0fd0238d8093109c7b9b3c05168058e3cb47b1f7216ae",
91
+        "fonts\/Inter-SemiBoldItalic.woff": "9623d9c91148b651b7d4a642751e4f9eaeda68b6f4c33355d0173e303252039b3bcd301556a1d8451ffbd36d7996c1e8fc5ca1276884636cf57468e38c9e442a",
92
+        "fonts\/Inter-SemiBoldItalic.woff2": "97b7d8ab268ebcbc00876bd69ca9cc7cf2ae9ba5a6a30c13e3412e41a88f1f5ed758a6d9abbab3a14359943a003b14307cbc379bb11505c014b002322fd53c6e",
93
+        "fonts\/SIL_Open_Font_License_v1.1_Inter.txt": "073e141d4e45a3adfd2cb569db6a4fd217b1721dd6aeab8159e36940b984df5ebdc345deb0eb6be65367f943e516a12dff41eb1238a322d248ca3478c50ef9b6",
94
+        "fonts\/opensans-bold.woff": "d094832745611e047ffa87fdb21bac41befabdb07aecade483d4dc5a5b97bad00f1d4a5dca2a615789cd494791f0ab4209be537eb4b1bc7cbee7c42eb5e201dc",
95
+        "fonts\/opensans-bold.woff2": "096abb618c9ce1a534f0198aeea53c6d1138000f98b883131ab49ee48b80b483af635f0196ac40a1c1bde679f63b3c3b907b8f9b0102a752862d623dd22393a5",
96
+        "fonts\/opensans-bolditalic.woff": "c80f105a10d37c812f5d1b29445cd21cbc95594f71d9c5fc1b3aeeb9985c5465ba017654f1453baefdc56cc27aa325b586d77323012073eb713ab8f88f08dab4",
97
+        "fonts\/opensans-bolditalic.woff2": "38b99ebf320264d74a456fe590fc610580b003bc77a39d97ff42dec41353a8f908d6f680b4777cdb34ed544d9b4ed20dce8c418317de1d721e25ab670f49fc1d",
98
+        "fonts\/opensans-extrabold.woff": "6636a395ba345853ada2237b8e1f81c52e54bfb65559cbcb8de143cac00232f20cf34c764c9c4d4b80e82dae79cba3064ebdf22999cce8839df2d5709ee64092",
99
+        "fonts\/opensans-extrabold.woff2": "758c90eb07c6db7e78cb703ea285f82b443ca2cfab792328a3f8c14acc1f932ae79ec2987b8b94bf19b3cc16fae31c76f3164c9437a2591283fb1592e40ec33d",
100
+        "fonts\/opensans-extrabolditalic.woff": "ab1966f1ab3bb436e489c2d6ee562cf22d05b6b8c9bbca17e903518311aa45659efc329255e08ab597e2b8effe3bda602a7fb56b7d0c1d872b69337537d49dff",
101
+        "fonts\/opensans-extrabolditalic.woff2": "2132d6309969f868521f2d788b991bc9bcf3239f1768db9a2b90faf8838c35efea85225b24db256f54c86d0a7915ecd50a7f5348e6ab040e0f172ba7510598cd",
102
+        "fonts\/opensans-italic.woff": "a9751e7ac7a3c3d9f739d1fe00730a545b68e4a6473beafee8edf583f175b34fd5e0b60a14ec3707c8691fdbebea17e191c51707f50a21281e76be46f55a1140",
103
+        "fonts\/opensans-italic.woff2": "7a80c01d34562e2fe248a71078ffa9413c04c9c320d27acb0bce96cc295101eb9e80a25e97dab3e67c184c40937862be820581441aa4100bd512a26ef2d523cf",
104
+        "fonts\/opensans-light.woff": "cca2c5d207e0935c1848e22965972cb6feea39aa93b1b546051cfabe5ab16e909934d007a7ccd174eda1e7671d838f477890dedcb93d68ba722eda39a16d0bb8",
105
+        "fonts\/opensans-light.woff2": "cdc332de1b13eb0f05cc9dd1ebc905fa5ce948eab71e2fdb1bc538ad54a0de980bf83352090becd650af9c101ec9a6898d2e4798e4fb777e41c20fae85fd568b",
106
+        "fonts\/opensans-lightitalic.woff": "26e7759869088d8abba380f0bb22bbb9fdf0a985c0999519390cbd85099e3f48864d866f4639a8ff1992e7c81c755b0bbf66f525d4d38a929067886e9b54eb88",
107
+        "fonts\/opensans-lightitalic.woff2": "b7f80b69abeca9d0369f5d46da192e98a6329cf1f948c897fb7130e0d815f73e293c37f0e6d0047273fe3f13a19e648d1bd06cfa2fac2142ec38ac244e7f0940",
108
+        "fonts\/opensans-regular.woff": "3a526ba177f8f16ad95941c185411f350fab7e5202b9f56ea9c5f972c62912781d66da10e278e065cc6748a4bc9ab9182d68b27eaf380131c602195148e4b8b4",
109
+        "fonts\/opensans-regular.woff2": "66b3e915b891f7b37b441ee18e40f01274fe19f2515470760e503f428fc1c524ccfbe832191978c2c5f6bc4b7ef46937e4f77f5457b6efbf878c97c054cb45f2",
110
+        "fonts\/opensans-semibold.woff": "173f703ab767d0fcff014dac2fa3dcac787ffd0eb39f0c532b6679935c0105daacfa6a32bca97de13e420e10194b701ad2487bfd35d28807563ebf0b16d0ca35",
111
+        "fonts\/opensans-semibold.woff2": "75068ba76befc2356fe83b198bf6da70e177e53cc3128af09d0d9f69dfe538013f2828b2363c6f533fcaca4d4b2a5ec5159b5eb6f288504ac73d33ac5d1d2c4d",
112
+        "fonts\/opensans-semibolditalic.woff": "9e1e965095991d4a12a0658fa22a116b043ce20fd5f73bb9655d870ae49c46170cec52827510be323332b535002eb96445f79c3d1e4dd0550ff622fda0465f1d",
113
+        "fonts\/opensans-semibolditalic.woff2": "d7e43f05802e26f4cb80ab6a492b01c398c5b41168c7f61356ca3ffc5f4fccabae5ba332956f0aecad69ccabb6b7526efbc0395552cc5d68e47bec00bc660ad7",
114
+        "img\/app-dark.svg": "1cd5df59a2886ada493eedba1ec62dcef815210416cdc1a6bb35aaa3fcaee59f5cd5a756e082557ba95eddd5abcba37236b5fc815cfffd9dea2843614071a673",
115
+        "img\/app.svg": "db540b202b0b9e49e0ed2453d99eb23b8eb37c293fcf52de280844e3d3c224ed067cc7bd80db755d851a78fca13fd2721e7bf16727f755de17442fd894b75791",
116
+        "img\/nextcloud_logo.svg": "4e0d3f0c371d668d83d443e5b1f69f0eedcc759092601d8fe8710dd97b16fd53aa3f9667bba7f305dc3aacfbc14e29b09b78da8b7bf6f41dcb83f5b16473991e",
117
+        "img\/nextcloud_logo_bright.svg": "aeab941556e29f9537508171583bb3309372866122c150c887c21d6a567c5aa06d2653db67c7151b064d4e2fa25f1fc63df21c786ede02ca5f40f12e5c1bad26",
118
+        "img\/pax_fax.svg": "db540b202b0b9e49e0ed2453d99eb23b8eb37c293fcf52de280844e3d3c224ed067cc7bd80db755d851a78fca13fd2721e7bf16727f755de17442fd894b75791",
119
+        "img\/pax_fax_choose_file_from_nextcloud.png": "92d30d5c20d0f03acd9430f4e2c1a3694e346941dc9ec1400fb8a2697b750ddc611d226a55c31d5d3001c1bce2199edfcd823cc2634bb6d050ad0ce4fadaf993",
120
+        "img\/pax_fax_dark.svg": "1cd5df59a2886ada493eedba1ec62dcef815210416cdc1a6bb35aaa3fcaee59f5cd5a756e082557ba95eddd5abcba37236b5fc815cfffd9dea2843614071a673",
121
+        "img\/pax_fax_files_from_pc_and_nextcloud.png": "610c382b47f8ca41898098642538c1ede712a0462442a0eb937110b81befe71833de0a4e74c7f6e798888b51a9b7718108b910c145b7d4bc8096145f835ac556",
122
+        "img\/pax_fax_grey.svg": "fc36143f41b406b237a36e98b5834320bfff94c992a5633508834a8f2db79f679e5b83573d727774f7db6ac5c2eb01fb09b3d42ff1c16fb891f75e9d8a890c17",
123
+        "img\/pax_fax_logo.png": "3c901669e9f2e76f7bb3f2479209f0ff51c24c940d1d5ec163a375464b696c61872bc482dd523560919179cc0af3825d254dd89506220317c9930030896790df",
124
+        "img\/pax_fax_received_fax.png": "42c31af0849badf3d5451ada2d9db869031a48df473a7f4a0c07c1a31bc6c46ad7952612145d4d6037955b015eb90fe8a4115f506fee5d69f3ec46a956333080",
125
+        "img\/pax_fax_received_faxes.png": "ae747393bbbce84696c45aad0d30eb50903dd455f4cb7ba128fd8c5f22aa8d099b2fcc32a2ce58d34ca8bafa5ddd3824e94df68464b36c3d4b6ce56fa85915fe",
126
+        "img\/pax_fax_screenshot.png": "799b5e05469cab56f30cc58f1dc290cc6293fe2e79fef89566cf6feba0418068908d421d5b59eb33570fed2f40bee792fe86a3821e5121b2b204b2daeca516f6",
127
+        "img\/pax_fax_send_uploaded_file_as_fax.png": "536cd0913447bd152049e9cc7793b0674353f2e8b9bd8ae2b5eb7080d24484c4a4aae48f8a8b1ac0a271ed7ff6da2fa19547259a7d5090dbb32febb873ca136c",
128
+        "img\/pax_fax_sent_faxes.png": "d2630afa4992268e9891c66805fb44b21a3c7fbe431f7cc4582ae28b0355821696e8e50304b0165b5208b05a0b7c460f8d2d572d98ec53c3bd99ba08feb17a4e",
129
+        "img\/refresh_logo.svg": "a95a19645bbde5e2146a3ec669950bc6029bfc6104886552eaeb4746733657ecbe4f9199e676ee2e9852ef0c5adb612d93e300e3fa9713fc611e1f8e7c1d5183",
130
+        "js\/sendfax.js": "bb56adbd4833881cfb3dd40853ffc628036fd4c816c09166862bb8d3f2e88482fb846de65fa4dcc5d9e3ff7533b2e7a4703846e3203a14b3dbc452f13f8789f7",
131
+        "js\/settings.js": "2cd438a40f2388d58b1a4577830906928ba03f08cce2196d4e26f603bd42ad1d0f4fc66607e1b0d279ebea0483a4bb1f8a912c1b7e7b7c3113c0f364ed749e43",
132
+        "js\/tiff.min.js": "c35f67b587aab62db7a3de662779a7b3264d70f5f856142cae88eadd1b477e474977f2b8c5ab31c16be002cb7ca9b52282e6de533b6fd79a02e6d33815919cb4",
133
+        "js\/webodf.min.js": "655acab6a9773314aa741a7477121885c593bf3ecf2bc67adf8f870c81d0604ebf5fc558dc2a6072da0a70397c0d995ce15c5969b2190bcd2b687693772a3281",
134
+        "l10n\/en_GB.js": "327def4bcb19d280eca1fa0daa7408f67236fb1d73a9edeaf4af55a429a90d856095ef455dfc7e0119b21aaa8af67ef75a049ea6d4a0f2f6a3c1a04fdd6b0b0c",
135
+        "l10n\/en_GB.json": "f1bd896b91a53565519751d61da8a701e77de86f40646de78e6bc446785b95729a77983f2f310fc2ea2fe5f8eb5c357f00ae05cd372aa6d112ca9fe237cf06f7",
136
+        "l10n\/en_US.js": "327def4bcb19d280eca1fa0daa7408f67236fb1d73a9edeaf4af55a429a90d856095ef455dfc7e0119b21aaa8af67ef75a049ea6d4a0f2f6a3c1a04fdd6b0b0c",
137
+        "l10n\/en_US.json": "f1bd896b91a53565519751d61da8a701e77de86f40646de78e6bc446785b95729a77983f2f310fc2ea2fe5f8eb5c357f00ae05cd372aa6d112ca9fe237cf06f7",
138
+        "lib\/AppConfig.php": "c8acb61a0d2a4411a468578e4d10dbf1491c259fdfc6f40bfb29b5fae9b2d9dfb3564c72b9c679b5427f37dd51932d17ce6924c4e49daf58c390b6d2076c15b3",
139
+        "lib\/AppInfo\/Application.php": "8cc6ca32c87308f27d2fe6e1cdc48200750c50df595f13a942b406c1ac70583b367a4f594bc404a6c0cb50a75fccc29648d60303ac2a5273494406cab20a4966",
140
+        "lib\/Controller\/AuthorApiController.php": "2052cb1ae1615bfa29410e020047f79ba08d69d8d74f339e3b81e31e76133578f5ab15db5a27983b993fd213af0ea8efbfec8f0d06ef86acf99ef12f750de15b",
141
+        "lib\/Controller\/PageController.php": "c2abb6d62f7118e4c4ff73252c3ac4290e46e252a65248dae12c5a721a1aadeda189835d8efb9c8da7b22b3d8221e928a640bd93e4c5408a2db453517b78cb0d",
142
+        "lib\/Controller\/PaxfaxController.php": "95bdf469cc048a455781631cbb3bd87575729901fa98b374d7df3f7143e9f33fcae3eca9a03970c3c97543edec76c377aa453989df4a16133e68ceef6fcc4911",
143
+        "lib\/Migration\/Version100Date20211106170854.php": "d1f5538dc19c89a6b8a1521af701f0682be89f773ac63b7615b3d7af8fa183f03f176f1ba38d5c55c3912e23b815b2cf3d85078b0c4445af64380906f67e2601",
144
+        "lib\/Notification\/Notifier.php": "a63e46c9b808f9f08bc674f11980514530270516ff8d2bd3a112bd9535ead40cb78924a7f75d745f253d26e0ac265c903b8b517b547aa7e7dcfbd6224822474d",
145
+        "lib\/Service\/PaxfaxService.php": "ef0a256754d4e8fcbc3a89ce72fac231b63f3d15b137d1da886a2498078107daca8b060855d6b2d09836ef658c61a177476ff97558abe1d063426395aabe0e79",
146
+        "lib\/Settings\/Personal.php": "8242e941926433f948a32c6bad02faeba1d64374f4a7efbac64d1600177507ecd66b85df98194312d7f0062a34536e5f21293ac43b6402899146359ff7bb3d65",
147
+        "lib\/Settings\/PersonalSection.php": "f928a8b1df3bd8b482cab7a61cd32cb039ec6b8744f1902bc741c0ca85d0c3473d939df0a1fc91c2bead6b94546a10fa59136e491b142680814bd99ffb05d12b",
148
+        "templates\/content\/index.php": "7f88b793a60d7e3baeb18a22e8f6f6980fe981952871fb4efc1f9d56b4b2fcfc4ac5ef32e03ff227b0c6229cfcfa3a42a12d48c6871d5400a8b4fd68e3d18615",
149
+        "templates\/index.php": "ea041904c7847c95b9e75d60e0328b51a5eb55bd2c45352127d5490f8ee04af5af9b740cd8b71009841c53c1a1ac8de44be01f4744d7273b688d11fa5dd56498",
150
+        "templates\/navigation\/index.php": "73839c729e41c049ce1ab263e367d725bee62421c42716ee20ffca77f54690833aa90ca2633bf039829651e0736100ad440a5511c9b6aeff864a097c66cea135",
151
+        "templates\/settings.php": "f321b9293dc28ac15d3e39b2779702471813fb25022e96938638ac8d2d31b3d67fc27694d22a561d6eafbc0ba94d0415964e6d8d150ae1f35ac4c887e3ff88a5"
152
+    },
153
+    "signature": "dU0h2ZJ5KZPYptTOnq3zHRehf\/xY5bH5dXeotIHSbeM6iIrbv1dmw1ahn6QU3KHUGq8Xdiqiro4nuogYeEK6E25DXYvgJrfcJSi5nfGC2NFiyJYth0F\/EGGLqS9IULMU3p3HUfwoDavbuRBNH44IOIb0YYZMlyWURlVLuadNqgP9uDghyhv\/\/EDmSCYVgzMkZmiMHW2LCeXnuQo\/hmHzpak\/Q92RMWSHtgB5HXO1KMRdq1ZLDTxvn\/zTN4Wq96TFsKZ+kZYA3iLi8TGS8DO+p4g7\/nQEnlzXhsU7zraN694OkacgyGiI2kPa34mPs39wUuMz8Vt\/jEmhZeFWY8qaWDMPYF\/gNbGxjxh8um81kZ3pRazI2j1yf9w+XvvU8wm8juYvf1vKc8A2byvU8fEc0mzNfSzY9zg3aQTSjyO6g0ee31SXNTQpx1X+QdFVa4843HmEiSWy5bqoNc10AqZ8vOtqR5NorWS6pJ6ljLwZErMzbmm+1P95fQaMSLPR0Ee8KZ4AYApoy5L98VZ6jeNIVkazXCX2ppkQx3apujbX8VjfZfUhHLLJE\/5B77SXAaOyjJ4jyfqwRgqwhyaW27LzxDbZ3Qjvjroi1iFa7FvnoW4t1fBbMnSmcsbFJIIe4FkiUZLwjvDASHPy9pnOChvqSSinUAPfz1OL62wCZtVXnDQ=",
154
+    "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEAjCCAuoCAhG6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwMjI1MTU0NTUwWhcNMzIwNjAyMTU0NTUwWjASMRAwDgYD\r\nVQQDDAdwYXhfZmF4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsa4b\r\nARkaBatWm4JNKsst3BNjt1X4Clo0Vynelj+VfcMK9G2dB02HGZiQhBfi5cvLMDD4\r\nJEw9jPPf+pxxBY87gwloEQxRW4WmI3LLCPNVSF7GfvONwdjsoJebCPnH6AYHbUlG\r\nQ8\/6wlgCiCklMiCWW0pGFQaDis+4KIkmoFS4elRxOzb+oLCsJRHmLIcV1ZipRanE\r\nP5Y1u953glpjMChZEW6\/p4AEB4xi6b+GaQ+8cBZ5+7WvT54l5iKHY6Tl6fwOuBjl\r\nCc+8FC+hIKk7bTSXfbuwpgzZ7RNgH0BYD\/aryxK\/MHAqeGQKM\/pwvH9SN8LMLZVg\r\nXG+25FiBPuiST\/3l42sY1HD+Gh1KIw83zWD\/kVsU8tKIf0t0uS3ntwx3xjH0ojo9\r\n85Pu4XexopIPi4YxNFtphd\/+cJegbSLKa1LL2CqhnPSXHD8GYjZ16qdy6AxEyEki\r\nOQssSlTOsQ2RmvRqDPwqrbIZrVeiN3Mt4qEontOzci4ggjhBWqhjkcRId4XlGveu\r\nAbWP9O8aXzrElLLeSuDzl6uAcrtwgFvYjoxbRH66hcwv\/+RBOK58CI\/0ShGJZyVh\r\n\/9oDKwyYfHT1OTbRKlvm+TfV6Vmbuol0xFinUv4GoykBO67JJcERTSTGGDqMP2OL\r\n97lkR1b7sy9WKrWw1iljbwyzEEASKKleJtp8HC0CAwEAATANBgkqhkiG9w0BAQsF\r\nAAOCAQEAK+uuoq2F0N4nYdHpRRi5pP8hu540jEpHsLB8o\/3GT++Tdj9jeMdfDWos\r\nskB2e+Vi3OgiCWq51gQ9pq0YSQLZJzXBtX9Zd7gvnmIWJZqjbEkMsky+zMM2mweA\r\nl4+coZvXuqxNN6aY+oAKuf66ZWviUld1WEOz0+2vLrhs9qDCYFKDl7vXol6hz4gf\r\nX5d5crNAu1QboE8FEMxqfDrAMeJzL6SAG4UUaF9duB\/6xUm9d7vBKDCPMzZAV\/ob\r\n+8wxt7K4VoOuCo1KEpp\/+ZRrEr5ZbGGsNw41jrtfBsrMtbbIoRtyIh9Xfme2KzYM\r\ncm9HZiMNDokH8MlzOPOGwkP31w4FHQ==\r\n-----END CERTIFICATE-----"
155
+}
0 156
\ No newline at end of file
1 157
new file mode 100644
... ...
@@ -0,0 +1,975 @@
1
+/**
2
+ * @copyright 2021 Double Bastion LLC <www.doublebastion.com>
3
+ *
4
+ * @author Double Bastion LLC
5
+ *
6
+ * @license GNU AGPL version 3 or any later version
7
+ *
8
+ * This program is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
10
+ * License as published by the Free Software Foundation; either
11
+ * version 3 of the License, or any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
17
+ *
18
+ * You should have received a copy of the GNU Affero General Public
19
+ * License along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+@font-face {
24
+    font-family: 'Open Sans';
25
+    src: url('../fonts/opensans-light.woff2') format('woff2'),
26
+         url('../fonts/opensans-light.woff') format('woff');
27
+    font-weight: 300;
28
+    font-style: normal;
29
+}
30
+@font-face {
31
+    font-family: 'Open Sans';
32
+    src: url('../fonts/opensans-lightitalic.woff2') format('woff2'),
33
+         url('../fonts/opensans-lightitalic.woff') format('woff');
34
+    font-weight: 300;
35
+    font-style: italic;
36
+}
37
+@font-face {
38
+    font-family: 'Open Sans';
39
+    src: url('../fonts/opensans-regular.woff2') format('woff2'),
40
+         url('../fonts/opensans-regular.woff') format('woff');
41
+    font-weight: 400;
42
+    font-style: normal;
43
+}
44
+@font-face {
45
+    font-family: 'Open Sans';
46
+    src: url('../fonts/opensans-italic.woff2') format('woff2'),
47
+         url('../fonts/opensans-italic.woff') format('woff');
48
+    font-weight: 400;
49
+    font-style: italic;
50
+}
51
+@font-face {
52
+    font-family: 'Open Sans';
53
+    src: url('../fonts/opensans-semibold.woff2') format('woff2'),
54
+         url('../fonts/opensans-semibold.woff') format('woff');
55
+    font-weight: 600;
56
+    font-style: normal;
57
+}
58
+@font-face {
59
+    font-family: 'Open Sans';
60
+    src: url('../fonts/opensans-semibolditalic.woff2') format('woff2'),
61
+         url('../fonts/opensans-semibolditalic.woff') format('woff');
62
+    font-weight: 600;
63
+    font-style: italic;
64
+}
65
+@font-face {
66
+    font-family: 'Open Sans';
67
+    src: url('../fonts/opensans-bold.woff2') format('woff2'),
68
+         url('../fonts/opensans-bold.woff') format('woff');
69
+    font-weight: 700;
70
+    font-style: normal;
71
+}
72
+@font-face {
73
+    font-family: 'Open Sans';
74
+    src: url('../fonts/opensans-bolditalic.woff2') format('woff2'),
75
+         url('../fonts/opensans-bolditalic.woff') format('woff');
76
+    font-weight: 700;
77
+    font-style: italic;
78
+}
79
+@font-face {
80
+    font-family: 'Open Sans';
81
+    src: url('../fonts/opensans-extrabold.woff2') format('woff2'),
82
+         url('../fonts/opensans-extrabold.woff') format('woff');
83
+    font-weight: 800;
84
+    font-style: normal;
85
+}
86
+@font-face {
87
+    font-family: 'Open Sans';
88
+    src: url('../fonts/opensans-extrabolditalic.woff2') format('woff2'),
89
+         url('../fonts/opensans-extrabolditalic.woff') format('woff');
90
+    font-weight: 800;
91
+    font-style: italic;
92
+}
93
+
94
+@font-face {
95
+    font-family: 'Inter';
96
+    src: url('../fonts/Inter-Regular.woff2') format('woff2'),
97
+         url('../fonts/Inter-Regular.woff') format('woff');
98
+    font-weight: 400;
99
+    font-style: normal;
100
+}
101
+@font-face {
102
+    font-family: 'Inter';
103
+    src: url('../fonts/Inter-Italic.woff2') format('woff2'),
104
+         url('../fonts/Inter-Italic.woff') format('woff');
105
+    font-weight: 400;
106
+    font-style: italic;
107
+}
108
+@font-face {
109
+    font-family: 'Inter';
110
+    src: url('../fonts/Inter-Medium.woff2') format('woff2'),
111
+         url('../fonts/Inter-Medium.woff') format('woff');
112
+    font-weight: 500;
113
+    font-style: normal;
114
+}
115
+@font-face {
116
+    font-family: 'Inter';
117
+    src: url('../fonts/Inter-MediumItalic.woff2') format('woff2'),
118
+         url('../fonts/Inter-MediumItalic.woff') format('woff');
119
+    font-weight: 500;
120
+    font-style: italic;
121
+}
122
+@font-face {
123
+    font-family: 'Inter';
124
+    src: url('../fonts/Inter-SemiBold.woff2') format('woff2'),
125
+         url('../fonts/Inter-SemiBold.woff') format('woff');
126
+    font-weight: 600;
127
+    font-style: normal;
128
+}
129
+@font-face {
130
+    font-family: 'Inter';
131
+    src: url('../fonts/Inter-SemiBoldItalic.woff2') format('woff2'),
132
+         url('../fonts/Inter-SemiBoldItalic.woff') format('woff');
133
+    font-weight: 600;
134
+    font-style: italic;
135
+}
136
+@font-face {
137
+    font-family: 'Inter';
138
+    src: url('../fonts/Inter-Bold.woff2') format('woff2'),
139
+         url('../fonts/Inter-Bold.woff') format('woff');
140
+    font-weight: 700;
141
+    font-style: normal;
142
+}
143
+@font-face {
144
+    font-family: 'Inter';
145
+    src: url('../fonts/Inter-BoldItalic.woff2') format('woff2'),
146
+         url('../fonts/Inter-BoldItalic.woff') format('woff');
147
+    font-weight: 700;
148
+    font-style: italic;
149
+}
150
+@font-face {
151
+    font-family: 'Inter';
152
+    src: url('../fonts/Inter-ExtraBold.woff2') format('woff2'),
153
+         url('../fonts/Inter-ExtraBold.woff') format('woff');
154
+    font-weight: 800;
155
+    font-style: normal;
156
+}
157
+@font-face {
158
+    font-family: 'Inter';
159
+    src: url('../fonts/Inter-ExtraBoldItalic.woff2') format('woff2'),
160
+         url('../fonts/Inter-ExtraBoldItalic.woff') format('woff');
161
+    font-weight: 800;
162
+    font-style: italic;
163
+}
164
+
165
+#app {
166
+  position: relative;
167
+  display: flex;
168
+  min-height: 100%;
169
+  min-width: 100%;
170
+}
171
+
172
+#app-content {
173
+  position: relative;
174
+  z-index: 1000;
175
+  flex-basis: 100vw;
176
+  min-width: 0;
177
+  min-height: 100%;
178
+  margin: 0 !important;
179
+  overflow-y: scroll;
180
+}
181
+
182
+#app-content #app-content-wrapper {
183
+  height: 108% !important;
184
+}
185
+
186
+#pax_fax_vbar {
187
+  padding: 18px;
188
+  font-family: 'Open Sans';
189
+  color: #6d6c6c;
190
+}
191
+
192
+#currentbaldiv {
193
+  display: block;
194
+  position: relative;
195
+  font-size: 15px;
196
+  font-weight: 700;
197
+  padding: 3px 0 3px 14px;
198
+  margin: 0 0 8px 0;
199
+  color: #ffffff;
200
+  background-color: #3f9dd1;
201
+  border-radius: 20px;
202
+}
203
+
204
+#currentbalance {
205
+  display: inline;
206
+  position: relative;
207
+  padding-left: 10px;
208
+}
209
+
210
+.providername {
211
+  color: #FFFFFF;
212
+}
213
+
214
+.providername:hover {
215
+  color: #003b94;
216
+}
217
+
218
+#faxnumbersdiv {
219
+  display: block;
220
+  position: relative;
221
+  font-size: 15px;
222
+  font-weight: 700;
223
+  height: 30px;
224
+  margin: 0px 0px 20px 0px;
225
+  background: #3f9dd1;
226
+  border-radius: 20px;
227
+}
228
+
229
+#currentfaxnmbrs {
230
+  display: inline-block;
231
+  position: absolute;
232
+  height: 22px !important;
233
+  width: 55%;
234
+  font-size: 14px;
235
+  font-weight: 600;
236
+  text-align: center;
237
+  padding: 0 0 2px 0;
238
+  color: #565656;
239
+  margin: 1px 0 0 4px;
240
+  -moz-box-sizing: border-box;
241
+  -webkit-box-sizing: border-box;
242
+  box-sizing: border-box;
243
+  background: #fcfcfc;
244
+  border-radius: 20px;
245
+}
246
+
247
+.pflabels {
248
+  font-size: 15px;
249
+  font-weight: 700;
250
+}
251
+
252
+.pfheader {
253
+  display: block;
254
+  position: relative;
255
+  margin: 0px 0px 7px 0px;
256
+  font-size: 15px;
257
+  font-weight: 700;
258
+}
259
+
260
+.faxnbformat {
261
+  display: block;
262
+  position: relative;
263
+  margin: 0px 0px 4px 0px;
264
+  font-size: 15px;
265
+  font-weight: 700;
266
+}
267
+
268
+.pax_fax_box {
269
+  display: block;
270
+  box-sizing: content-box;
271
+  margin: 8px 0px !important;
272
+  width: 70%;
273
+}
274
+.indtext {
275
+  display: inline-block;
276
+  padding-left: 10px;
277
+}
278
+
279
+#settings-dscr {
280
+  padding-top: 3px;
281
+}
282
+
283
+#pf_upload_msg, #pf_choose_msg, #pf_submit_msg {
284
+  display: block;
285
+  margin: 8px 0px 8px 0px;
286
+  text-align: center;
287
+  font-size: 15px;
288
+  font-weight: 700;
289
+  color: #181918;
290
+  background-color: #a5e5b3;
291
+  border-radius: 14px;
292
+}
293
+
294
+#paxfax_save_msg {
295
+  display: inline;
296
+  color: #181918;
297
+  background-color: #a5e5b3;
298
+  font-weight: 700;
299
+  max-width: 70px;
300
+  text-align: center;
301
+  margin-top: 7px;
302
+}
303
+
304
+#pf_submit_msg {
305
+  padding-left: 5px;
306
+  padding-right: 5px;
307
+}
308
+
309
+#pickedfilename {
310
+  font-size: 13px;
311
+}
312
+
313
+#faxtodiv {
314
+  display: block;
315
+  position: relative;
316
+}
317
+
318
+#faxto {
319
+  display: block;
320
+  width: 97%;
321
+  max-height: 22px;
322
+  margin: 3px 0px 20px 0px;
323
+  padding: 0 13px 0 13px;
324
+  color: #565656;
325
+  font-family: 'Open Sans';
326
+  font-size: 15px;
327
+  font-weight: 700;
328
+  border-radius: 20px;
329
+}
330
+
331
+.up-bttn-wrapper {
332
+  display: block;
333
+  position: relative;
334
+  overflow: hidden;
335
+  padding-top: 20px;
336
+  padding-bottom: 30px;
337
+}
338
+
339
+#submitfax {
340
+  display: block;
341
+  color: white;
342
+  font-family: 'Open Sans';
343
+  font-weight: 700;
344
+  font-size: 15px;
345
+  background: #3f9dd1;
346
+  padding: 5px 16px 6px 16px;
347
+}
348
+
349
+#submitfax:active {
350
+  background: #00a2f9;
351
+}
352
+
353
+.uploadfiledv {
354
+  position: relative;
355
+  display: inline-block;
356
+  margin: 4px 0px 22px 0px;
357
+}
358
+
359
+#faxfoldersview {
360
+  display: inline-block;
361
+  position: relative;
362
+  width: 100%;
363
+  height: 100%;
364
+  margin-top: -50px;
365
+  background-color: #f4f9ff;
366
+}
367
+
368
+#viewerContainer {
369
+  display: block;
370
+  position: relative;
371
+  width: 100%;
372
+  height: 100%;
373
+}
374
+
375
+#viewer {
376
+  display: block;
377
+  position: relative;
378
+  min-width: 100%;
379
+  min-height: 100%;
380
+}
381
+
382
+#faxdocpreview {
383
+  display: block;
384
+  position: relative;
385
+  min-width: 100%;
386
+  min-height: 100%;
387
+  background-color: #f4f9ff;
388
+}
389
+
390
+#docPreviewFaxImg {
391
+  display: block;
392
+  position: relative;
393
+  background-image: url('../img/pax_fax_grey.svg');
394
+  background-repeat: no-repeat;
395
+  background-position: center;
396
+  width: 100%;
397
+  height: 100%;
398
+}
399
+
400
+#outerContainer {
401
+  display: block;
402
+  position: relative;
403
+  width: 100%;
404
+  height: 100%;
405
+}
406
+
407
+#mainContainer {
408
+  display: block;
409
+  position: relative;
410
+  width: 100%;
411
+  height: 100%;
412
+}
413
+
414
+#uploadedjpg, #uploadedpng {
415
+  width: auto !important;
416
+  height: auto !important;
417
+}
418
+
419
+.cllridcls {
420
+  position: relative;
421
+  display: inline;
422
+  font-size: 17px;
423
+  color: #000000;
424
+  z-index: 3;
425
+}
426
+
427
+.fortooltipinit {
428
+  position: relative;
429
+  display: inline-block;
430
+  float: right;
431
+  font-size: 15px;
432
+  color: #000000;
433
+  z-index: 3;
434
+}
435
+
436
+.fortooltipinit #infosetid {
437
+  display: block;
438
+  position: relative;
439
+  margin: 3px 9px 0 0;
440
+  color: #000000;
441
+  font-size: 19px;
442
+  font-weight: 700;
443
+  font-family: 'Open Sans';
444
+  font-style: italic;
445
+}
446
+
447
+.fortooltip {
448
+  position: relative;
449
+  display: inline-block;
450
+  font-size: 15px;
451
+  color: #000000;
452
+  z-index: 2;
453
+}
454
+
455
+.fortooltip #infonumber {
456
+  color: #000000;
457
+  font-size: 19px;
458
+  font-weight: 700;
459
+  font-family: 'Open Sans';
460
+  font-style: italic;
461
+  padding: 0px 0px 3px 3px;
462
+}
463
+
464
+.fortooltipsec {
465
+  position: relative;
466
+  display: inline-block;
467
+  font-size: 15px;
468
+  color: #000000;
469
+  padding: 0px 0px 4px 0px;
470
+  z-index: 1;
471
+}
472
+
473
+.fortooltipsec #infoformat {
474
+  color: #000000;
475
+  font-size: 19px;
476
+  font-weight: 700;
477
+  font-family: 'Open Sans';
478
+  font-style: italic;
479
+  padding: 0px 0px 3px 3px;
480
+}
481
+
482
+.fortooltipinit .calleridtooltip {
483
+  display: block;
484
+  position: absolute;
485
+  visibility: hidden;
486
+  width: 264px;
487
+  background-color: #fafafa;
488
+  font-size: 14px;
489
+  font-weight: 700;
490
+  color: #595959;
491
+  text-align: left;
492
+  border-radius: 5px;
493
+  padding: 5px 10px;
494
+  margin: -4px 0px 0px -214px;
495
+  box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
496
+  -webkit-box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
497
+  -moz-box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
498
+}
499
+
500
+.fortooltipinit:hover .calleridtooltip {
501
+  visibility: visible;
502
+}
503
+
504
+.fortooltip .fortooltiptext {
505
+  display: block;
506
+  position: absolute;
507
+  visibility: hidden;
508
+  width: 256px;
509
+  background-color: #fafafa;
510
+  font-size: 14px;
511
+  font-weight: 700;
512
+  color: #595959;
513
+  text-align: left;
514
+  border-radius: 5px;
515
+  padding: 5px 10px;
516
+  margin: -10px 0 0 -4px;
517
+  box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
518
+  -webkit-box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
519
+  -moz-box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
520
+}
521
+
522
+.fortooltip:hover .fortooltiptext {
523
+  visibility: visible;
524
+}
525
+
526
+.fortooltipsec .fortooltiptextsec {
527
+  display: block;
528
+  position: absolute;
529
+  visibility: hidden;
530
+  width: 256px;
531
+  background-color: #fafafa;
532
+  font-size: 14px;
533
+  font-weight: 700;
534
+  color: #595959;
535
+  text-align: left;
536
+  border-radius: 5px;
537
+  padding: 5px 10px;
538
+  margin: -9px 0 0 -4px;
539
+  box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
540
+  -webkit-box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
541
+  -moz-box-shadow: 0 0 23px rgba(0, 0, 0, 0.23);
542
+}
543
+
544
+.fortooltipsec:hover .fortooltiptextsec {
545
+  visibility: visible;
546
+}
547
+
548
+.fileupload {
549
+  display: none;
550
+}
551
+
552
+div > label {
553
+  position: relative;
554
+}
555
+
556
+.uploadflbt {
557
+  width: 411px;
558
+}
559
+
560
+label span {
561
+  display: inline-block;
562
+  min-width: 110px;
563
+  padding: 0px 0px 8px 0px;
564
+}
565
+
566
+.uploadflbt .icon-upload {
567
+  display: inline;
568
+}
569
+
570
+.pfprompt {
571
+  font-size: 17px;
572
+  font-weight: 700;
573
+  color: #6d6c6c;
574
+}
575
+
576
+.fileuploadstl,.filesfromnc {
577
+  display: block;
578
+  font-size: 17px;
579
+  font-weight: 700;
580
+  color: #000000;
581
+}
582
+
583
+#filestotsize {
584
+  display: none;
585
+  position: relative;
586
+  height:auto;
587
+  margin: 0px 0px 16px 0px;
588
+  font-family: 'Open Sans';
589
+  color: #18bf6e;
590
+  font-size: 14px;
591
+  font-weight: 700;
592
+}
593
+
594
+#filessizetext {
595
+  display: inline;
596
+  position: relative;
597
+  padding-left: 10px;
598
+}
599
+
600
+#fileuploadednm .indivflcls {
601
+  display: inline-block;
602
+  position: relative;
603
+  height:auto;
604
+  max-width: 90%;
605
+  overflow: visible;
606
+  white-space: normal;
607
+  word-break: break-all;
608
+  text-overflow: ellipsis;
609
+  font-size: 15px;
610
+  color: #0e6ba0;
611
+}
612
+
613
+.indivflcls:hover {
614
+  cursor: pointer;
615
+  text-decoration: underline;
616
+}
617
+
618
+.indupfldl {
619
+  position: relative;
620
+  display: inline-block;
621
+  float: right;
622
+  cursor: pointer;
623
+  width: 20px;
624
+  color: #0e6ba0;
625
+  text-align: center;
626
+  font-size: 15px;
627
+}
628
+
629
+#fileuploadednm .indupfldl:hover {
630
+  background-color: #e8f6ff;
631
+  cursor: pointer;
632
+}
633
+
634
+#filespickednc .indivflpckd {
635
+  display: inline-block;
636
+  position: relative;
637
+  height:auto;
638
+  max-width: 90%;
639
+  overflow: visible;
640
+  white-space: normal;
641
+  word-break: break-all;
642
+  text-overflow: ellipsis;
643
+  font-size: 15px;
644
+  color: #0e6ba0;
645
+}
646
+
647
+.indivflpckd:hover {
648
+  cursor: pointer;
649
+  text-decoration: underline;
650
+}
651
+
652
+.indpckfldl {
653
+  position: relative;
654
+  display: inline-block;
655
+  float: right;
656
+  cursor: pointer;
657
+  width: 20px;
658
+  color: #0e6ba0;
659
+  font-size: 15px;
660
+  text-align: center;
661
+}
662
+
663
+#filespickednc .indpckfldl:hover {
664
+  background-color: #e8f6ff;
665
+  cursor: pointer;
666
+}
667
+
668
+select, button, .button, input:not([type="range"]), textarea, div[contenteditable="true"], .pager li a {
669
+  margin: 0px 0px 0px 0px;
670
+}
671
+
672
+#dirbuttons {
673
+  margin-top: 28px;
674
+}
675
+
676
+button, .button, input[type="button"], input[type="submit"], input[type="reset"] {
677
+  padding: 6px 20px;
678
+  width: auto;
679
+  min-height: 22px;
680
+  cursor: pointer;
681
+  box-sizing: border-box;
682
+  background-color: var(--color-background-dark);
683
+}
684
+
685
+select {
686
+  width: 130px;
687
+  min-height: 28px;
688
+  box-sizing: border-box;
689
+  padding-right: 0px !important;
690
+}
691
+
692
+#uploadfileforfax {
693
+  margin-left: 19px;
694
+}
695
+
696
+#pickFromNext, #uploadFile {
697
+  display: inline-block;
698
+  position: relative;
699
+  font-size: 15px;
700
+  font-weight: 700;
701
+  color: #6d6c6c;
702
+}
703
+
704
+#choosefilen {
705
+  display: inline;
706
+  position: relative;
707
+  margin: 0px 0px 20px 16px;
708
+  padding-top: 15px;
709
+  background-image: url('../img/nextcloud_logo.svg');
710
+  background-repeat: no-repeat;
711
+  background-size: 110% 125%;
712
+  background-position: center center;
713
+  min-width: 66px;
714
+  min-height: 30px;
715
+  cursor:pointer;
716
+}
717
+
718
+#choosefilen:active {
719
+  background-image: url('../img/nextcloud_logo_bright.svg');
720
+  background-repeat: no-repeat;
721
+  background-size: 110% 125%;
722
+  background-position: center center;
723
+  min-width: 66px;
724
+  min-height: 30px;
725
+}
726
+
727
+#checkbalance {
728
+  display: block;
729
+  position: relative;
730
+  min-width: 24px;
731
+  min-height: 24px;
732
+  float: right;
733
+  padding-left: 0;
734
+  margin-top: 0.3px;
735
+  margin-right: 4px;
736
+  background-image: url('../img/refresh_logo.svg');
737
+  background-repeat: no-repeat;
738
+  background-size: 110% 110%;
739
+  background-position: center center;
740
+  cursor: pointer;
741
+  background-color: #FFFFFF;
742
+}
743
+
744
+#selectcalleridbttn {
745
+  display: block;
746
+  position: relative;
747
+  min-width: 24px;
748
+  min-height: 24px;
749
+  float: right;
750
+  padding-left: 0;
751
+  margin-top: 2.8px;
752
+  margin-right: 4px;
753
+  background-image: url('../img/refresh_logo.svg');
754
+  background-repeat: no-repeat;
755
+  background-size: 110% 110%;
756
+  background-position: center center;
757
+  cursor: pointer;
758
+  background-color: #ffffff;
759
+}
760
+
761
+#faxnumbersdiv #pickid {
762
+  display: inline-block;
763
+  position: relative;
764
+  font-family: 'Open Sans';
765
+  font-size: 15px;
766
+  font-weight: 700;
767
+  margin: 2px 3px 3px 14px;
768
+  color: #ffffff;
769
+}
770
+
771
+#get_notification {
772
+  display: block;
773
+  margin-bottom: 8px;
774
+}
775
+
776
+#get_notification:hover {
777
+  cursor: pointer;
778
+}
779
+
780
+.pax_fax_boxspec {
781
+  display: inline-block;
782
+  box-sizing: content-box;
783
+  margin: 8px 0px !important;
784
+  width: 70%;
785
+  font-size: 14px !important;
786
+}
787
+
788
+.setlabeltext {
789
+  font-size: 15px;
790
+}
791
+
792
+#countryCallCode {
793
+  color: #1b60ba;
794
+}
795
+
796
+#countryCallCode:hover {
797
+  color: #0D3B78;
798
+}
799
+
800
+.openfaxfolder {
801
+  display: block;
802
+  position: relative;
803
+  margin: 10px 0px 10px 0px !important;
804
+  padding: 7px 0px 7px 0px;
805
+  width: 100% !important;
806
+  color: #FFFFFF !important;
807
+  font-family: 'Open Sans' !important;
808
+  font-size: 15px !important;
809
+  background-color: #CB99C5 !important;
810
+}
811
+
812
+.openfaxfolder:hover {
813
+  border: 2px;
814
+  background-color: #c18bba !important;
815
+}
816
+
817
+.openfaxfolder:active {
818
+  background-color: #b777af !important;
819
+  border: 2px;
820
+  color: #FFFFFF !important;
821
+  border-color: #b777af;
822
+}
823
+
824
+.openfaxfolder:focus {
825
+  background-color: #a3669b !important;
826
+  border: 2px;
827
+  border-color: #a3669b;
828
+}
829
+
830
+.indgenflcls, .indgenpckfls {
831
+  display: block;
832
+  margin: 0px 6px 14px 6px;
833
+}
834
+
835
+#pax_fax_adm, #notification_email, #save_fax_settings {
836
+  font-family: 'Open Sans';
837
+}
838
+
839
+#settings-dscr {
840
+  font-size: 15.6px;
841
+}
842
+
843
+/*Changes for dark themes*/
844
+[data-theme-dark] .fortooltipinit #infosetid,
845
+[data-theme-dark-highcontrast] .fortooltipinit #infosetid {
846
+  display: block;
847
+  position: relative;
848
+  margin: 4px 9px 0px 0px;
849
+  color: #fafafa;
850
+  font-size: 19px;
851
+  font-weight: 700;
852
+  font-family: 'Open Sans';
853
+  font-style: italic;
854
+}
855
+
856
+[data-theme-dark] .fortooltip #infonumber,
857
+[data-theme-dark-highcontrast] .fortooltip #infonumber {
858
+  color: #fafafa;
859
+  font-size: 19px;
860
+  font-weight: 700;
861
+  font-family: 'Open Sans';
862
+  font-style: italic;
863
+  padding: 0px 0px 3px 3px;
864
+}
865
+
866
+[data-theme-dark] .fortooltipsec #infoformat,
867
+[data-theme-dark-highcontrast] .fortooltipsec #infoformat {
868
+  color: #fafafa;
869
+  font-size: 19px;
870
+  font-weight: 700;
871
+  font-family: 'Open Sans';
872
+  font-style: italic;
873
+  padding: 0px 0px 3px 3px;
874
+}
875
+
876
+[data-theme-dark] .faxnbformat a,
877
+[data-theme-dark-highcontrast] .faxnbformat a {
878
+  color: #cedfff !important;
879
+}
880
+
881
+[data-theme-dark] .faxnbformat font,
882
+[data-theme-dark-highcontrast] .faxnbformat font {
883
+  color: #f7547a !important;
884
+}
885
+
886
+[data-theme-dark] #faxto,
887
+[data-theme-dark-highcontrast] #faxto {
888
+  display: block;
889
+  width: 97%;
890
+  max-height: 22px;
891
+  margin: 3px 0px 20px 0px;
892
+  padding: 1px 13px 0px 13px;
893
+  color: #fafafa;
894
+  font-size: 15px;
895
+  font-weight: 700;
896
+  border-radius: 20px;
897
+}
898
+
899
+[data-theme-dark] .pfheader,
900
+[data-theme-dark-highcontrast] .pfheader {
901
+  display: block;
902
+  position: relative;
903
+  margin: 0px 0px 7px 0px;
904
+  color: #fafafa;
905
+  font-size: 15px;
906
+  font-weight: 700;
907
+}
908
+
909
+[data-theme-dark] #uploadFile,
910
+[data-theme-dark] #pickFromNext,
911
+[data-theme-dark-highcontrast] #uploadFile,
912
+[data-theme-dark-highcontrast] #pickFromNext {
913
+  display: inline-block;
914
+  position: relative;
915
+  font-size: 15px;
916
+  font-weight: 700;
917
+  color: #fafafa;
918
+}
919
+
920
+[data-theme-dark] #uploadfileforfax,
921
+[data-theme-dark-highcontrast] #uploadfileforfax {
922
+  margin-left: 19px;
923
+  background-color: #898989;
924
+}
925
+
926
+[data-theme-dark] #fileuploadednm .indivflcls,
927
+[data-theme-dark-highcontrast] #fileuploadednm .indivflcls {
928
+  display: inline-block;
929
+  position: relative;
930
+  height: auto;
931
+  max-width: 90%;
932
+  overflow: visible;
933
+  white-space: normal;
934
+  word-break: break-all;
935
+  text-overflow: ellipsis;
936
+  font-size: 15px;
937
+  color: #c2e9ff;
938
+}
939
+
940
+[data-theme-dark] .indupfldl,
941
+[data-theme-dark-highcontrast] .indupfldl {
942
+  position: relative;
943
+  display: inline-block;
944
+  float: right;
945
+  cursor: pointer;
946
+  width: 20px;
947
+  color: #c2e9ff;
948
+  text-align: center;
949
+  font-size: 15px;
950
+}
951
+
952
+[data-theme-dark] #filespickednc .indivflpckd,
953
+[data-theme-dark-highcontrast] #filespickednc .indivflpckd {
954
+  display: inline-block;
955
+  position: relative;
956
+  height: auto;
957
+  max-width: 90%;
958
+  overflow: visible;
959
+  white-space: normal;
960
+  word-break: break-all;
961
+  text-overflow: ellipsis;
962
+  font-size: 15px;
963
+  color: #c2e9ff;
964
+}
965
+
966
+[data-theme-dark] .indpckfldl,
967
+[data-theme-dark-highcontrast] .indpckfldl {
968
+  position: relative;
969
+  display: inline-block;
970
+  float: right;
971
+  cursor: pointer;
972
+  width: 20px;
973
+  color: #c2e9ff;
974
+  text-align: center;
975
+}
0 976
new file mode 100644
... ...
@@ -0,0 +1,201 @@
1
+Apache License
2
+                           Version 2.0, January 2004
3
+                        http://www.apache.org/licenses/
4
+
5
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+   1. Definitions.
8
+
9
+      "License" shall mean the terms and conditions for use, reproduction,
10
+      and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+      "Licensor" shall mean the copyright owner or entity authorized by
13
+      the copyright owner that is granting the License.
14
+
15
+      "Legal Entity" shall mean the union of the acting entity and all
16
+      other entities that control, are controlled by, or are under common
17
+      control with that entity. For the purposes of this definition,
18
+      "control" means (i) the power, direct or indirect, to cause the
19
+      direction or management of such entity, whether by contract or
20
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+      outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+      "You" (or "Your") shall mean an individual or Legal Entity
24
+      exercising permissions granted by this License.
25
+
26
+      "Source" form shall mean the preferred form for making modifications,
27
+      including but not limited to software source code, documentation
28
+      source, and configuration files.
29
+
30
+      "Object" form shall mean any form resulting from mechanical
31
+      transformation or translation of a Source form, including but
32
+      not limited to compiled object code, generated documentation,
33
+      and conversions to other media types.
34
+
35
+      "Work" shall mean the work of authorship, whether in Source or
36
+      Object form, made available under the License, as indicated by a
37
+      copyright notice that is included in or attached to the work
38
+      (an example is provided in the Appendix below).
39
+
40
+      "Derivative Works" shall mean any work, whether in Source or Object
41
+      form, that is based on (or derived from) the Work and for which the
42
+      editorial revisions, annotations, elaborations, or other modifications
43
+      represent, as a whole, an original work of authorship. For the purposes
44
+      of this License, Derivative Works shall not include works that remain
45
+      separable from, or merely link (or bind by name) to the interfaces of,
46
+      the Work and Derivative Works thereof.
47
+
48
+      "Contribution" shall mean any work of authorship, including
49
+      the original version of the Work and any modifications or additions
50
+      to that Work or Derivative Works thereof, that is intentionally
51
+      submitted to Licensor for inclusion in the Work by the copyright owner
52
+      or by an individual or Legal Entity authorized to submit on behalf of
53
+      the copyright owner. For the purposes of this definition, "submitted"
54
+      means any form of electronic, verbal, or written communication sent
55
+      to the Licensor or its representatives, including but not limited to
56
+      communication on electronic mailing lists, source code control systems,
57
+      and issue tracking systems that are managed by, or on behalf of, the
58
+      Licensor for the purpose of discussing and improving the Work, but
59
+      excluding communication that is conspicuously marked or otherwise
60
+      designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+      "Contributor" shall mean Licensor and any individual or Legal Entity
63
+      on behalf of whom a Contribution has been received by Licensor and
64
+      subsequently incorporated within the Work.
65
+
66
+   2. Grant of Copyright License. Subject to the terms and conditions of
67
+      this License, each Contributor hereby grants to You a perpetual,
68
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+      copyright license to reproduce, prepare Derivative Works of,
70
+      publicly display, publicly perform, sublicense, and distribute the
71
+      Work and such Derivative Works in Source or Object form.
72
+
73
+   3. Grant of Patent License. Subject to the terms and conditions of
74
+      this License, each Contributor hereby grants to You a perpetual,
75
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+      (except as stated in this section) patent license to make, have made,
77
+      use, offer to sell, sell, import, and otherwise transfer the Work,
78
+      where such license applies only to those patent claims licensable
79
+      by such Contributor that are necessarily infringed by their
80
+      Contribution(s) alone or by combination of their Contribution(s)
81
+      with the Work to which such Contribution(s) was submitted. If You
82
+      institute patent litigation against any entity (including a
83
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+      or a Contribution incorporated within the Work constitutes direct
85
+      or contributory patent infringement, then any patent licenses
86
+      granted to You under this License for that Work shall terminate
87
+      as of the date such litigation is filed.
88
+
89
+   4. Redistribution. You may reproduce and distribute copies of the
90
+      Work or Derivative Works thereof in any medium, with or without
91
+      modifications, and in Source or Object form, provided that You
92
+      meet the following conditions:
93
+
94
+      (a) You must give any other recipients of the Work or
95
+          Derivative Works a copy of this License; and
96
+
97
+      (b) You must cause any modified files to carry prominent notices
98
+          stating that You changed the files; and
99
+
100
+      (c) You must retain, in the Source form of any Derivative Works
101
+          that You distribute, all copyright, patent, trademark, and
102
+          attribution notices from the Source form of the Work,
103
+          excluding those notices that do not pertain to any part of
104
+          the Derivative Works; and
105
+
106
+      (d) If the Work includes a "NOTICE" text file as part of its
107
+          distribution, then any Derivative Works that You distribute must
108
+          include a readable copy of the attribution notices contained
109
+          within such NOTICE file, excluding those notices that do not
110
+          pertain to any part of the Derivative Works, in at least one
111
+          of the following places: within a NOTICE text file distributed
112
+          as part of the Derivative Works; within the Source form or
113
+          documentation, if provided along with the Derivative Works; or,
114
+          within a display generated by the Derivative Works, if and
115
+          wherever such third-party notices normally appear. The contents
116
+          of the NOTICE file are for informational purposes only and
117
+          do not modify the License. You may add Your own attribution
118
+          notices within Derivative Works that You distribute, alongside
119
+          or as an addendum to the NOTICE text from the Work, provided
120
+          that such additional attribution notices cannot be construed
121
+          as modifying the License.
122
+
123
+      You may add Your own copyright statement to Your modifications and
124
+      may provide additional or different license terms and conditions
125
+      for use, reproduction, or distribution of Your modifications, or
126
+      for any such Derivative Works as a whole, provided Your use,
127
+      reproduction, and distribution of the Work otherwise complies with
128
+      the conditions stated in this License.
129
+
130
+   5. Submission of Contributions. Unless You explicitly state otherwise,
131
+      any Contribution intentionally submitted for inclusion in the Work
132
+      by You to the Licensor shall be under the terms and conditions of
133
+      this License, without any additional terms or conditions.
134
+      Notwithstanding the above, nothing herein shall supersede or modify
135
+      the terms of any separate license agreement you may have executed
136
+      with Licensor regarding such Contributions.
137
+
138
+   6. Trademarks. This License does not grant permission to use the trade
139
+      names, trademarks, service marks, or product names of the Licensor,
140
+      except as required for reasonable and customary use in describing the
141
+      origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+   7. Disclaimer of Warranty. Unless required by applicable law or
144
+      agreed to in writing, Licensor provides the Work (and each
145
+      Contributor provides its Contributions) on an "AS IS" BASIS,
146
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+      implied, including, without limitation, any warranties or conditions
148
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+      PARTICULAR PURPOSE. You are solely responsible for determining the
150
+      appropriateness of using or redistributing the Work and assume any
151
+      risks associated with Your exercise of permissions under this License.
152
+
153
+   8. Limitation of Liability. In no event and under no legal theory,
154
+      whether in tort (including negligence), contract, or otherwise,
155
+      unless required by applicable law (such as deliberate and grossly
156
+      negligent acts) or agreed to in writing, shall any Contributor be
157
+      liable to You for damages, including any direct, indirect, special,
158
+      incidental, or consequential damages of any character arising as a
159
+      result of this License or out of the use or inability to use the
160
+      Work (including but not limited to damages for loss of goodwill,
161
+      work stoppage, computer failure or malfunction, or any and all
162
+      other commercial damages or losses), even if such Contributor
163
+      has been advised of the possibility of such damages.
164
+
165
+   9. Accepting Warranty or Additional Liability. While redistributing
166
+      the Work or Derivative Works thereof, You may choose to offer,
167
+      and charge a fee for, acceptance of support, warranty, indemnity,
168
+      or other liability obligations and/or rights consistent with this
169
+      License. However, in accepting such obligations, You may act only
170
+      on Your own behalf and on Your sole responsibility, not on behalf
171
+      of any other Contributor, and only if You agree to indemnify,
172
+      defend, and hold each Contributor harmless for any liability
173
+      incurred by, or claims asserted against, such Contributor by reason
174
+      of your accepting any such warranty or additional liability.
175
+
176
+   END OF TERMS AND CONDITIONS
177
+
178
+   APPENDIX: How to apply the Apache License to your work.
179
+
180
+      To apply the Apache License to your work, attach the following
181
+      boilerplate notice, with the fields enclosed by brackets "[]"
182
+      replaced with your own identifying information. (Don't include
183
+      the brackets!)  The text should be enclosed in the appropriate
184
+      comment syntax for the file format. We also recommend that a
185
+      file or class name and description of purpose be included on the
186
+      same "printed page" as the copyright notice for easier
187
+      identification within third-party archives.
188
+
189
+   Copyright [yyyy] [name of copyright owner]
190
+
191
+   Licensed under the Apache License, Version 2.0 (the "License");
192
+   you may not use this file except in compliance with the License.
193
+   You may obtain a copy of the License at
194
+
195
+       http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+   Unless required by applicable law or agreed to in writing, software
198
+   distributed under the License is distributed on an "AS IS" BASIS,
199
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+   See the License for the specific language governing permissions and
201
+   limitations under the License.
0 202
\ No newline at end of file
1 203
new file mode 100644
2 204
Binary files /dev/null and b/fonts/Inter-Bold.woff differ
3 205
new file mode 100644
4 206
Binary files /dev/null and b/fonts/Inter-Bold.woff2 differ
5 207
new file mode 100644
6 208
Binary files /dev/null and b/fonts/Inter-BoldItalic.woff differ
7 209
new file mode 100644
8 210
Binary files /dev/null and b/fonts/Inter-BoldItalic.woff2 differ
9 211
new file mode 100644
10 212
Binary files /dev/null and b/fonts/Inter-ExtraBold.woff differ
11 213
new file mode 100644
12 214
Binary files /dev/null and b/fonts/Inter-ExtraBold.woff2 differ
13 215
new file mode 100644
14 216
Binary files /dev/null and b/fonts/Inter-ExtraBoldItalic.woff differ
15 217
new file mode 100644
16 218
Binary files /dev/null and b/fonts/Inter-ExtraBoldItalic.woff2 differ
17 219
new file mode 100644
18 220
Binary files /dev/null and b/fonts/Inter-Italic.woff differ
19 221
new file mode 100644
20 222
Binary files /dev/null and b/fonts/Inter-Italic.woff2 differ
21 223
new file mode 100644
22 224
Binary files /dev/null and b/fonts/Inter-Medium.woff differ
23 225
new file mode 100644
24 226
Binary files /dev/null and b/fonts/Inter-Medium.woff2 differ
25 227
new file mode 100644
26 228
Binary files /dev/null and b/fonts/Inter-MediumItalic.woff differ
27 229
new file mode 100644
28 230
Binary files /dev/null and b/fonts/Inter-MediumItalic.woff2 differ
29 231
new file mode 100644
30 232
Binary files /dev/null and b/fonts/Inter-Regular.woff differ
31 233
new file mode 100644
32 234
Binary files /dev/null and b/fonts/Inter-Regular.woff2 differ
33 235
new file mode 100644
34 236
Binary files /dev/null and b/fonts/Inter-SemiBold.woff differ
35 237
new file mode 100644
36 238
Binary files /dev/null and b/fonts/Inter-SemiBold.woff2 differ
37 239
new file mode 100644
38 240
Binary files /dev/null and b/fonts/Inter-SemiBoldItalic.woff differ
39 241
new file mode 100644
40 242
Binary files /dev/null and b/fonts/Inter-SemiBoldItalic.woff2 differ
41 243
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+Copyright (c) 2016-2018 The Inter UI Project Authors (me@rsms.me)
2
+
3
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
5
+
6
+-----------------------------------------------------------
7
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
8
+-----------------------------------------------------------
9
+
10
+PREAMBLE
11
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
12
+
13
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
14
+
15
+DEFINITIONS
16
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
17
+
18
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
19
+
20
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
21
+
22
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
23
+
24
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
25
+
26
+PERMISSION & CONDITIONS
27
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
28
+
29
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
30
+
31
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
32
+
33
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
34
+
35
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
36
+
37
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
38
+
39
+TERMINATION
40
+This license becomes null and void if any of the above conditions are not met.
41
+
42
+DISCLAIMER
43
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
0 44
\ No newline at end of file
1 45
new file mode 100644
2 46
Binary files /dev/null and b/fonts/opensans-bold.woff differ
3 47
new file mode 100644
4 48
Binary files /dev/null and b/fonts/opensans-bold.woff2 differ
5 49
new file mode 100644
6 50
Binary files /dev/null and b/fonts/opensans-bolditalic.woff differ
7 51
new file mode 100644
8 52
Binary files /dev/null and b/fonts/opensans-bolditalic.woff2 differ
9 53
new file mode 100644
10 54
Binary files /dev/null and b/fonts/opensans-extrabold.woff differ
11 55
new file mode 100644
12 56
Binary files /dev/null and b/fonts/opensans-extrabold.woff2 differ
13 57
new file mode 100644
14 58
Binary files /dev/null and b/fonts/opensans-extrabolditalic.woff differ
15 59
new file mode 100644
16 60
Binary files /dev/null and b/fonts/opensans-extrabolditalic.woff2 differ
17 61
new file mode 100644
18 62
Binary files /dev/null and b/fonts/opensans-italic.woff differ
19 63
new file mode 100644
20 64
Binary files /dev/null and b/fonts/opensans-italic.woff2 differ
21 65
new file mode 100644
22 66
Binary files /dev/null and b/fonts/opensans-light.woff differ
23 67
new file mode 100644
24 68
Binary files /dev/null and b/fonts/opensans-light.woff2 differ
25 69
new file mode 100644
26 70
Binary files /dev/null and b/fonts/opensans-lightitalic.woff differ
27 71
new file mode 100644
28 72
Binary files /dev/null and b/fonts/opensans-lightitalic.woff2 differ
29 73
new file mode 100644
30 74
Binary files /dev/null and b/fonts/opensans-regular.woff differ
31 75
new file mode 100644
32 76
Binary files /dev/null and b/fonts/opensans-regular.woff2 differ
33 77
new file mode 100644
34 78
Binary files /dev/null and b/fonts/opensans-semibold.woff differ
35 79
new file mode 100644
36 80
Binary files /dev/null and b/fonts/opensans-semibold.woff2 differ
37 81
new file mode 100644
38 82
Binary files /dev/null and b/fonts/opensans-semibolditalic.woff differ
39 83
new file mode 100644
40 84
Binary files /dev/null and b/fonts/opensans-semibolditalic.woff2 differ
41 85
new file mode 100644
... ...
@@ -0,0 +1,78 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<svg
3
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+   xmlns:cc="http://creativecommons.org/ns#"
5
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+   xmlns:svg="http://www.w3.org/2000/svg"
7
+   xmlns="http://www.w3.org/2000/svg"
8
+   version="1.1"
9
+   id="Layer_1"
10
+   x="0px"
11
+   y="0px"
12
+   width="32px"
13
+   height="32px"
14
+   viewBox="0 0 520.78698 498.00367"
15
+   enable-background="new 0 0 612 596.409"
16
+   xml:space="preserve"><metadata
17
+   id="metadata21"><rdf:RDF><cc:Work
18
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
19
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
20
+   id="defs19">
21
+	
22
+	
23
+</defs>
24
+
25
+<g
26
+   id="g930"><g
27
+     id="g12"
28
+     style="stroke:#000000;stroke-opacity:1"
29
+     transform="translate(-46.267,-55.482286)">
30
+		
31
+			<rect
32
+   x="191.73238"
33
+   y="53.617386"
34
+   fill-rule="evenodd"
35
+   clip-rule="evenodd"
36
+   fill="#ffffff"
37
+   stroke="#000000"
38
+   stroke-width="11.8612"
39
+   stroke-miterlimit="2.6131"
40
+   width="301.64124"
41
+   height="287.20682"
42
+   id="rect4"
43
+   ry="20.194973"
44
+   style="stroke:#000000;stroke-opacity:1" />
45
+		<path
46
+   fill-rule="evenodd"
47
+   clip-rule="evenodd"
48
+   stroke="#000000"
49
+   stroke-width="0.216"
50
+   stroke-miterlimit="2.6131"
51
+   d="M 238.181,117.921 H 446.46 c 2.791,0 5.075,2.284 5.075,5.076 v 0 c 0,2.792 -2.284,5.076 -5.075,5.076 H 238.181 c -2.792,0 -5.076,-2.284 -5.076,-5.076 v 0 c 0,-2.792 2.284,-5.076 5.076,-5.076 z"
52
+   id="path6"
53
+   style="stroke:#000000;stroke-opacity:1" />
54
+		<path
55
+   fill-rule="evenodd"
56
+   clip-rule="evenodd"
57
+   stroke="#000000"
58
+   stroke-width="0.216"
59
+   stroke-miterlimit="2.6131"
60
+   d="m 238.137,185.509 h 208.831 c 2.641,0 4.8,2.16 4.8,4.8 v 0 c 0,2.64 -2.159,4.8 -4.8,4.8 H 238.137 c -2.64,0 -4.8,-2.16 -4.8,-4.8 v 0 c 0,-2.64 2.16,-4.8 4.8,-4.8 z"
61
+   id="path8"
62
+   style="stroke:#000000;stroke-opacity:1" />
63
+		<path
64
+   fill-rule="evenodd"
65
+   clip-rule="evenodd"
66
+   stroke="#000000"
67
+   stroke-width="0.216"
68
+   stroke-miterlimit="2.6131"
69
+   d="M 238.221,251.701 H 447.08 c 2.633,0 4.786,2.153 4.786,4.786 v 0 c 0,2.632 -2.153,4.786 -4.786,4.786 H 238.221 c -2.632,0 -4.786,-2.153 -4.786,-4.786 v 0 c 0.001,-2.633 2.154,-4.786 4.786,-4.786 z"
70
+   id="path10"
71
+   style="stroke:#000000;stroke-opacity:1" />
72
+	</g><path
73
+     fill-rule="evenodd"
74
+     clip-rule="evenodd"
75
+     fill="#000000"
76
+     d="m 103,257.69571 h 391.899 c 13.964,0 25.388,13.757 25.388,30.572 v 129.178 c 0,16.816 -11.424,30.572 -25.388,30.572 H 103.01 v 3.455 c 0,28.19 -23.065,51.254 -51.255,51.254 v 0 c -28.19,0 -51.255,-23.063 -51.255,-51.254 v -192.926 c 0,-28.19 23.065,-51.255 51.255,-51.255 v 0 c 27.906,0 50.785,22.602 51.245,50.404 z m 81.565,34.742 c -6.29,0 -11.435,5.146 -11.435,11.435 v 30.49 c 0,6.288 5.145,11.435 11.435,11.435 h 229.267 c 6.29,0 11.435,-5.146 11.435,-11.435 v -30.49 c 0,-6.289 -5.145,-11.435 -11.435,-11.435 z"
77
+     id="path2"
78
+     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1" /></g></svg>
0 79
new file mode 100644
... ...
@@ -0,0 +1,78 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<svg
3
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+   xmlns:cc="http://creativecommons.org/ns#"
5
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+   xmlns:svg="http://www.w3.org/2000/svg"
7
+   xmlns="http://www.w3.org/2000/svg"
8
+   version="1.1"
9
+   id="Layer_1"
10
+   x="0px"
11
+   y="0px"
12
+   width="32px"
13
+   height="32px"
14
+   viewBox="0 0 520.78698 498.00367"
15
+   enable-background="new 0 0 612 596.409"
16
+   xml:space="preserve"><metadata
17
+   id="metadata21"><rdf:RDF><cc:Work
18
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
19
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
20
+   id="defs19">
21
+	
22
+	
23
+</defs>
24
+
25
+<g
26
+   id="g887"
27
+   transform="translate(-46.267,-55.482286)"><g
28
+     id="g12"
29
+     style="stroke:#ffffff;stroke-opacity:1">
30
+		
31
+			<rect
32
+   x="191.73238"
33
+   y="53.617386"
34
+   fill-rule="evenodd"
35
+   clip-rule="evenodd"
36
+   fill="#ffffff"
37
+   stroke="#000000"
38
+   stroke-width="11.8612"
39
+   stroke-miterlimit="2.6131"
40
+   width="301.64124"
41
+   height="287.20682"
42
+   id="rect4"
43
+   ry="20.194973"
44
+   style="stroke:#ffffff;stroke-opacity:1" />
45
+		<path
46
+   fill-rule="evenodd"
47
+   clip-rule="evenodd"
48
+   stroke="#000000"
49
+   stroke-width="0.216"
50
+   stroke-miterlimit="2.6131"
51
+   d="M 238.181,117.921 H 446.46 c 2.791,0 5.075,2.284 5.075,5.076 v 0 c 0,2.792 -2.284,5.076 -5.075,5.076 H 238.181 c -2.792,0 -5.076,-2.284 -5.076,-5.076 v 0 c 0,-2.792 2.284,-5.076 5.076,-5.076 z"
52
+   id="path6"
53
+   style="stroke:#ffffff;stroke-opacity:1" />
54
+		<path
55
+   fill-rule="evenodd"
56
+   clip-rule="evenodd"
57
+   stroke="#000000"
58
+   stroke-width="0.216"
59
+   stroke-miterlimit="2.6131"
60
+   d="m 238.137,185.509 h 208.831 c 2.641,0 4.8,2.16 4.8,4.8 v 0 c 0,2.64 -2.159,4.8 -4.8,4.8 H 238.137 c -2.64,0 -4.8,-2.16 -4.8,-4.8 v 0 c 0,-2.64 2.16,-4.8 4.8,-4.8 z"
61
+   id="path8"
62
+   style="stroke:#ffffff;stroke-opacity:1" />
63
+		<path
64
+   fill-rule="evenodd"
65
+   clip-rule="evenodd"
66
+   stroke="#000000"
67
+   stroke-width="0.216"
68
+   stroke-miterlimit="2.6131"
69
+   d="M 238.221,251.701 H 447.08 c 2.633,0 4.786,2.153 4.786,4.786 v 0 c 0,2.632 -2.153,4.786 -4.786,4.786 H 238.221 c -2.632,0 -4.786,-2.153 -4.786,-4.786 v 0 c 0.001,-2.633 2.154,-4.786 4.786,-4.786 z"
70
+   id="path10"
71
+   style="stroke:#ffffff;stroke-opacity:1" />
72
+	</g><path
73
+     fill-rule="evenodd"
74
+     clip-rule="evenodd"
75
+     fill="#000000"
76
+     d="m 149.267,313.178 h 391.899 c 13.964,0 25.388,13.757 25.388,30.572 v 129.178 c 0,16.816 -11.424,30.572 -25.388,30.572 H 149.277 v 3.455 c 0,28.19 -23.065,51.254 -51.255,51.254 v 0 c -28.19,0 -51.255,-23.063 -51.255,-51.254 V 314.029 c 0,-28.19 23.065,-51.255 51.255,-51.255 v 0 c 27.906,0 50.785,22.602 51.245,50.404 z m 81.565,34.742 c -6.29,0 -11.435,5.146 -11.435,11.435 v 30.49 c 0,6.288 5.145,11.435 11.435,11.435 h 229.267 c 6.29,0 11.435,-5.146 11.435,-11.435 v -30.49 c 0,-6.289 -5.145,-11.435 -11.435,-11.435 z"
77
+     id="path2"
78
+     style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" /></g></svg>
0 79
new file mode 100644
... ...
@@ -0,0 +1,816 @@
1
+/**
2
+ * @copyright 2021 Double Bastion LLC <www.doublebastion.com>
3
+ *
4
+ * @author Double Bastion LLC
5
+ *
6
+ * @license GNU AGPL version 3 or any later version
7
+ *
8
+ * This program is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
10
+ * License as published by the Free Software Foundation; either
11
+ * version 3 of the License, or any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
17
+ *
18
+ * You should have received a copy of the GNU Affero General Public
19
+ * License along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+$(document).ready(function() {
24
+
25
+  var userid = "<?php p($userId); ?>";
26
+  var readtxtfile = [];
27
+  var readhtmlfile = [];
28
+  var readjpg = [];
29
+  var readpng = [];
30
+
31
+  // Adjust the path, so that the uploaded pdf files can be previewed while Nextcloud is served on a subdomain or on a subdirectory, by Nginx or by Apache
32
+  var locHref = window.location.href;
33
+  var pathSplit = locHref.split('/');
34
+  var firstPathEl = '';
35
+  if (pathSplit.length == 7) { firstPathEl = '/' + pathSplit[3]; }
36
+
37
+  // Check the available balance
38
+  $("#checkbalance").on("click", function(event) {
39
+
40
+     $('#checkbalance').addClass('icon-loading');
41
+
42
+     var getbalanceUrl = OC.generateUrl("/apps/pax_fax/user/getbalance");
43
+
44
+     $.ajax({
45
+          url: getbalanceUrl + '/' + userid,
46
+          type: "POST",
47
+          data: { userid: userid },
48
+          cache: false,
49
+          processData: false,
50
+          contentType: false,
51
+          success: function(phaxiobalance) {
52
+                 var balanceindlrs = phaxiobalance / 100;
53
+                 var balanceproc = "$ " + balanceindlrs.toFixed(2);
54
+                 $('#currentbalance').text(balanceproc);
55
+
56
+                 $('#checkbalance').removeClass('icon-loading');
57
+          }
58
+     });
59
+  });
60
+
61
+  // Select the Caller ID
62
+  $("#selectcalleridbttn").on("click", function(event) {
63
+
64
+     $('#selectcalleridbttn').addClass('icon-loading');
65
+
66
+     var getfaxnumbersUrl = OC.generateUrl("/apps/pax_fax/user/getfaxnumbers");
67
+     var selectednmbr = null;
68
+
69
+     $.ajax({
70
+          url: getfaxnumbersUrl + '/' + userid,
71
+          type: "POST",
72
+          data: { userid: userid },
73
+          cache: false,
74
+          processData: false,
75
+          contentType: false,
76
+          success: function(phaxionmbrs) {
77
+
78
+                    $('#currentfaxnmbrs').empty();
79
+                    $('#currentfaxnmbrs').append("<option value='' selected='selected' disabled class='optselectfxnb'>Choose an ID</option>");
80
+                    $('#currentfaxnmbrs').append("<option value='' class='optselectfxnb'></option>");
81
+
82
+                    $.each(phaxionmbrs, function(key, indfxnmb) {
83
+                           $('#currentfaxnmbrs').append("<option value='"+indfxnmb+"' class='optselectfxnb'>"+indfxnmb+"</option>");
84
+                    });
85
+
86
+                    $('#selectcalleridbttn').removeClass('icon-loading');
87
+
88
+          }
89
+     });
90
+  });
91
+
92
+  // Clean the Pax_Fax/temp_files directory
93
+  var cleanflUrl = OC.generateUrl("/apps/pax_fax/user/cleantempdir");
94
+
95
+  $.ajax({
96
+          url: cleanflUrl + '/' + userid,
97
+          type: "POST",
98
+          data: { userid: userid },
99
+          cache: false,
100
+          processData: false,
101
+          contentType: false
102
+  });
103
+
104
+  var n = 1;
105
+  var uploadedtofax = [];
106
+
107
+  // Upload files to be faxed
108
+  $("#uploadfileforfax").change(function(e){
109
+
110
+     OC.msg.startAction("#pf_upload_msg", t("pax_fax", "Uploading ..."));
111
+     $('#faxdocpreview').addClass('icon-loading');
112
+     $('#filestotsize').show();
113
+
114
+     var userid = "<?php p($userId); ?>";
115
+     var baseUrl = OC.generateUrl("/apps/pax_fax/user/uploadfile");
116
+
117
+     var formData = new FormData();
118
+     formData.append('uploadfileforfax', $('#uploadfileforfax')[0].files[0]);
119
+
120
+     var currentflsize = $('#uploadfileforfax')[0].files[0].size;
121
+
122
+     var fileup = $('#uploadfileforfax').val();
123
+     var fileuptrim = fileup.split('\\').pop();
124
+
125
+     if ($.inArray(fileuptrim, uploadedtofax) != -1) {
126
+         var duplicatescheck = 1;
127
+     } else var duplicatescheck = 0;
128
+
129
+     var extension = fileup.replace(/^.*\./, '');
130
+
131
+     if (extension == fileup) {
132
+         extension = "";
133
+     } else {
134
+         extension = extension.toLowerCase();
135
+     }
136
+
137
+     var validExtensions = ["pdf", "doc", "docx", "tif", "tiff", "jpg", "jpeg", "odt", "txt", "html", "png"];
138
+
139
+     if ($.inArray(extension, validExtensions) != -1) {
140
+
141
+       if (duplicatescheck == 0) {
142
+
143
+         if (currentflsize < 20971520) {
144
+
145
+            if (n < 21) {
146
+
147
+               uploadedtofax.push(fileuptrim);
148
+
149
+               $.ajax({
150
+                 url: baseUrl + '/' + userid,
151
+                 type: "POST",
152
+                 data: formData,
153
+                 cache: false,
154
+                 processData: false,
155
+                 contentType: false,
156
+                 success: function(totalflsize) {
157
+
158
+                   $('#filessizetext').text(totalflsize);
159
+
160
+                   // Check if the total file size is over 20 MB
161
+                   var rectotfilesz = parseFloat(totalflsize.replace(" MB", ""));
162
+
163
+                   if (rectotfilesz > 20.00) {
164
+                       $('#filestotsize').css('color', '#ba3555');
165
+                       alert("Error ! You can't send files having a total size of more than 20 MB in one fax call ! Please consider removing files so that the total files size would drop to or below 20 MB");
166
+                       $('#submitfax').attr("disabled", true);
167
+                   } else {
168
+                       $('#submitfax').attr("disabled", false);
169
+                       $('#filestotsize').css('color', '#1eb16a');
170
+                     }
171
+
172
+
173
+                   $('#fileuploadednm').append("<div class='indgenflcls'><div id='"+n+"indfilediv' class='indivflcls'>" + n + ") " + fileuptrim + "</div><div class='indupfldl'>X</div></div>");
174
+                   n++;
175
+
176
+                   // Preview the file when you click on its name
177
+                   $("div:visible[id*='indfilediv']").each(function() {
178
+                        $(this).on("click", function(eventclck) {
179
+                           var faxfilenameinit = $(this).text();
180
+                           var faxfilenamesec = faxfilenameinit.substring(faxfilenameinit.indexOf(" ") + 1);
181
+                           var faxfilename = faxfilenamesec.replace("X","");
182
+                           var baseUrl = firstPathEl+"/remote.php/webdav/Pax_Fax/temp_files/"+faxfilename;
183
+                           var extenlst = faxfilename.replace(/^.*\./, '');
184
+
185
+                           if (extenlst == faxfilename) {
186
+                               extenlst = "";
187
+                           } else {
188
+                               extenlst = extenlst.toLowerCase();
189
+                           }
190
+
191
+                           if (extenlst == 'pdf') {
192
+                                  var viewerclick = OC.generateUrl('/apps/files_pdfviewer/?file={file}', {file: baseUrl});
193
+                                  var $iframe = $('<iframe id="docclickview" style="width:100%;height:100%;display:block;position:absolute;top:0;left:0;z-index:1041;" src="' + viewerclick + '" sandbox="allow-scripts allow-same-origin allow-popups allow-modals"></iframe>');
194
+                                  $("#faxdocpreview").empty();
195
+                                  $("#faxdocpreview").append($iframe);
196
+                           } else if (extenlst == 'txt') {
197
+                                  $("#faxdocpreview").empty();
198
+                                  $("#faxdocpreview").append(readtxtfile[faxfilename]);
199
+                           } else if (extenlst == 'html') {
200
+                                  $("#faxdocpreview").empty();
201
+                                  $("#faxdocpreview").append(readhtmlfile[faxfilename]);
202
+                           } else if (extenlst == 'jpg' || extenlst == 'jpeg') {
203
+                                  $("#faxdocpreview").empty();
204
+                                  $("#faxdocpreview").append('<img style="width:100%;height:100%" id="uploadedjpg" src="#" />');
205
+                                  $("#uploadedjpg").attr('src', readjpg[faxfilename]);
206
+                           } else if (extenlst == 'png') {
207
+                                  $("#faxdocpreview").empty();
208
+                                  $("#faxdocpreview").append('<img style="width:100%;height:100%" id="uploadedpng" src="#" />');
209
+                                  $("#uploadedpng").attr('src', readpng[faxfilename]);
210
+                           } else if (extenlst == 'odt') {
211
+                                  $("#faxdocpreview").empty();
212
+                                  function odfInit() {
213
+                                     var odfelement = document.getElementById("faxdocpreview");
214
+                                     odfcanvas = new odf.OdfCanvas(odfelement);
215
+                                     odfcanvas.load(baseUrl);
216
+                                  }
217
+                                  window.setTimeout(odfInit, 0);
218
+                           } else if (extenlst == 'tif' || extenlst == 'tiff') {
219
+                                  var tiffile = '/remote.php/webdav/Pax_Fax/temp_files/'+faxfilename;
220
+                                  var xhr = new XMLHttpRequest();
221
+                                  xhr.responseType = 'arraybuffer';
222
+                                  xhr.open('GET', tiffile);
223
+                                  xhr.onload = function (evnt) {
224
+                                      var tiff = new Tiff({buffer: xhr.response});
225
+                                      var tifcanvas = tiff.toCanvas();
226
+                                      $("#faxdocpreview").empty();
227
+                                      $("#faxdocpreview").append(tifcanvas);
228
+                                  };
229
+                                  xhr.send();
230
+                           }
231
+
232
+                           $("#faxdocpreview").show();
233
+                           $("#faxfoldersview").hide();
234
+                        });
235
+                   });
236
+
237
+                   // Remove uploaded files
238
+                   $('[class*="indupfldl"]').last().click(function() {
239
+
240
+                           var userid = "<?php p($userId); ?>";
241
+                           var baseUrl = OC.generateUrl("/apps/pax_fax/user/removeupfile");
242
+
243
+                           var removedfilenameinit = $(this).closest('[class*="indgenflcls"]').find('[class*="indivflcls"]').text();
244
+
245
+                           var removedfilesplit = removedfilenameinit.split(") ");
246
+                           var removedflnb = parseInt(removedfilesplit[0]);
247
+
248
+                           $(this).closest('[class*="indgenflcls"]').find('[class*="indivflcls"]').hide();
249
+                           $(this).hide();
250
+
251
+                           var removedfilename = removedfilenameinit.substring(removedfilenameinit.indexOf(" ") + 1);
252
+
253
+                           uploadedtofax = $.grep(uploadedtofax, function(value) {
254
+                                           return value != removedfilename;
255
+                           });
256
+
257
+                           $.ajax({
258
+                                   url: baseUrl + '/' + userid,
259
+                                   type: "POST",
260
+                                   data: { removedfilename: removedfilename },
261
+                                   success: function(totalflsize) {
262
+
263
+                                      $('#filessizetext').text(totalflsize);
264
+
265
+                                      // Check file size
266
+                                      var rectotfilesz = parseFloat(totalflsize.replace(" MB", ""));
267
+
268
+                                      if (rectotfilesz > 20.00) {
269
+                                          $('#filestotsize').css('color', '#ba3555');
270
+                                             alert("Error ! You can't send files having a total size of more than 20 MB in one fax call ! Please consider removing files so that the total files size would drop to or below 20 MB");
271
+                                          $('#submitfax').attr("disabled", true);
272
+                                      } else {
273
+                                          $('#submitfax').attr("disabled", false);
274
+                                          $('#filestotsize').css('color', '#1eb16a');
275
+                                        }
276
+
277
+                                      // Rewrite order numbers for files that follow
278
+                                      --n;
279
+                                      $("div:visible[id*='indfilediv']").each(function() {
280
+
281
+                                          var getdivtext =  $(this).text();
282
+                                          var splitdivtext = getdivtext.split(") ");
283
+                                          var currentnbvalue = parseInt(splitdivtext[0]);
284
+                                          var newnbvalue = currentnbvalue - 1;
285
+
286
+                                          if (currentnbvalue > removedflnb) {
287
+                                              var replacedstr = newnbvalue + ") " + splitdivtext[1];
288
+                                              $(this).text(replacedstr);
289
+                                          }
290
+                                      });
291
+
292
+                                      $("div:visible[id*='indflpicked']").each(function() {
293
+
294
+                                          var getdivtext =  $(this).text();
295
+                                          var splitdivtext = getdivtext.split(") ");
296
+                                          var currentnbvalue = parseInt(splitdivtext[0]);
297
+                                          var newnbvalue = currentnbvalue - 1;
298
+
299
+                                          if (currentnbvalue > removedflnb) {
300
+                                              var replacedstr = newnbvalue + ") " + splitdivtext[1];
301
+                                              $(this).text(replacedstr);
302
+                                          }
303
+                                      });
304
+
305
+                                   },
306
+                                   error: function() {
307
+                                          alert('Error !');
308
+                                   }
309
+                           });
310
+
311
+                           $('#faxdocpreview').removeClass('icon-loading');
312
+                           $("#faxdocpreview").empty();
313
+                   });
314
+
315
+                   // Preview the uploaded file
316
+                   var faxfilename = e.target.files[0].name;
317
+                   var baseUrl = firstPathEl+"/remote.php/webdav/Pax_Fax/temp_files/"+faxfilename;
318
+
319
+                   if (extension == 'pdf') {
320
+                              var viewer = OC.generateUrl('/apps/files_pdfviewer/?file={file}', {file: baseUrl});
321
+                              var $iframe = $('<iframe id="docviewer" style="width:100%;height:100%;display:block;position:absolute;top:0;left:0;z-index:1041;" src="' + viewer + '" sandbox="allow-scripts allow-same-origin allow-popups allow-modals"></iframe>');
322
+                              $("#faxdocpreview").empty();
323
+                              $("#faxdocpreview").append($iframe);
324
+                   } else if (extension == 'txt') {
325
+                              var reader = new FileReader();
326
+                              reader.readAsText(e.target.files[0]);
327
+                              reader.onload = function(e) {
328
+                                  readtxtfile[faxfilename] = e.target.result.replace(/(?:\r\n|\r|\n)/g, '<br>');
329
+                                  $("#faxdocpreview").empty();
330
+                                  $("#faxdocpreview").append(readtxtfile[faxfilename]);
331
+                              };
332
+                   } else if (extension == 'html') {
333
+                              var reader = new FileReader();
334
+                              reader.readAsText(e.target.files[0]);
335
+                              reader.onload = function(e) {
336
+                                  readhtmlfile[faxfilename] = e.target.result.replace(/(?:\r\n|\r|\n)/g, '<br>');
337
+                                  $("#faxdocpreview").empty();
338
+                                  $("#faxdocpreview").append(readhtmlfile[faxfilename]);
339
+                              };
340
+                   } else if (extension == 'jpg' || extension == 'jpeg') {
341
+                              $("#faxdocpreview").empty();
342
+                              $("#faxdocpreview").append('<img style="width:100%;height:100%" id="uploadedjpg" src="#" />');
343
+
344
+                              var reader = new FileReader();
345
+                              reader.onload = function (e) {
346
+                                  readjpg[faxfilename] = e.target.result;
347
+                                  $("#uploadedjpg").attr('src', readjpg[faxfilename]);
348
+                              }
349
+                              reader.readAsDataURL(e.target.files[0]);
350
+                   } else if (extension == 'png') {
351
+                              $("#faxdocpreview").empty();
352
+                              $("#faxdocpreview").append('<img style="width:100%;height:100%" id="uploadedpng" src="#" />');
353
+
354
+                              var reader = new FileReader();
355
+                              reader.onload = function (e) {
356
+                                  readpng[faxfilename] = e.target.result;
357
+                                  $("#uploadedpng").attr('src', readpng[faxfilename]);
358
+                              }
359
+                              reader.readAsDataURL(e.target.files[0]);
360
+                   } else if (extension == 'odt') {
361
+                              $("#faxdocpreview").empty();
362
+                              function odfInit() {
363
+                                 var odfelement = document.getElementById("faxdocpreview");
364
+                                 odfcanvas = new odf.OdfCanvas(odfelement);
365
+                                 odfcanvas.load(baseUrl);
366
+                              }
367
+                              window.setTimeout(odfInit, 0);
368
+                   } else if (extension == 'tif' || extension == 'tiff') {
369
+                              var tiffile = '/remote.php/webdav/Pax_Fax/temp_files/'+faxfilename;
370
+                              var xhr = new XMLHttpRequest();
371
+                              xhr.responseType = 'arraybuffer';
372
+                              xhr.open('GET', tiffile);
373
+                              xhr.onload = function (e) {
374
+                                  var tiff = new Tiff({buffer: xhr.response});
375
+                                  var tifcanvas = tiff.toCanvas();
376
+                                  $("#faxdocpreview").empty();
377
+                                  $("#faxdocpreview").append(tifcanvas);
378
+                              };
379
+                              xhr.send();
380
+                   }
381
+
382
+                   $("#faxdocpreview").show();
383
+                   $('#pf_upload_msg').hide();
384
+                   $('#faxdocpreview').removeClass('icon-loading');
385
+                   $("#faxfoldersview").hide();
386
+                 },
387
+                 error: function(data){
388
+                     alert('Error!');
389
+                 }
390
+               });
391
+
392
+            } else {
393
+                  alert("Error ! You can't send as fax more than 20 files in one fax call !");
394
+                  $('#pf_upload_msg').hide();
395
+                  $('#faxdocpreview').removeClass('icon-loading');
396
+              }
397
+         } else {
398
+              alert("Error ! You can't send files having a total size of more than 20 MB in one fax call !");
399
+              $('#pf_upload_msg').hide();
400
+              $('#faxdocpreview').removeClass('icon-loading');
401
+           }
402
+       } else {
403
+            alert("Error ! There is already a file named '"+fileuptrim+"' in the 'Pax_Fax/temp_files' folder !");
404
+            $('#pf_upload_msg').hide();
405
+            $('#faxdocpreview').removeClass('icon-loading');
406
+         }
407
+
408
+     } else {
409
+          alert('The file type is not supported ! Supported formats are: pdf, doc, docx, tiff/tif, jpeg/jpg, odt, txt, html, png.');
410
+          $('#pf_upload_msg').hide();
411
+          $('#faxdocpreview').removeClass('icon-loading');
412
+       }
413
+  });
414
+
415
+
416
+  // Pick file to fax, from Nextcloud
417
+  var faxfilename = null;
418
+
419
+  $("#choosefilen").on("click", function(evn) {
420
+
421
+                OC.dialogs.filepicker(
422
+                        t('settings', "Select a file to send as fax."),
423
+                        function (path) {
424
+
425
+                              OC.msg.startAction("#pf_choose_msg", t("pax_fax", "Please wait ..."));
426
+                              $('#faxdocpreview').addClass('icon-loading');
427
+                              $('#filestotsize').show();
428
+
429
+                              var userid = "<?php p($userId); ?>";
430
+                              var baseUrl = OC.generateUrl("/apps/pax_fax/user/pickfile");
431
+
432
+                              faxfilename = path.split('/').pop();
433
+
434
+                              if ($.inArray(faxfilename, uploadedtofax) != -1) {
435
+                                  var duplicatescheck = 1;
436
+                              } else var duplicatescheck = 0;
437
+
438
+                              var extension = faxfilename.replace(/^.*\./, '');
439
+
440
+                              if (extension == faxfilename) {
441
+                                  extension = "";
442
+                              } else {
443
+                                  extension = extension.toLowerCase();
444
+                              }
445
+
446
+                              var validExtensions = ["pdf", "doc", "docx", "tif", "tiff", "jpg", "jpeg", "odt", "txt", "html", "png"];
447
+
448
+                              if ($.inArray(extension, validExtensions) != -1) {
449
+
450
+                                 if (duplicatescheck == 0) {
451
+
452
+                                    if (n < 21) {
453
+
454
+                                       uploadedtofax.push(faxfilename);
455
+
456
+                                       $.ajax({
457
+                                          url: baseUrl + '/' + userid,
458
+                                          type: "POST",
459
+                                          data: { path: path },
460
+                                          success: function(totalflsize) {
461
+
462
+                                                $('#filessizetext').text(totalflsize);
463
+
464
+                                                // Check if the total file size is over 20 MB
465
+                                                var rectotfilesz = parseFloat(totalflsize.replace(" MB", ""));
466
+
467
+                                                if (rectotfilesz > 20.00) {
468
+                                                    $('#filestotsize').css('color', '#ba3555');
469
+                                                    alert("Error ! You can't send files having a total size of more than 20 MB in one fax call ! Please consider removing files so that the total files size would drop to or below 20 MB");
470
+                                                    $('#submitfax').attr("disabled", true);
471
+                                                } else {
472
+                                                    $('#submitfax').attr("disabled", false);
473
+                                                    $('#filestotsize').css('color', '#1eb16a');
474
+                                                }
475
+
476
+                                                $('#filespickednc').append("<div class='indgenpckfls'><div id='"+n+"indflpicked' class='indivflpckd'>" + n + ") " + faxfilename + "</div><div class='indpckfldl'>X</div></div>");
477
+                                                n++;
478
+
479
+                                                // Preview each file when you click on its name
480
+                                                $("div:visible[id*='indflpicked']").each(function() {
481
+                                                   $(this).on("click", function(event) {
482
+                                                      var faxfilenameinit = $(this).text();
483
+                                                      var faxfilenamesec = faxfilenameinit.substring(faxfilenameinit.indexOf(" ") + 1);
484
+                                                      var faxfilenamesp = faxfilenamesec.replace("X","");
485
+                                                      var baseUrl = firstPathEl+"/remote.php/webdav/Pax_Fax/temp_files/"+faxfilenamesp;
486
+                                                      var extenlst = faxfilenamesp.replace(/^.*\./, '');
487
+
488
+                                                      if (extenlst == faxfilenamesp) {
489
+                                                           extenlst = "";
490
+                                                      } else {
491
+                                                           extenlst = extenlst.toLowerCase();
492
+                                                      }
493
+
494
+                                                      if (extenlst == 'pdf') {
495
+                                                           var viewerclick = OC.generateUrl('/apps/files_pdfviewer/?file={file}', {file: baseUrl});
496
+                                                           var $iframe = $('<iframe id="docclickview" style="width:100%;height:100%;display:block;position:absolute;top:0;left:0;z-index:1041;" src="' + viewerclick + '" sandbox="allow-scripts allow-same-origin allow-popups allow-modals"></iframe>');
497
+                                                           $("#faxdocpreview").empty();
498
+                                                           $("#faxdocpreview").append($iframe);
499
+                                                      } else if (extenlst == 'txt') {
500
+                                                              $("#faxdocpreview").empty();
501
+                                                              $("#faxdocpreview").append(readtxtfile[faxfilenamesp]);
502
+                                                      } else if (extenlst == 'html') {
503
+                                                              $("#faxdocpreview").empty();
504
+                                                              $("#faxdocpreview").append(readhtmlfile[faxfilenamesp]);
505
+                                                      } else if (extenlst == 'jpg' || extenlst == 'jpeg') {
506
+                                                              $("#faxdocpreview").empty();
507
+                                                              $("#faxdocpreview").append('<img style="width:auto;height:auto" id="uploadedjpg" src="'+ baseUrl +'" />');
508
+                                                      } else if (extenlst == 'png') {
509
+                                                              $("#faxdocpreview").empty();
510
+                                                              $("#faxdocpreview").append('<img style="width:auto;height:auto" id="uploadedpng" src="'+ baseUrl +'" />');
511
+                                                      } else if (extenlst == 'odt') {
512
+                                                              $("#faxdocpreview").empty();
513
+                                                              function odfInit() {
514
+                                                                 var odfelement = document.getElementById("faxdocpreview");
515
+                                                                 odfcanvas = new odf.OdfCanvas(odfelement);
516
+                                                                 odfcanvas.load(baseUrl);
517
+                                                              }
518
+                                                              window.setTimeout(odfInit, 0);
519
+                                                      } else if (extenlst == 'tif' || extenlst == 'tiff') {
520
+                                                              var tiffile = '/remote.php/webdav/Pax_Fax/temp_files/'+faxfilenamesp;
521
+                                                              var xhr = new XMLHttpRequest();
522
+                                                              xhr.responseType = 'arraybuffer';
523
+                                                              xhr.open('GET', tiffile);
524
+                                                              xhr.onload = function (evnt) {
525
+                                                                  var tiff = new Tiff({buffer: xhr.response});
526
+                                                                  var tifcanvas = tiff.toCanvas();
527
+                                                                  $("#faxdocpreview").empty();
528
+                                                                  $("#faxdocpreview").append(tifcanvas);
529
+                                                              };
530
+                                                              xhr.send();
531
+                                                      }
532
+
533
+                                                      $("#faxdocpreview").show();
534
+                                                      $("#faxfoldersview").hide();
535
+                                                   });
536
+                                                });
537
+
538
+                                                // Remove picked files
539
+                                                $('[class*="indpckfldl"]').last().click(function() {
540
+                                                    var userid = "<?php p($userId); ?>";
541
+                                                    var baseUrl = OC.generateUrl("/apps/pax_fax/user/removeupfile");
542
+
543
+                                                    var removedfilenameinit = $(this).closest('[class*="indgenpckfls"]').find('[class*="indivflpckd"]').text();
544
+
545
+                                                    var removedfilesplit = removedfilenameinit.split(") ");
546
+                                                    var removedflnb = parseInt(removedfilesplit[0]);
547
+
548
+                                                    $(this).closest('[class*="indgenpckfls"]').find('[class*="indivflpckd"]').hide();
549
+                                                    $(this).hide();
550
+                                                    var removedfilename = removedfilenameinit.substring(removedfilenameinit.indexOf(" ") + 1);
551
+
552
+                                                    uploadedtofax = $.grep(uploadedtofax, function(value) {
553
+                                                             return value != removedfilename;
554
+                                                    });
555
+
556
+                                                    $.ajax({
557
+                                                        url: baseUrl + '/' + userid,
558
+                                                        type: "POST",
559
+                                                        data: { removedfilename: removedfilename },
560
+                                                        success: function(totalflsize) {
561
+
562
+                                                             $('#filessizetext').text(totalflsize);
563
+
564
+                                                             // Check file size
565
+                                                             var rectotfilesz = parseFloat(totalflsize.replace(" MB", ""));
566
+
567
+                                                             if (rectotfilesz > 20.00) {
568
+                                                                 $('#filestotsize').css('color', '#ba3555');
569
+                                                                 alert("Error ! You can't send files having a total size of more than 20 MB in one fax call ! Please consider removing files so that the total files size would drop at or below 20 MB");
570
+                                                                 $('#submitfax').attr("disabled", true);
571
+                                                             } else {
572
+                                                                 $('#submitfax').attr("disabled", false);
573
+                                                                 $('#filestotsize').css('color', '#1eb16a');
574
+                                                               }
575
+
576
+                                                             // Rewrite order numbers for files that follow
577
+                                                             --n;
578
+                                                             $("div:visible[id*='indflpicked']").each(function() {
579
+
580
+                                                                  var getdivtext =  $(this).text();
581
+                                                                  var splitdivtext = getdivtext.split(") ");
582
+                                                                  var currentnbvalue = parseInt(splitdivtext[0]);
583
+                                                                  var newnbvalue = currentnbvalue - 1;
584
+
585
+                                                                  if (currentnbvalue > removedflnb) {
586
+                                                                      var replacedstr = newnbvalue + ") " + splitdivtext[1];
587
+                                                                      $(this).text(replacedstr);
588
+                                                                  }
589
+                                                             });
590
+                                                        },
591
+                                                        error: function() {
592
+                                                             alert('Error !');
593
+                                                        }
594
+                                                    });
595
+
596
+                                                    $('#faxdocpreview').removeClass('icon-loading');
597
+                                                    $("#faxdocpreview").empty();
598
+                                                });
599
+
600
+
601
+		                                // Preview the picked file
602
+		                                var flUrl = firstPathEl+"/remote.php/webdav/Pax_Fax/temp_files/"+faxfilename;
603
+		                                var pickUrl = OC.generateUrl("/apps/pax_fax/user/getpickedfile");
604
+
605
+		                                if (extension == 'pdf') {
606
+		                                    var viewer = OC.generateUrl('/apps/files_pdfviewer/?file={file}', {file: flUrl});
607
+		                                    var $iframe = $('<iframe id="docviewer" style="width:100%;height:100%;display:block;position:absolute;top:0;left:0;z-index:1041;" src="' + viewer + '" sandbox="allow-scripts allow-same-origin allow-popups allow-modals"></iframe>');
608
+		                                    $("#faxdocpreview").empty();
609
+		                                    $("#faxdocpreview").append($iframe);
610
+		                                } else if (extension == 'txt') {
611
+						           $.get(flUrl, function(textdata) {
612
+		                                             readtxtfile[faxfilename] = textdata.replace(/(?:\r\n|\r|\n)/g, '<br>');
613
+		                                             $("#faxdocpreview").empty();
614
+		                                             $("#faxdocpreview").append(readtxtfile[faxfilename]);
615
+							   });
616
+		                                } else if (extension == 'html') {
617
+							   $.get(flUrl, function(htmldata) {
618
+		                                             readhtmlfile[faxfilename] = htmldata.replace(/(?:\r\n|\r|\n)/g, '<br>');
619
+		                                             $("#faxdocpreview").empty();
620
+		                                             $("#faxdocpreview").append(readhtmlfile[faxfilename]);
621
+							   });
622
+		                                } else if (extension == 'jpg' || extension == 'jpeg') {
623
+		                                           $("#faxdocpreview").empty();
624
+		                                           $("#faxdocpreview").append('<img style="width:auto;height:auto" id="uploadedjpg" src="'+ flUrl +'" />');
625
+		                                } else if (extension == 'png') {
626
+		                                           $("#faxdocpreview").empty();
627
+		                                           $("#faxdocpreview").append('<img style="width:auto;height:auto" id="uploadedpng" src="'+ flUrl +'" />');
628
+                                                           $("#uploadedpng").attr('src', readpng[faxfilename]);
629
+		                                } else if (extension == 'odt') {
630
+		                                       $("#faxdocpreview").empty();
631
+		                                       function odfInit() {
632
+		                                           var odfelement = document.getElementById("faxdocpreview");
633
+		                                           odfcanvas = new odf.OdfCanvas(odfelement);
634
+		                                           odfcanvas.load(flUrl);
635
+		                                       }
636
+		                                       window.setTimeout(odfInit, 0);
637
+
638
+		                                } else if (extension == 'tif' || extension == 'tiff') {
639
+		                                       var tiffile = '/remote.php/webdav/Pax_Fax/temp_files/'+faxfilename;
640
+		                                       var xhr = new XMLHttpRequest();
641
+		                                       xhr.responseType = 'arraybuffer';
642
+		                                       xhr.open('GET', tiffile);
643
+		                                       xhr.onload = function (event) {
644
+		                                           var tiff = new Tiff({buffer: xhr.response});
645
+		                                           var tifcanvas = tiff.toCanvas();
646
+		                                           $("#faxdocpreview").empty();
647
+		                                           $("#faxdocpreview").append(tifcanvas);
648
+		                                       };
649
+		                                       xhr.send();
650
+		                                }
651
+
652
+		                                $("#faxdocpreview").show();
653
+
654
+		                                $('#pf_choose_msg').hide();
655
+		                                $('#faxdocpreview').removeClass('icon-loading');
656
+		                                $("#faxfoldersview").hide();
657
+
658
+                                          },
659
+
660
+                                          error: function(data){
661
+                                             alert('Error!');
662
+                                          }
663
+
664
+                                       });
665
+
666
+                                    } else {
667
+                                        alert("Error ! You can't fax more than 20 files in one fax call !");
668
+                                        $('#pf_choose_msg').hide();
669
+                                        $('#faxdocpreview').removeClass('icon-loading');
670
+                                      }
671
+                                 } else {
672
+                                      alert("Error ! There is already a file named '"+faxfilename+"' in the 'Pax_Fax/temp_files' folder !");
673
+                                      $('#pf_choose_msg').hide();
674
+                                      $('#faxdocpreview').removeClass('icon-loading');
675
+                                   }
676
+
677
+                              } else {
678
+                                   alert('The file type is not supported ! Supported formats are: pdf, doc, docx, tiff/tif, jpeg/jpg, odt, txt, html, png.');
679
+                                   $('#pf_choose_msg').hide();
680
+                                   $('#faxdocpreview').removeClass('icon-loading');
681
+                                }
682
+
683
+                        }
684
+                );
685
+  });
686
+
687
+
688
+  // Submit the fax
689
+  $("#submitfax").on("click", function(event){
690
+
691
+     var selectedcid = $('#currentfaxnmbrs :selected').text();
692
+
693
+     var toNumberinit = $('#faxto').val();
694
+     var toNumbersec = toNumberinit.replace(/[^0-9,]/g, "");
695
+     var toNumber = toNumbersec.split(",");
696
+
697
+     for(var v = 0; v < toNumber.length; v++) {
698
+         toNumber[v] = "+" + toNumber[v];
699
+     }
700
+
701
+     OC.msg.startAction("#pf_submit_msg", t("pax_fax", "Sending fax ... Please wait !"));
702
+     $('#faxdocpreview').addClass('icon-loading');
703
+
704
+     $('#submitfax').attr("disabled", true);
705
+
706
+     var userid = "<?php p($userId); ?>";
707
+     var baseUrl = OC.generateUrl("/apps/pax_fax/user/sendfax");
708
+
709
+     var toNumberwc = toNumberinit.replace(/[^0-9]/g, "");
710
+
711
+     if (uploadedtofax.length != 0) {
712
+
713
+         if (toNumberwc != '') {
714
+
715
+             $.ajax({
716
+                url: baseUrl + '/' + userid,
717
+                type: "POST",
718
+                data: {
719
+                       uploadedtofax: uploadedtofax,
720
+                       selectedcid: selectedcid,
721
+                       toNumber: toNumber
722
+                      },
723
+                success: function(phaxioresult) {
724
+
725
+                   if (phaxioresult.success == true) {
726
+                       alert("The fax has been sent successfully ! You can see the sent fax by clicking on the 'Sent Faxes' button.");
727
+                   } else {
728
+                       alert("Error ! The fax couldn't be sent because of the following error: "+ phaxioresult.errortype +" You can see the failed fax by clicking on the 'Failed Sent Faxes' button.");
729
+                   }
730
+
731
+                   $("div:visible[id*='indfilediv']").hide();
732
+                   $("div:visible[id*='indflpicked']").hide();
733
+                   $('[class*="indupfldl"]').hide();
734
+                   $('[class*="indpckfldl"]').hide();
735
+                   $('#faxdocpreview').hide();
736
+                   $('#filestotsize').hide();
737
+                   $('#pf_submit_msg').hide();
738
+                },
739
+                error: function(phaxioresult) {
740
+
741
+                   alert('Error ! Please check your settings !');
742
+
743
+                   $("div:visible[id*='indfilediv']").hide();
744
+                   $("div:visible[id*='indflpicked']").hide();
745
+                   $('[class*="indupfldl"]').hide();
746
+                   $('[class*="indpckfldl"]').hide();
747
+                   $('#pf_submit_msg').hide();
748
+                   $('#filestotsize').hide();
749
+                   $('#faxdocpreview').hide();
750
+
751
+                   location.reload(true);
752
+                }
753
+             });
754
+
755
+         } else {
756
+              $('#pf_submit_msg').hide();
757
+              $('#faxdocpreview').removeClass('icon-loading');
758
+              alert("Please enter the fax number of the recipient !");
759
+         }
760
+
761
+     } else {
762
+              $('#pf_submit_msg').hide();
763
+              $('#faxdocpreview').removeClass('icon-loading');
764
+              alert("Please upload a file or pick a file from Nextcloud to send as fax !");
765
+     }
766
+  });
767
+
768
+  $("#receivedfaxdir").on("click", function(event){
769
+     $("#faxdocpreview").hide();
770
+     $("#faxfoldersview").show();
771
+     $("#faxfoldersview").addClass("icon-loading");
772
+     $("#faxfoldersview :last-child").remove();
773
+     var fxreceived = OC.generateUrl("/apps/files/?dir=/Pax_Fax/faxes_received");
774
+     $("#faxfoldersview").append("<iframe id='embeddedView' src='" + fxreceived + "' width='100%' height='100%'></iframe>");
775
+     setTimeout(function() { $("#faxfoldersview").removeClass("icon-loading"); }, 1000);
776
+  });
777
+
778
+  $("#sentfaxdir").on("click", function(event){
779
+     $("#faxdocpreview").hide();
780
+     $("#faxfoldersview").show();
781
+     $("#faxfoldersview").addClass("icon-loading");
782
+     $("#faxfoldersview :last-child").remove();
783
+     var fxsent = OC.generateUrl("/apps/files/?dir=/Pax_Fax/faxes_sent");
784
+     $("#faxfoldersview").append("<iframe id='embeddedView' src='" + fxsent + "' width='100%' height='100%'></iframe>");
785
+     setTimeout(function() { $("#faxfoldersview").removeClass("icon-loading"); }, 1000);
786
+  });
787
+
788
+  $("#receivedfaileddir").on("click", function(event){
789
+     $("#faxdocpreview").hide();
790
+     $("#faxfoldersview").show();
791
+     $("#faxfoldersview").addClass("icon-loading");
792
+     $("#faxfoldersview :last-child").remove();
793
+     var fxrecfailed = OC.generateUrl("/apps/files/?dir=/Pax_Fax/faxes_received_failed");
794
+     $("#faxfoldersview").append("<iframe id='embeddedView' src='" + fxrecfailed + "' width='100%' height='100%'></iframe>");
795
+     setTimeout(function() { $("#faxfoldersview").removeClass("icon-loading"); }, 1000);
796
+  });
797
+
798
+  $("#sentfaileddir").on("click", function(event){
799
+     $("#faxdocpreview").hide();
800
+     $("#faxfoldersview").show();
801
+     $("#faxfoldersview").addClass("icon-loading");
802
+     $("#faxfoldersview :last-child").remove();
803
+     var fxsentfailed = OC.generateUrl("/apps/files/?dir=/Pax_Fax/faxes_received_failed");
804
+     $("#faxfoldersview").append("<iframe id='embeddedView' src='" + fxsentfailed + "' width='100%' height='100%'></iframe>");
805
+     setTimeout(function() { $("#faxfoldersview").removeClass("icon-loading"); }, 1000);
806
+  });
807
+
808
+  $(".indivflpckd").on("click", function(event){
809
+     $("#faxfoldersview").hide();
810
+  });
811
+
812
+  $(".indivflcls").on("click", function(event){
813
+     $("#faxfoldersview").hide();
814
+  });
815
+
816
+});
0 817
new file mode 100644
... ...
@@ -0,0 +1,98 @@
1
+<?php
2
+/**
3
+ * @copyright 2021 Double Bastion LLC <www.doublebastion.com>
4
+ *
5
+ * @author Double Bastion LLC
6
+ *
7
+ * @license GNU AGPL version 3 or any later version
8
+ *
9
+ * This program is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
11
+ * License as published by the Free Software Foundation; either
12
+ * version 3 of the License, or any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
18
+ *
19
+ * You should have received a copy of the GNU Affero General Public
20
+ * License along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
+ *
22
+ */
23
+
24
+declare(strict_types=1);
25
+
26
+script('pax_fax', 'settings');
27
+style('pax_fax', 'style');
28
+
29
+?>
30
+
31
+<div id="pax_fax_adm">
32
+	<div class="section">
33
+           <h2><?php p($l->t('Pax Fax'));?></h2>
34
+	   <p id="settings-dscr"><?php p($l->t('Enter your credentials and options in the fields from below:')); ?></p><br>
35
+
36
+           <div class="stp_followupsection">
37
+
38
+                <form id="phaxio_credentials" action="#" >
39
+
40
+                   <p><label for="api_key" class="setlabeltext"><b><?php p($l->t('Phaxio API Key:'));?></b> (Log in to your Phaxio account, click 'API Keys' on the left
41
+                          panel, then, under 'Live Keys' you will find the 'API Key'. Enter the 'API Key' in the field from below):</label></p>
42
+                   <input type="password" class="pax_fax_box" id="api_key" name="api_key" autocomplete="false"
43
+                          placeholder="<?php p($l->t('E.g.: d6f172ce92e4f2 ...')); ?>" /><br>
44
+
45
+                   <p><label for="api_secret" class="setlabeltext"><b><?php p($l->t('Phaxio API Secret:'));?></b> (While logged in to your Phaxio account, click 'API Keys' on the left
46
+                          panel, then, under 'Live Keys' you will find the 'API Secret'. Enter the 'API Secret' in the field from below):</label></p>
47
+                   <input type="password" class="pax_fax_box" id="api_secret" name="api_secret" autocomplete="false"
48
+                          placeholder="<?php p($l->t('E.g.: 8af589b8ad9579 ...')); ?>" /><br>
49
+
50
+                   <p><label for="webhook_token" class="setlabeltext"><b><?php p($l->t('Phaxio Webhook Token:'));?></b> (While logged in to your Phaxio account, click 'Webhooks' on the
51
+                          left panel, then copy the token found under 'Webhook Token' and enter it in the field from below):</label></p>
52
+                   <input type="password" class="pax_fax_box" id="webhook_token" name="webhook_token" autocomplete="false"
53
+                          placeholder="<?php p($l->t('E.g.: b6d90b72ab6cce450025abd46f4d697')); ?>" /><br>
54
+
55
+                   <p><label for="receive_url" class="setlabeltext"><b>Phaxio callback URL for incoming faxes</b> (This URL must have the form:
56
+                          <b>https://<font style="color:#a11a1a;">username</font>:<font
57
+                          style="color:#a11a1a;">6VTGs-c36j4-qK2wm-RgJcl-9pjUD</font>@<font style="color:#a11a1a;">cloud.example.com</font>/apps/pax_fax/api/recfaxphaxio</b> if 
58
+                          Nextcloud is served on a subdomain, or <b>https://<font style="color:#a11a1a;">username</font>:<font
59
+                          style="color:#a11a1a;">6VTGs-c36j4-qK2wm-RgJcl-9pjUD</font>@<font style="color:#a11a1a;">example.com/nextcloud</font>/apps/pax_fax/api/recfaxphaxio</b> 
60
+                          if Nextcloud is served on a subdirectory, where <b><font style="color:#a11a1a;">username</font></b> is the Nextcloud user who has a Phaxio phone number 
61
+                          in her/his Phaxio account (Callback URLs can only be configured one per Phaxio phone number. If <b><font style="color:#a11a1a;">username</font></b> 
62
+                          contains an <b>@</b> , replace <b>@</b> with <b>&amp;commat;</b> otherwise the URL won't function), 
63
+                          <b><font style="color:#a11a1a;">6VTGs-c36j4-qK2wm-RgJcl-9pjUD</font></b> is the 'application password' created for this purpose as explained below, and 
64
+                          <b><font style="color:#a11a1a;">cloud.example.com</font></b> is your Nextcloud domain. To create the Nextcloud 'application password' click on the user 
65
+                          picture in the upper right corner, then click 'Personal settings', then, on the left panel, under 'Personal' click 'Security', then under 'Devices & sessions', 
66
+                          in the 'App name' field enter Pax_Fax, then click the 'Create new app password' button. The password will be displayed only when created. Copy the password, 
67
+                          click the 'Done' button, enter the password in the constructed callback URL between ':' and '@' as shown above, copy the entire callback URL to a safe 
68
+                          location, then enter the callback URL in the field from below. The next step is to enter the callback URL that you have just created in your Phaxio account: 
69
+                          log in to Phaxio, click 'Phone Numbers' on the left panel, click the settings wheel on the row of the phone number for which you want to set up the callback 
70
+                          URL, enter the URL in the 'Callback URL' field, then click 'Save'. Also, click on 'Webhooks' on the left panel, then scroll down to 'Webhook Version' and 
71
+                          choose 'Version 2.1.0', then click the 'Update' button. Don't forget to also click the 'Save' button at the bottom of this page to save all the settings to 
72
+                          the database.)</label></p>
73
+                   <input type="password" class="pax_fax_boxspec" id="receive_url" name="receive_url" autocomplete="false"
74
+                          placeholder="<?php p($l->t('E.g.:  https://username:6VTGs-c36j4-qK2wm-RgJcl-9pjUD@cloud.example.com/apps/pax_fax/api/recfaxphaxio')); ?>" /><br><br><br>
75
+
76
+                   <p><label for="get_notification" class="setlabeltext"><b><?php p($l->t('I want to see a notification in Nextcloud when a new fax is received:'));?></b></label></p>
77
+                   <input type="checkbox" class="pax_fax_checkbox" id="get_notification" name="get_notification" autocomplete="false" /><br>
78
+
79
+                       <p>To enable email notifications for every received fax, the "sendmail" utility ("/usr/sbin/sendmail" on Debian Linux),
80
+                          has to be present on the server. "sendmail" is a binary which gets installed when Postfix is installed. Also, the web server user (www-data) has to be allowed to
81
+                          send emails from command line (by specifying "authorized_submit_users = www-data" in "/etc/postfix/main.cf" for Postfix on a Debian based Linux distribution).
82
+                       </p><br>
83
+
84
+                   <p><label for="notification_email" class="setlabeltext"><b><?php p($l->t('I want to receive a notification to the email address from below, when a new fax is received:'));?>
85
+                          </b></label></p>
86
+                   <input type="text" class="pax_fax_box" id="notification_email" name="notification_email" autocomplete="false"
87
+                          placeholder="<?php p($l->t('E.g.: john.doe@example.com')); ?>" /><br>
88
+
89
+                   <input type="hidden" id="user_id" name="user_id" />
90
+
91
+                   <input id="save_fax_settings" type="submit" value="<?php p($l->t('Save')) ?>" />
92
+
93
+                   <span id="paxfax_save_msg"></span>
94
+
95
+               </form>
96
+           </div>
97
+        </div>
98
+</div>