Compare commits
578 Commits
v8.2.0.77
...
v99.99.99.
| Author | SHA1 | Date | |
|---|---|---|---|
| 598e914452 | |||
| 099a53b24b | |||
| d01263917c | |||
| f57fa79ce2 | |||
| 19f01e6078 | |||
| 0f3c40e0b1 | |||
| 8eb0c3d5e5 | |||
| 3ab2e9843d | |||
| e3a46bf88f | |||
| 47c015ec3f | |||
| b4461b4424 | |||
| abd337285e | |||
| 9863dc4641 | |||
| f6fb3acb52 | |||
| e67f46c67f | |||
| 20fab05971 | |||
| f872b50f5b | |||
| f32e8409e5 | |||
| e2777b614b | |||
| a091891573 | |||
| e14be1b9c9 | |||
| 1fe19724c2 | |||
| 40e27137ed | |||
| 11f335afc3 | |||
| 355c5c4ed1 | |||
| 27456a308d | |||
| 6e0f2e35f4 | |||
| 27b63833c3 | |||
| 0f895e7b38 | |||
| 81679f35a1 | |||
| 3301421663 | |||
| bf2f32b7cb | |||
| 13d5d38abc | |||
| 5c3047850b | |||
| ed1759181a | |||
| 28ed07733a | |||
| d4aaa38414 | |||
| a53fa55a89 | |||
| 9d05480f5e | |||
| edd7e8476f | |||
| 310d12d40a | |||
| 0c9d03b3f0 | |||
| 7935998094 | |||
| b355e1fa0b | |||
| 31e9c5380f | |||
| 5ea1eb6995 | |||
| a1243c2ba1 | |||
| e1409966bd | |||
| fad5afb32d | |||
| 40c1856315 | |||
| b64772de74 | |||
| bc67af0fa4 | |||
| ca7fb41089 | |||
| f0b752fe2f | |||
| da6a0e9c3c | |||
| 40c22da401 | |||
| 314deba650 | |||
| 4c609a4ef4 | |||
| 679adb3336 | |||
| f314212341 | |||
| acc67c0c5a | |||
| 534eedfae1 | |||
| 77775754b6 | |||
| bfebc197af | |||
| a3d7b159da | |||
| f12cb242ea | |||
| 8a5f37da3f | |||
| 5c9fe8f8f5 | |||
| 3e6a8e2a92 | |||
| 343705c4bd | |||
| db30f43119 | |||
| b759c8ba53 | |||
| d7f45cc7a9 | |||
| 57b3641647 | |||
| 41fd4d9e92 | |||
| ad3e6bbe15 | |||
| 76c7e10993 | |||
| f023a9defd | |||
| e9cd5e30fb | |||
| 85bf35f50a | |||
| 383e2dcaba | |||
| b7d863b0e1 | |||
| d79c1d35b2 | |||
| 66f1233c16 | |||
| eac01bfc61 | |||
| bb4e0f2313 | |||
| b3de340b66 | |||
| 74aee6a701 | |||
| 2e3fdf9904 | |||
| 53a4684ece | |||
| 2bd367e345 | |||
| afb8ab651c | |||
| 06080ee140 | |||
| dfc4d9656f | |||
| 10a9bbc2ee | |||
| 3d6c4bafb2 | |||
| c0a5772226 | |||
| 6e8289cf82 | |||
| 5a50742d89 | |||
| d93bdbc50d | |||
| c796f999f1 | |||
| a0da50d123 | |||
| 6e624a1e2a | |||
| 63d9a4fb56 | |||
| 5450a70e8b | |||
| 3016f18654 | |||
| 1b03eb30cb | |||
| d052523451 | |||
| a62ae98b0e | |||
| 915b1ae361 | |||
| 1d7e3f50ea | |||
| 64e53e24a6 | |||
| eb1dd1b3f7 | |||
| a20215cefb | |||
| 2f8306e725 | |||
| a4386bcff4 | |||
| 8e6e1bb9cb | |||
| 2d4c71576d | |||
| 9870ecee0b | |||
| 8ef74cd576 | |||
| ceaa9d42ed | |||
| c07db2d6c8 | |||
| 45d76b5d78 | |||
| 4f6f05aa17 | |||
| 212939e9fc | |||
| fe2d02673a | |||
| 5a4c151931 | |||
| fb053f7f71 | |||
| 1776e758c3 | |||
| bfcff2b523 | |||
| 9ce227216f | |||
| dca8684410 | |||
| a76dcb1c79 | |||
| 4ceb7ee5cd | |||
| 924200ad8a | |||
| f715ed454d | |||
| 2cd8cd6472 | |||
| 3fd58754cd | |||
| f277117f3d | |||
| 461f9858c3 | |||
| e5b4be43cb | |||
| 80ee474993 | |||
| f5003c2988 | |||
| 54e5cfcc8c | |||
| 5c65aec49b | |||
| 27d293e528 | |||
| a33ef3597b | |||
| 1e9b017c19 | |||
| f5934baffa | |||
| a9e5e01990 | |||
| 9b9a715117 | |||
| c6606c631d | |||
| 82775f8d1b | |||
| 97288932ac | |||
| 69a3865fb8 | |||
| 3383a00ad0 | |||
| 7a523efaec | |||
| cf90c42605 | |||
| ec25b8a355 | |||
| eada50a422 | |||
| a20d43caac | |||
| 2fa62b9961 | |||
| 74d067236a | |||
| 999a944c5e | |||
| db1278fa9c | |||
| 56ed3bd017 | |||
| b68b543605 | |||
| 31649e7203 | |||
| 12495facdb | |||
| 6511fbbf55 | |||
| 3e4b1b509b | |||
| bf9c1dc36c | |||
| 3fe3a49edb | |||
| a6a1c4a4cc | |||
| 05b4e9d63d | |||
| c6e73540ac | |||
| eb31cabed5 | |||
| 135d17e7cc | |||
| ae21e7c6ca | |||
| 945402cede | |||
| 6051bbeb6d | |||
| 465d90e518 | |||
| 05adfca5e0 | |||
| 0e627ad8fd | |||
| 5dba1fa5ee | |||
| 8940f71501 | |||
| c1d98d9df9 | |||
| fa1c7eea2d | |||
| 186d7df2d3 | |||
| d090ac039b | |||
| 3186245cc8 | |||
| 6f7927c894 | |||
| b7b4e36367 | |||
| 524bd4951a | |||
| 9a189b06ee | |||
| 89d7145eec | |||
| 983ba4ff30 | |||
| cd4afd7131 | |||
| 4dc13cc102 | |||
| 5d291649ed | |||
| 44ad9ad1ee | |||
| e97c8a8393 | |||
| 829e1cc234 | |||
| 34ec3a994a | |||
| 02adb6cdca | |||
| 48a15fba8b | |||
| 8765bd9504 | |||
| 28a26f001a | |||
| 2ee81699e9 | |||
| c28aec0c0f | |||
| f01bcae614 | |||
| 321e60b17d | |||
| 0ee55e0e87 | |||
| 5fe1bf2f14 | |||
| c2153c48c5 | |||
| 90e46de59b | |||
| 4eecbdeb3d | |||
| 8b6cc401ee | |||
| f8cf8ebc84 | |||
| be92907929 | |||
| a318a75c96 | |||
| 7f0f1739cb | |||
| c8cb50f89c | |||
| de3801145a | |||
| 4ce6aa42be | |||
| 8ecddf831c | |||
| 5dc7ffdecd | |||
| 72821c7741 | |||
| e8e42b6632 | |||
| 42c5850c04 | |||
| 54782d497d | |||
| 7a39b68a68 | |||
| cd0eaa9185 | |||
| 78400cdd8e | |||
| e0b0c0f6c7 | |||
| f71dd6b7cb | |||
| bc6ba94703 | |||
| f952fc4ba5 | |||
| df8690b2c4 | |||
| adb8efd489 | |||
| 9ba754f7bb | |||
| 46c008499f | |||
| 40221ecb11 | |||
| 94f65b4f06 | |||
| d4c83b5305 | |||
| c8b1b12e83 | |||
| 240e61d250 | |||
| 78fe9e02ce | |||
| 8e260dec56 | |||
| b67f6140a3 | |||
| cd826987f6 | |||
| 8ff457a219 | |||
| d2eb17607d | |||
| b7fcf10791 | |||
| 2cdab7cbe1 | |||
| 9f3561575f | |||
| 3fda69efc8 | |||
| 55b709f87c | |||
| cbe6a1af48 | |||
| 96a787cd5d | |||
| a886d535c8 | |||
| a5492d86c7 | |||
| 3010db6bec | |||
| 9f922ccdbe | |||
| ad51cad2fb | |||
| 1e6b3672ae | |||
| 9aca7a2b52 | |||
| 63934eedeb | |||
| cb8b4d1681 | |||
| 8c6328e409 | |||
| b1fd32a0f6 | |||
| ac98ecb8e7 | |||
| decb722cf9 | |||
| 401451b830 | |||
| 026daa0bf7 | |||
| 1154ad273b | |||
| 55cb8f0b9d | |||
| d7d31bd6b7 | |||
| 3ab9ce15f0 | |||
| a615acd73d | |||
| 4bdae5d83b | |||
| a9c737dbac | |||
| 639c20cffc | |||
| 011be765ab | |||
| cf9bc29986 | |||
| 5cb551a8db | |||
| 8dfce0020b | |||
| 17a03eea56 | |||
| e4f5f0bca7 | |||
| d6a821a7f9 | |||
| 37d07b1903 | |||
| e922fb4bdb | |||
| e736b94076 | |||
| c9528a6e47 | |||
| 93fcf5264d | |||
| c039a8a94e | |||
| 5c3134d451 | |||
| 8c7f4ffee0 | |||
| 727a3018b9 | |||
| 8714cc3d69 | |||
| b7d6afb7d9 | |||
| f1c5be0401 | |||
| d68860f025 | |||
| fdd90fd851 | |||
| 50721212b1 | |||
| 70a515f276 | |||
| abb7f6e893 | |||
| cddb89ced3 | |||
| c318020c6b | |||
| 675d8ff8e1 | |||
| 89c60280ba | |||
| bb4cbd1625 | |||
| 4a595fc60e | |||
| fc45eca00d | |||
| 8522e08670 | |||
| bf4451bef1 | |||
| 52b792f3a2 | |||
| 05f7fa2b84 | |||
| a942265f63 | |||
| ab8eab83cc | |||
| c01c486f3c | |||
| 4a0ec745a7 | |||
| f145cadf01 | |||
| 00f43b6ecd | |||
| 6ad97aebc7 | |||
| ea5f2efe46 | |||
| eba8bce11b | |||
| a92c71e045 | |||
| 77a9435e29 | |||
| a7e0e462d0 | |||
| d13798f9db | |||
| 06c3dc1446 | |||
| b751d44a51 | |||
| 55ab10a1a6 | |||
| 11f62358be | |||
| 1ced3a7f0d | |||
| b138385196 | |||
| 940ae9fedd | |||
| 2ab8a55d8f | |||
| e32dd4152b | |||
| 3db9b887ed | |||
| 35cf2fb0b0 | |||
| 728c74b1aa | |||
| e2bc4a6628 | |||
| 8e8593d7c1 | |||
| 353e1b9ea6 | |||
| 4cb2c83581 | |||
| ce72ffe77e | |||
| efba3452c6 | |||
| cfff9c95ea | |||
| 95cdc163c1 | |||
| a27081b288 | |||
| 11bcd3805a | |||
| 25ec76084f | |||
| c72218d3ae | |||
| cd81f8cd1c | |||
| 17458ec5b3 | |||
| c4d80f6b5e | |||
| 85b7284c8a | |||
| 5cccae71f3 | |||
| 2a05278c16 | |||
| ba4024665a | |||
| dfb4e06772 | |||
| 618369fe5f | |||
| 641ae7c15d | |||
| 481ac474bd | |||
| 9828fdd704 | |||
| b1343c7554 | |||
| 78e8394457 | |||
| fd7579a36a | |||
| f1cf416166 | |||
| a0ddf8d350 | |||
| 576a234289 | |||
| 50bbd86cf5 | |||
| 2b0b902f9c | |||
| b36bfdec4d | |||
| f3e5b8e8cf | |||
| 4c2a654871 | |||
| 97b70cceb5 | |||
| 596d445439 | |||
| 4943adc21a | |||
| db3ccd7482 | |||
| 4c7ea51207 | |||
| 4f8f7399bb | |||
| b762ef4120 | |||
| 934eaecad9 | |||
| fe4340e731 | |||
| 581f2aaef6 | |||
| a96bfe0777 | |||
| 62f98954b4 | |||
| 819faf84f1 | |||
| 66cf2aca8c | |||
| 73b727ff9f | |||
| 4c8fb6b3be | |||
| dcc5a8f56d | |||
| 14df5fcfa0 | |||
| e2e8087800 | |||
| 4c6e6dc235 | |||
| cd4ff5e045 | |||
| b9b4aeffac | |||
| e25b10d618 | |||
| f00abbc9e7 | |||
| 63237f52ca | |||
| aeae7446df | |||
| 4cd3385b33 | |||
| d675b92ba8 | |||
| 0a802159f0 | |||
| 3f3274a316 | |||
| 6eb812eb40 | |||
| e6862bce87 | |||
| 21c92bb13a | |||
| b8a5bd4fab | |||
| 3d4df2a316 | |||
| 3a17c7aef9 | |||
| 19ef21c440 | |||
| 9f823a64f3 | |||
| e811ae280e | |||
| ad44aa982c | |||
| 95cb7e708a | |||
| 82ef4af322 | |||
| 143e809228 | |||
| 1c01d6c081 | |||
| 6d119e1449 | |||
| 06538c87fc | |||
| 112bb10c5e | |||
| 909d503f24 | |||
| 26cefa9592 | |||
| 2d7491c5cb | |||
| 23e12fd02a | |||
| 9e9152e29f | |||
| dbec7788ca | |||
| 5caeb643c7 | |||
| a1758227a8 | |||
| 1c9a1fee9c | |||
| 5c8f1f525e | |||
| ae75cfecde | |||
| 4da1b99f0a | |||
| 5e47e8904a | |||
| 5939624d96 | |||
| c20d8f6dd7 | |||
| 31cda491e3 | |||
| 53687405b2 | |||
| 7d7d4abb62 | |||
| 4822db320d | |||
| 56101aa086 | |||
| c781fd2bc2 | |||
| c38a8ce22e | |||
| 07bdcc70af | |||
| 11a22f88a5 | |||
| 5179e81d8f | |||
| f70dddd627 | |||
| 29d1401687 | |||
| bdca18f28c | |||
| 07a0d4f62b | |||
| d411a9f98e | |||
| f20676c964 | |||
| b1c272e17f | |||
| 3eedf0ad6d | |||
| 71879477c7 | |||
| a618e19617 | |||
| 5bf073dd66 | |||
| 297bed31e7 | |||
| e9e066da8e | |||
| 0086aba64d | |||
| 5ab85490f5 | |||
| 35e44e3eb6 | |||
| c3c05490b7 | |||
| edd8813e56 | |||
| f5e2bbb82b | |||
| f5664fe912 | |||
| 0786a1c326 | |||
| ee0680f806 | |||
| 414cb9b535 | |||
| e3aa07ef9a | |||
| 267c53bb14 | |||
| 6b32e9f95d | |||
| 77ecde55c0 | |||
| 2c61843695 | |||
| c85fc5ef31 | |||
| 88ddd4c2cb | |||
| b772ffba90 | |||
| a6fdc58767 | |||
| 856dce26c9 | |||
| 06be29e983 | |||
| 110cbdefab | |||
| 5ba55833db | |||
| 4d424a2ee6 | |||
| 6b47993786 | |||
| cabb56cbbb | |||
| 681912f544 | |||
| 0b03376e0e | |||
| 1e3c48ddad | |||
| dbe896c1c1 | |||
| afca8b2eea | |||
| 7fa9444201 | |||
| 3f0c1d51d3 | |||
| 1c80079e1d | |||
| 4b50cb7ab6 | |||
| b86e9d6b60 | |||
| 6db9bdbc4e | |||
| 30a3365bc9 | |||
| 4554a630bf | |||
| 3593ea6e13 | |||
| 4b05cc0c1b | |||
| 6a428cd861 | |||
| b7ac2f7984 | |||
| 3e30d34159 | |||
| 3b12f3bd53 | |||
| 4d1e6e5333 | |||
| ed1f5503d2 | |||
| f8390113e5 | |||
| 12732cab10 | |||
| 7471f80d26 | |||
| a199018adf | |||
| 27e090fe3b | |||
| d8585f4499 | |||
| 9c61dbab16 | |||
| faa9595e4f | |||
| 6418d924e3 | |||
| 1a46d063fd | |||
| 6e08c9d898 | |||
| 3ca3dfa763 | |||
| 3f3ea583a7 | |||
| 9d3971c10d | |||
| 06b2459ae4 | |||
| b70eefe10f | |||
| 81d9336a3e | |||
| bd5ab3d7e9 | |||
| ba4c10d326 | |||
| 13bd01c73e | |||
| 55e0ad536f | |||
| 49e2cfbf48 | |||
| 692926b0e4 | |||
| 9cc2859c1d | |||
| 040962ae28 | |||
| eed9fd3098 | |||
| 5d3bcfed8f | |||
| a9eaad4cfb | |||
| 6b10a17ee7 | |||
| 764d87eecd | |||
| f5a8ca367b | |||
| 940d759e36 | |||
| 1cdcf6c0a8 | |||
| 7a1f6a471b | |||
| f161da3879 | |||
| d525fa6611 | |||
| f0fd90f115 | |||
| f45b6f60d4 | |||
| ceecd1af09 | |||
| 39edf9f364 | |||
| 6fd44a3f4c | |||
| 02b50f7a36 | |||
| de33a42391 | |||
| 03fa66fbce | |||
| 0817960acd | |||
| 109ebcf45d | |||
| 8e76c7ad61 | |||
| bea25acd69 | |||
| 075ad0ee1f | |||
| 7c60aeb26b | |||
| 61fb573a4b | |||
| 982a853058 | |||
| 61f20f5ddd | |||
| c3a5c15781 | |||
| 7620eb1f8e | |||
| e25ca233ee | |||
| fa24c1b823 | |||
| b1ef74d2a2 | |||
| 6145ae0fcd | |||
| 40412b6c17 | |||
| d43ecd489e | |||
| 190f5bba65 | |||
| ce39734850 | |||
| 7f31cefd76 | |||
| b5220091ff | |||
| 724d7363d8 | |||
| 5678307eb5 | |||
| 7a149c6faa |
32
.github/workflows/artifact-go.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
name: Artifact Golang
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/go/**']
|
||||
pull_request:
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/go/**']
|
||||
|
||||
jobs:
|
||||
artifact:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Build Artifact
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
cwd=$(pwd)
|
||||
git submodule update --init --recursive
|
||||
cd ./web/documentserver-example/go
|
||||
mkdir -p ./deploy/'Go Example'
|
||||
rsync -av --exclude='deploy' ./ ./deploy/'Go Example'
|
||||
rm -rf ./deploy/'Go Example'/static/assets/document-formats/.git
|
||||
rm -rf ./deploy/'Go Example'/static/assets/document-templates/.git
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Go.Example
|
||||
path: ${{ github.workspace }}/web/documentserver-example/go/deploy
|
||||
31
.github/workflows/artifact-php-laravel.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
name: Artifact PHP Laravel
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/php-laravel/**']
|
||||
pull_request:
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/php-laravel/**']
|
||||
|
||||
jobs:
|
||||
artifact:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Build Artifact
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git submodule update --init --recursive
|
||||
cd ./web/documentserver-example/php-laravel
|
||||
mkdir -p ./deploy/'PHP Laravel Example'
|
||||
rsync -av --exclude='deploy' ./ ./deploy/'PHP Laravel Example'
|
||||
rm -rf ./deploy/'PHP Laravel Example'/public/assets/document-formats/.git
|
||||
rm -rf ./deploy/'PHP Laravel Example'/public/assets/document-templates/.git
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: PHP-Laravel.Example
|
||||
path: ${{ github.workspace }}/web/documentserver-example/php-laravel/deploy
|
||||
29
.github/workflows/lint-go.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
name: Golangci
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/go/**']
|
||||
pull_request:
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/go/**']
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./web/documentserver-example/go
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Lint Golangci
|
||||
run: |
|
||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
golangci-lint run
|
||||
4
.github/workflows/lint-java.yml
vendored
@ -3,10 +3,10 @@ name: Lint Java
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master, main]
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/java/**']
|
||||
pull_request:
|
||||
branches: [master, main, develop]
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/java/**']
|
||||
|
||||
jobs:
|
||||
|
||||
4
.github/workflows/lint-nodejs.yml
vendored
@ -3,10 +3,10 @@ name: ESLint
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master, main]
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/nodejs/**']
|
||||
pull_request:
|
||||
branches: [master, main, develop]
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/nodejs/**']
|
||||
|
||||
env:
|
||||
|
||||
37
.github/workflows/lint-php-laravel.yml
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
name: Laravel Pint
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/php-laravel/**']
|
||||
pull_request:
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/php-laravel/**']
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
php: [8.2]
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./web/documentserver-example/php-laravel
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php }}
|
||||
extensions: json, dom, curl, libxml, mbstring
|
||||
coverage: none
|
||||
|
||||
- name: Install Pint
|
||||
run: composer global require laravel/pint
|
||||
|
||||
- name: Run Pint
|
||||
run: pint --test
|
||||
6
.github/workflows/lint-php.yml
vendored
@ -3,10 +3,10 @@ name: PHPCs
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master, main]
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/php/**']
|
||||
pull_request:
|
||||
branches: [master, main, develop]
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/php/**']
|
||||
|
||||
jobs:
|
||||
@ -17,7 +17,7 @@ jobs:
|
||||
working-directory: ./web/documentserver-example/php
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
|
||||
4
.github/workflows/lint-python.yml
vendored
@ -3,10 +3,10 @@ name: PyLint
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master, main]
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/python/**']
|
||||
pull_request:
|
||||
branches: [master, main, develop]
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/python/**']
|
||||
|
||||
jobs:
|
||||
|
||||
4
.github/workflows/lint-ruby.yml
vendored
@ -3,10 +3,10 @@ name: Rubocop
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master, main]
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/ruby/**']
|
||||
pull_request:
|
||||
branches: [master, main, develop]
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/ruby/**']
|
||||
|
||||
jobs:
|
||||
|
||||
4
.github/workflows/lint-spring.yml
vendored
@ -3,10 +3,10 @@ name: Lint Spring
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [master, main]
|
||||
branches: [master]
|
||||
paths: ['web/documentserver-example/java-spring/**']
|
||||
pull_request:
|
||||
branches: [master, main, develop]
|
||||
branches: [master, develop]
|
||||
paths: ['web/documentserver-example/java-spring/**']
|
||||
|
||||
jobs:
|
||||
|
||||
26
.github/workflows/release.yml
vendored
@ -2,7 +2,7 @@ name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master,main]
|
||||
branches: [master]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
@ -63,6 +63,14 @@ jobs:
|
||||
rsync -av --exclude='PHP Example' ./ ./'PHP Example'
|
||||
rm -rf ./'PHP Example'/assets/document-formats/.git
|
||||
rm -rf ./'PHP Example'/assets/document-templates/.git
|
||||
- name: Build PHP Laravel Artifact
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
cd ./web/documentserver-example/php-laravel
|
||||
mkdir -p ./'PHP Laravel Example'
|
||||
rsync -av --exclude='PHP Laravel Example' ./ ./'PHP Laravel Example'
|
||||
rm -rf ./'PHP Laravel Example'/public/assets/document-formats/.git
|
||||
rm -rf ./'PHP Laravel Example'/public/assets/document-templates/.git
|
||||
- name: Build Python Artifact
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
@ -87,6 +95,14 @@ jobs:
|
||||
rsync -av --exclude='Java Spring Example' ./ ./'Java Spring Example'
|
||||
rm -rf ./'Java Spring Example'/src/main/resources/assets/document-formats/.git
|
||||
rm -rf ./'Java Spring Example'/src/main/resources/assets/document-templates/.git
|
||||
- name: Build Go Artifact
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
cd ./web/documentserver-example/go
|
||||
mkdir -p .'Go Example'
|
||||
rsync -av --exclude='Go Example' ./ ./'Go Example'
|
||||
rm -rf ./'Go Example'/static/assets/document-formats/.git
|
||||
rm -rf ./'Go Example'/static/assets/document-templates/.git
|
||||
- name: Pack Artifacts
|
||||
run: |
|
||||
cd ${{ github.workspace }}/web/documentserver-example/csharp-mvc
|
||||
@ -99,12 +115,16 @@ jobs:
|
||||
zip -r Node.js.Example.zip ./'Node.js Example'
|
||||
cd ${{ github.workspace }}/web/documentserver-example/php
|
||||
zip -r PHP.Example.zip ./'PHP Example'
|
||||
cd ${{ github.workspace }}/web/documentserver-example/php-laravel
|
||||
zip -r PHP.Laravel.Example.zip ./'PHP Laravel Example'
|
||||
cd ${{ github.workspace }}/web/documentserver-example/python
|
||||
zip -r Python.Example.zip ./'Python Example'
|
||||
cd ${{ github.workspace }}/web/documentserver-example/ruby
|
||||
zip -r Ruby.Example.zip ./'Ruby Example'
|
||||
cd ${{ github.workspace }}/web/documentserver-example/java-spring
|
||||
zip -r Java.Spring.Example.zip ./'Java Spring Example'
|
||||
cd ${{ github.workspace }}/web/documentserver-example/go
|
||||
zip -r Go.Example.zip ./'Go Example'
|
||||
- name: Create Release
|
||||
uses: ncipollo/release-action@v1
|
||||
id: create_release
|
||||
@ -116,8 +136,10 @@ jobs:
|
||||
${{ github.workspace }}/web/documentserver-example/java/Java.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/nodejs/Node.js.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/php/PHP.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/php-laravel/PHP.Laravel.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/python/Python.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/ruby/Ruby.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/java-spring/Java.Spring.Example.zip
|
||||
${{ github.workspace }}/web/documentserver-example/java-spring/Java.Spring.Example.zip,
|
||||
${{ github.workspace }}/web/documentserver-example/go/Go.Example.zip
|
||||
"
|
||||
tag: v${{ steps.info.outputs.version }}
|
||||
39
.gitmodules
vendored
@ -1,57 +1,72 @@
|
||||
[submodule "web/documentserver-example/nodejs/public/assets/document-templates"]
|
||||
path = web/documentserver-example/nodejs/public/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/nodejs/public/assets/document-formats"]
|
||||
path = web/documentserver-example/nodejs/public/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/csharp-mvc/assets/document-templates"]
|
||||
path = web/documentserver-example/csharp-mvc/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/csharp-mvc/assets/document-formats"]
|
||||
path = web/documentserver-example/csharp-mvc/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/php/assets/document-templates"]
|
||||
path = web/documentserver-example/php/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/php/assets/document-formats"]
|
||||
path = web/documentserver-example/php/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = master
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/python/assets/document-templates"]
|
||||
path = web/documentserver-example/python/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/java/src/main/resources/assets/document-templates"]
|
||||
path = web/documentserver-example/java/src/main/resources/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/ruby/assets/document-templates"]
|
||||
path = web/documentserver-example/ruby/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/java-spring/src/main/resources/assets/document-templates"]
|
||||
path = web/documentserver-example/java-spring/src/main/resources/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/go/static/assets/document-templates"]
|
||||
path = web/documentserver-example/go/static/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/go/static/assets/document-formats"]
|
||||
path = web/documentserver-example/go/static/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/python/assets/document-formats"]
|
||||
path = web/documentserver-example/python/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = master
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/ruby/assets/document-formats"]
|
||||
path = web/documentserver-example/ruby/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = master
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/java/src/main/resources/assets/document-formats"]
|
||||
path = web/documentserver-example/java/src/main/resources/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = master
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/csharp/assets/document-templates"]
|
||||
path = web/documentserver-example/csharp/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/en
|
||||
branch = main/default
|
||||
[submodule "web/documentserver-example/csharp/assets/document-formats"]
|
||||
path = web/documentserver-example/csharp/assets/document-formats
|
||||
url = https://github.com/ONLYOFFICE/document-formats
|
||||
branch = feature/diagram
|
||||
[submodule "web/documentserver-example/php-laravel/public/assets/document-templates"]
|
||||
path = web/documentserver-example/php-laravel/public/assets/document-templates
|
||||
url = https://github.com/ONLYOFFICE/document-templates
|
||||
branch = main/default
|
||||
|
||||
@ -82,6 +82,37 @@ License: MICROSOFT .NET LIBRARY LICENSE
|
||||
License File: WebGrease.license
|
||||
|
||||
|
||||
web/documentserver-example/go
|
||||
|
||||
fx - An application framework for Go that makes dependency injection easy. (https://github.com/uber-go/fx).
|
||||
License: MIT
|
||||
License File: fx.license
|
||||
|
||||
golang-jwt - A go implementation of JSON Web Tokens. (https://github.com/golang-jwt/jwt).
|
||||
License: MIT
|
||||
License File: golang-jwt.license
|
||||
|
||||
gorilla/mux - Package gorilla/mux implements a request router and dispatcher for matching incoming requests to their respective handler. (https://github.com/gorilla/mux).
|
||||
License: BSD-3-Clause License
|
||||
License File: mux.license
|
||||
|
||||
mapstructure - Go library for decoding generic map values into native Go structures and vice versa. (https://github.com/mitchellh/mapstructure)
|
||||
License: MIT
|
||||
License File: mapstructure.license
|
||||
|
||||
schema - Package gorilla/schema fills a struct with form values. (https://github.com/gorilla/schema)
|
||||
License: BSD-3-Clause License
|
||||
License File: schema.license
|
||||
|
||||
viper - Viper is a complete configuration solution for Go applications including 12-Factor apps. It is designed to work within an application, and can handle all types of configuration needs and formats. (https://github.com/spf13/viper).
|
||||
License: MIT
|
||||
License File: viper.license
|
||||
|
||||
zap - Blazing fast, structured, leveled logging in Go. (https://github.com/uber-go/zap).
|
||||
License: MIT
|
||||
License File: zap.license
|
||||
|
||||
|
||||
web/documentserver-example/java
|
||||
|
||||
jQuery.BlockUI - The jQuery BlockUI Plugin lets you simulate synchronous behavior when using AJAX, without locking the browser. (https://github.com/malsup/blockui/)
|
||||
|
||||
54
CHANGELOG.md
@ -1,5 +1,56 @@
|
||||
# Change Log
|
||||
|
||||
- ruby: support vsdx in diagram editor
|
||||
- python: support vsdx in diagram editor
|
||||
- php: support vsdx in diagram editor
|
||||
- java: support vsdx in diagram editor
|
||||
- go: support vsdx in diagram editor
|
||||
- csharp-mvc: support vsdx in diagram editor
|
||||
- csharp: support vsdx in diagram editor
|
||||
- nodejs: support vsdx in diagram editor
|
||||
|
||||
## 1.13.0
|
||||
- nodejs: rename in wopi
|
||||
- nodejs: using faviconUrl from WOPI discovery
|
||||
- golang: new integration example
|
||||
- golang: upload files to the server
|
||||
- golang: create blank files and files with sample content
|
||||
- golang: edit uploaded files in onlyoffice editor
|
||||
- golang: delete files on the server
|
||||
- golang: show files history
|
||||
- php-laravel: new integration example
|
||||
- php-laravel: upload files to the server
|
||||
- php-laravel: create blank files and files with sample content
|
||||
- php-laravel: edit uploaded files in onlyoffice editor
|
||||
- php-laravel: delete files on the server
|
||||
- php-laravel: create, edit, and submit pdf forms
|
||||
- php-laravel: show forgotten files on a seperate page
|
||||
- php-laravel: fetch files
|
||||
- php-laravel: integrate sdk
|
||||
- onUserActionRequired
|
||||
- support pages, numbers, key formats
|
||||
- support hwp, hwpx formats
|
||||
- restore by url
|
||||
- refresh config
|
||||
- on uploading xml convert to supported type only
|
||||
- converting function on index page
|
||||
- editing by default
|
||||
- change reference source
|
||||
- filename in editor page title
|
||||
- close editor
|
||||
|
||||
## 1.12.0
|
||||
- nodejs: refresh config
|
||||
- nodejs: support pages, numbers, key formats
|
||||
- nodejs: support hwp, hwpx formats
|
||||
- sq-AL skin language
|
||||
|
||||
## 1.11.0
|
||||
- he-IL skin language
|
||||
- ConvertService.ashx address replaced with converter
|
||||
- coauthoring/CommandService.ashx address replaced with command
|
||||
- without submitForm in viewer
|
||||
|
||||
## 1.10.0
|
||||
- nodejs: converting function on index page
|
||||
- java-spring: using java docs-integration-sdk
|
||||
@ -27,8 +78,7 @@
|
||||
- nodejs: pdf, djvu, xps, oxps as pdf documentType
|
||||
- nodejs: filling pdf
|
||||
- version number to page meta
|
||||
- ar skin languages
|
||||
- sr-Latn-RS skin languages
|
||||
- ar, sr-Latn-RS skin languages
|
||||
- getting history via api
|
||||
- using a repo with a list of formats
|
||||
- convert after uploading only tagged formats
|
||||
|
||||
@ -10,6 +10,7 @@ The package contains examples written in .Net (C# MVC), .Net (C#), Java, Java Sp
|
||||
You should change `http://documentserver` to your server address in these files:
|
||||
* [.Net (C# MVC)](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/csharp-mvc) - `web/documentserver-example/csharp-mvc/web.appsettings.config`
|
||||
* [.Net (C#)](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/csharp) - `web/documentserver-example/csharp/settings.config`
|
||||
* [Go](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/go) - `web\documentserver-example\go\config\configuration.json`
|
||||
* [Java](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/java) - `web/documentserver-example/java/src/main/resources/settings.properties`
|
||||
* [Java Spring](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/java-spring) - `web/documentserver-example/java-spring/src/main/resources/application.properties`
|
||||
* [Node.js](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/nodejs) - `web/documentserver-example/nodejs/config/default.json`
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,4 +1,22 @@
|
||||
.center {
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
.center {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.4285 13C14.4102 13 14 13 14 13.5V15H6C5.44772 15 5 15.4477 5 16V17C5 17.5523 5.44771 18 6 18H14V19.5C14 20 14.3816 20 14.4285 20C14.6359 20 15.0099 19.9113 15.2172 19.7363L18.6207 17.0833C19.1264 16.6566 19.1264 16.3434 18.6207 15.9167L15.2172 13.2637C15.0099 13.0887 14.6359 13 14.4285 13Z" fill="#444444"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5715 4C9.58984 4 10 4 10 4.50002V6H18C18.5523 6 19 6.44772 19 7V8C19 8.55228 18.5523 9 18 9H10V10.5C10 11 9.61841 11 9.57151 11C9.36409 11 8.99012 10.9113 8.78279 10.7363L5.37934 8.08333C4.87356 7.65662 4.87356 7.34338 5.37934 6.91667L8.78279 4.26366C8.99012 4.08874 9.36409 4 9.5715 4Z" fill="#444444"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 821 B |
BIN
web/documentserver-example/csharp-mvc/Content/images/diagram.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
@ -1 +1,7 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#1E7AAA"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#000" fill-opacity=".25"/><path d="M6 15h18v1H6v-1zM6 19h18v1H6v-1zM6 23h18v1H6v-1zM6 27h18v1H6v-1z" fill="#fff"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#287CA9"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="7" y="28" width="10" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="7" y="22" width="16" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="7" y="16" width="16" height="2" rx="1" fill="#fff"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 503 B |
@ -1,5 +1,8 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 3C0 1.34315 1.34315 0 3 0H23L30 7V37C30 38.6569 28.6569 40 27 40H3C1.34315 40 0 38.6569 0 37V3Z" fill="#9E1919"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.0062 15V16.0065H24V15H17.0062ZM17.0062 19V20.0163H24V19H17.0062ZM24 23H17.0062V24.0261H24V23ZM6 28V27.0293H24V28H6ZM7 16H14V23H7V16ZM6 15H7H14H15V16V23V24H14H7H6V23V16V15Z" fill="white"/>
|
||||
<path d="M23 0L30 7H26C24.3431 7 23 5.65685 23 4V0Z" fill="black" fill-opacity="0.25"/>
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#E54D39"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="7" y="28" width="16" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="18" y="22" width="5" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="18" y="16" width="5" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="8" y="17" width="6" height="6" rx=".833" stroke="#fff" stroke-width="2"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 558 B After Width: | Height: | Size: 590 B |
@ -1 +1,8 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#F36700"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#000" fill-opacity=".25"/><path stroke="#fff" stroke-opacity=".95" d="M6.5 15.5h17v12h-17z"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#F36700"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="6" y="28" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
<rect x="22" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 570 B |
@ -1 +1,5 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#D0D5DA"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#646464"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 23c-.27614 0-.5.2239-.5.5v4c0 .2761.22386.5.5.5h15c.2761 0 .5-.2239.5-.5v-4c0-.2761-.2239-.5-.5-.5h-2c-.2761 0-.5-.2239-.5-.5s.2239-.5.5-.5h2c.8284 0 1.5.6716 1.5 1.5v4c0 .8284-.6716 1.5-1.5 1.5h-15c-.82843 0-1.5-.6716-1.5-1.5v-4c0-.8284.67157-1.5 1.5-1.5h2c.27614 0 .5.2239.5.5s-.22386.5-.5.5h-2z" fill="#646464"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20 20.0001L15 14l-5 6.0001h3v4c0 .5523.4477 1 1 1h2c.5523 0 1-.4477 1-1v-4h3z" fill="#646464"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#D1D5DA"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5zm-5.293 14.293a1 1 0 0 0-1.414 0l-4 4a1 1 0 1 0 1.414 1.414L14 17.414V25a1 1 0 1 0 2 0v-7.586l2.293 2.293a1 1 0 0 0 1.414-1.414z" fill="#646464"/>
|
||||
<path d="M8.833 22H11a1 1 0 1 1 0 2H9v4h12v-4h-2a1 1 0 1 1 0-2h2.167c1.012 0 1.833.82 1.833 1.833v4.334C23 29.179 22.18 30 21.167 30H8.833A1.833 1.833 0 0 1 7 28.167v-4.334C7 22.821 7.82 22 8.833 22" fill="#646464"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 638 B |
@ -1 +1,10 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#6AAA1E"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#000" fill-opacity=".25"/><path fill-rule="evenodd" clip-rule="evenodd" d="M6 15h18v13H7.00001v-1H12v-3H7v4H6V15zm7 12h4v-3h-4v3zm5 0h5v-3h-5v3zm5-7v3h-5v-3h5zm-6 0v3h-4v-3h4zm-5 0v3H7v-3h5zm11-1v-3h-5v3h5zm-10-3h4v3h-4v-3zm-1 3v-3H7v3h5z" fill="#fff" fill-opacity=".95"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#3AA133"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="6" y="28" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="22" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
<rect x="12" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
<rect x="22" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 545 B After Width: | Height: | Size: 703 B |
@ -1,12 +1,5 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.84616 1H10.8462L14.8462 5V15H2.84616V1Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.8462 5L10.8462 1H2.84616V15H14.8462V5ZM10.8462 0L15.8462 5V16H1.84616V0H10.8462Z" fill="#BFBFBF"/>
|
||||
<rect x="3.84616" y="10" width="10" height="4" fill="#3779A6"/>
|
||||
<path d="M3.84616 4H4.84616V5H3.84616V4Z" fill="#BFBFBF"/>
|
||||
<path d="M3.84616 6H4.84616V7H3.84616V6Z" fill="#BFBFBF"/>
|
||||
<path d="M4.84616 8H3.84616V9H4.84616V8Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8462 8H5.84616V9H12.8462V8Z" fill="#BFBFBF"/>
|
||||
<path d="M7.84616 6H5.84616V7H7.84616V6Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8462 4H5.84616V5H12.8462V4Z" fill="#BFBFBF"/>
|
||||
<path opacity="0.3" d="M9.84616 1H10.8462V4H14.8462L15.8462 5H9.84616V1Z" fill="#333333"/>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path fill="#287CA9" d="M5 7h6v1H5zm0 2h6v1H5zm0 2h4v1H5z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 394 B |
@ -1 +1,5 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 1h8l4 4v10H2V1z" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M14 5l-4-4H2v14h12V5zm-4-5l5 5v11H1V0h9z" fill="#BFBFBF"/><path fill="#9E1919" d="M3 10h10v4H3z"/><path d="M7 7V2H3v5h4zM8 3V2h2v1H8zM8 5V4h5v1H8zM13 6H8v1h5V6zM13 8H3v1h10V8z" fill="#BFBFBF"/><path opacity=".3" d="M9 1h1v3h4l1 1H9V1z" fill="#333"/></svg>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path d="M7.36 5.777c0 1.085-.31 2.363-.833 3.543-.526 1.185-1.235 2.198-1.974 2.796l.803 1.109c1.992-1.342 4.198-2.262 6.333-1.954L12 9.938c-1.819-.612-3.278-2.449-3.278-4.16zm.888 2.84a6.7 6.7 0 0 0 1.161 1.35c-.668.122-1.323.32-1.957.573q.17-.322.316-.657c.183-.41.344-.836.48-1.267" fill="#E54D39"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 637 B |
@ -1,12 +1,6 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2 1H10L14 5V15H2V1Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 5L10 1H2V15H14V5ZM10 0L15 5V16H1V0H10Z" fill="#BFBFBF"/>
|
||||
<rect x="3" y="10" width="10" height="4" fill="#F36700"/>
|
||||
<path d="M3 4H4V5H3V4Z" fill="#BFBFBF"/>
|
||||
<path d="M3 6H4V7H3V6Z" fill="#BFBFBF"/>
|
||||
<path d="M4 8H3V9H4V8Z" fill="#BFBFBF"/>
|
||||
<path d="M12 8H5V9H12V8Z" fill="#BFBFBF"/>
|
||||
<path d="M7 6H5V7H7V6Z" fill="#BFBFBF"/>
|
||||
<path d="M12 4H5V5H12V4Z" fill="#BFBFBF"/>
|
||||
<path opacity="0.3" d="M9 1H10V4H14L15 5H9V1Z" fill="#333333"/>
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path d="M5 10a3 3 0 1 0 3-3v3z" fill="#F36700"/>
|
||||
<path d="M4.5 9A2.5 2.5 0 0 1 7 6.5V9z" fill="#F36700"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 444 B |
@ -0,0 +1,6 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path d="M5 8h6v1H5zm0 1h1v1H5zm5 0h1v1h-1zM7 6h2v2H7z" fill="#5951BB"/>
|
||||
<path stroke="#5951BB" d="M4.5 10.5h2v2h-2zm5 0h2v2h-2z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 469 B |
@ -1,12 +1,5 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.84592 1H10.8459L14.8459 5V15H2.84592V1Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.8459 5L10.8459 1H2.84592V15H14.8459V5ZM10.8459 0L15.8459 5V16H1.84592V0H10.8459Z" fill="#BFBFBF"/>
|
||||
<rect x="3.84592" y="10" width="10" height="4" fill="#78A73B"/>
|
||||
<path d="M3.84592 4H4.84592V5H3.84592V4Z" fill="#BFBFBF"/>
|
||||
<path d="M3.84592 6H4.84592V7H3.84592V6Z" fill="#BFBFBF"/>
|
||||
<path d="M4.84592 8H3.84592V9H4.84592V8Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8459 8H5.84592V9H12.8459V8Z" fill="#BFBFBF"/>
|
||||
<path d="M7.84592 6H5.84592V7H7.84592V6Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8459 4H5.84592V5H12.8459V4Z" fill="#BFBFBF"/>
|
||||
<path opacity="0.3" d="M9.84592 1H10.8459V4H14.8459L15.8459 5H9.84592V1Z" fill="#333333"/>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.207V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.793z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v1.9c0 .56 0 .84.109 1.054a1 1 0 0 0 .437.437c.214.109.494.109 1.054.109H13" stroke="#BBB"/>
|
||||
<path fill="#3AA133" d="M8 7h3v2H8zm0 3h3v2H8zM5 7h2v2H5zm0 3h2v2H5z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 408 B |
BIN
web/documentserver-example/csharp-mvc/Content/images/pdf.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -42,10 +42,14 @@
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
width: 29%;
|
||||
width: 18%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction {
|
||||
width: 23%;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
width: 21%;
|
||||
padding-right: 18px;
|
||||
@ -220,7 +224,7 @@
|
||||
}
|
||||
|
||||
.tableHeaderCellFileName {
|
||||
width: 16%;
|
||||
width: 9%;
|
||||
}
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
@ -229,7 +233,12 @@
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
text-align: right;
|
||||
width: 37%;
|
||||
width: 9%;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction{
|
||||
width: 11%;
|
||||
padding-right: 82px;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
@ -244,19 +253,24 @@
|
||||
}
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
width: 26%;
|
||||
width: 15%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.tableHeaderCellFileName {
|
||||
width: 17%;
|
||||
width: 28%;
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
width: 27%;
|
||||
width: 6%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction{
|
||||
width: 18%;
|
||||
padding-right: 54px;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
padding-right: 18px;
|
||||
width: 20%;
|
||||
@ -277,12 +291,17 @@
|
||||
|
||||
.tableRow td:first-child {
|
||||
flex-grow: 0;
|
||||
width: 15%;
|
||||
width: 25%;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.contentCells-icon {
|
||||
width: 3%;
|
||||
}
|
||||
|
||||
.firstContentCellViewers {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 890px) and (min-width: 769px ) {
|
||||
@ -290,7 +309,7 @@
|
||||
width: 20%;
|
||||
}
|
||||
.contentCells-shift {
|
||||
padding-right: 28px;
|
||||
padding-right: 27px;
|
||||
}
|
||||
|
||||
.main-panel {
|
||||
@ -323,11 +342,16 @@
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
text-align: left;
|
||||
width: 31%;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
width: 18%;
|
||||
width: 19%;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction {
|
||||
width: 19%;
|
||||
padding-right: 45px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -429,8 +453,8 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 7%;
|
||||
margin-right: -11px;
|
||||
margin-left: auto;
|
||||
margin-right: 24px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.contentCells-icon {
|
||||
@ -438,13 +462,13 @@
|
||||
}
|
||||
|
||||
.tableRow td:last-child {
|
||||
width: 12%;
|
||||
padding-right: 40px;
|
||||
width: 7%;
|
||||
padding-right: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.contentCells-shift {
|
||||
padding-right: 35px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.downloadContentCellShift:after {
|
||||
@ -530,6 +554,15 @@
|
||||
height: 56px;
|
||||
margin-bottom: 24px !important;
|
||||
}
|
||||
.button.hoar{
|
||||
width: 18%;
|
||||
height: 27px;
|
||||
margin-bottom: 7px !important;
|
||||
}
|
||||
.button.converting{
|
||||
width: 126px;
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 560px) and (min-width: 510px) {
|
||||
@ -538,7 +571,7 @@
|
||||
}
|
||||
|
||||
.downloadContentCellShift {
|
||||
padding-right: 45px;
|
||||
padding-right: 16px;
|
||||
max-width: 4%;
|
||||
}
|
||||
}
|
||||
@ -558,7 +591,7 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 6%;
|
||||
padding-right: 37px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.firstContentCellShift {
|
||||
@ -584,12 +617,12 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 3%;
|
||||
padding-right: 37px;
|
||||
padding-right: 0px;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.firstContentCellShift {
|
||||
margin-left: 1px;
|
||||
margin-left: 2px;
|
||||
flex-basis: 14%;
|
||||
}
|
||||
|
||||
@ -619,7 +652,7 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 4%;
|
||||
margin-right: -18px;
|
||||
margin-right: 18px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
@ -628,7 +661,7 @@
|
||||
}
|
||||
|
||||
.contentCells-icon{
|
||||
width: 10%;
|
||||
width: 12%;
|
||||
}
|
||||
footer table td {
|
||||
margin: 0;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -238,6 +238,52 @@ label .checkbox {
|
||||
color: #FF6F3D;
|
||||
}
|
||||
|
||||
.button.converting {
|
||||
margin-top: -20px;
|
||||
padding: 16px 16px;
|
||||
}
|
||||
|
||||
.button.converting.wide {
|
||||
padding: 16px 29px;
|
||||
}
|
||||
|
||||
.button.hoar {
|
||||
background: #EFEFEF;
|
||||
border: 1px solid #EFEFEF;
|
||||
margin-right: 7px;
|
||||
margin-bottom: 7px;
|
||||
width: 13%;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.button.hoar.disable {
|
||||
opacity: 30%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.button.hoar:not(.disable):hover {
|
||||
background: #FF6F3D;
|
||||
border: 1px solid #FF6F3D;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.button.hoar.orange {
|
||||
background: #FF6F3D;
|
||||
border: 1px solid #FF6F3D;
|
||||
color: #FFFFFF;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.button.hoar.orange.disable {
|
||||
background: #444444;
|
||||
border: 1px solid #444444;
|
||||
color: #FFFFFF;
|
||||
cursor: default;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
.button.file-type {
|
||||
font-size: 11px;
|
||||
color: #FFFFFF;
|
||||
@ -380,6 +426,32 @@ label .checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#convertingProgress {
|
||||
color: #333333;
|
||||
display: none;
|
||||
font-size: 12px;
|
||||
margin: 30px 35px;
|
||||
}
|
||||
|
||||
#convertingProgress .convertFileName{
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 160%;
|
||||
overflow: hidden;
|
||||
padding-left: 28px;
|
||||
margin-bottom: 16px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#convertingProgress .describeUpload {
|
||||
line-height: 150%;
|
||||
letter-spacing: -0.02em;
|
||||
padding: 16px 0;
|
||||
}
|
||||
|
||||
.error-message {
|
||||
background: url("images/error.svg") no-repeat scroll 4px 10px;
|
||||
color: #CB0000;
|
||||
@ -401,6 +473,10 @@ label .checkbox {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
.waiting {
|
||||
opacity: 30%;
|
||||
}
|
||||
|
||||
.current {
|
||||
background-image: url("images/loader16.gif");
|
||||
}
|
||||
@ -413,6 +489,12 @@ label .checkbox {
|
||||
background-image: url("images/notdone.svg");
|
||||
}
|
||||
|
||||
.convertPercent {
|
||||
color: #FF6F3D;
|
||||
font-weight: 700;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.step-descr {
|
||||
display: block;
|
||||
margin-left: 35px;
|
||||
@ -420,6 +502,10 @@ label .checkbox {
|
||||
line-height: 188%;
|
||||
}
|
||||
|
||||
.step-descr.disable {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.progress-descr {
|
||||
letter-spacing: -0.02em;
|
||||
line-height: 150%;
|
||||
@ -521,26 +607,35 @@ footer table tr td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.convertFileName.word,
|
||||
.stored-edit.word,
|
||||
.uploadFileName.word {
|
||||
background-image: url("images/icon_docx.svg");
|
||||
}
|
||||
|
||||
.convertFileName.cell,
|
||||
.stored-edit.cell,
|
||||
.uploadFileName.cell {
|
||||
background-image: url("images/icon_xlsx.svg");
|
||||
}
|
||||
|
||||
.convertFileName.slide,
|
||||
.stored-edit.slide,
|
||||
.uploadFileName.slide {
|
||||
background-image: url("images/icon_pptx.svg");
|
||||
}
|
||||
|
||||
.convertFileName.pdf,
|
||||
.stored-edit.pdf,
|
||||
.uploadFileName.pdf {
|
||||
background-image: url("images/icon_pdf.svg");
|
||||
}
|
||||
|
||||
.stored-edit.diagram,
|
||||
.uploadFileName.diagram {
|
||||
background-image: url("images/icon_vsdx.svg");
|
||||
}
|
||||
|
||||
.stored-edit span {
|
||||
font-size: 12px;
|
||||
line-height: 12px;
|
||||
@ -592,6 +687,11 @@ footer table tr td:first-child {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.convertTable {
|
||||
margin-top: 10px;
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.tableRow {
|
||||
background: transparent;
|
||||
-moz-transition: all 0.2s ease-in-out;
|
||||
@ -638,6 +738,12 @@ footer table tr td:first-child {
|
||||
width: 11%;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction{
|
||||
width: 13%;
|
||||
text-align: right;
|
||||
padding-right: 88px;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
width: 13%;
|
||||
text-align: right;
|
||||
@ -662,7 +768,7 @@ footer table tr td:first-child {
|
||||
}
|
||||
|
||||
.contentCells-shift {
|
||||
padding-right: 44px;
|
||||
padding-right: 43px;
|
||||
}
|
||||
|
||||
.contentCells-icon {
|
||||
@ -726,7 +832,7 @@ footer table tr td:first-child {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.icon-delete {
|
||||
.icon-action {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -805,6 +911,13 @@ html {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.typeButtonsRow {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tableRow td:first-child {
|
||||
display: flex;
|
||||
@ -813,11 +926,11 @@ html {
|
||||
}
|
||||
|
||||
.tableHeaderCellFileName {
|
||||
width: 30%;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
width: 28%;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -225,7 +225,7 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
private static void ProcessResponseError(int errorCode)
|
||||
{
|
||||
var errorMessage = string.Empty;
|
||||
const string errorMessageTemplate = "Error occurred in the ConvertService.ashx: {0}";
|
||||
const string errorMessageTemplate = "Error occurred in the ConvertService: {0}";
|
||||
|
||||
switch (errorCode)
|
||||
{
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -78,7 +78,8 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
"Can't view chat",
|
||||
"Can't protect file",
|
||||
"View file without collaboration",
|
||||
"Can’t submit forms"
|
||||
"Can’t submit forms",
|
||||
"Can’t refresh outdated file"
|
||||
};
|
||||
|
||||
private static List<User> users = new List<User>() {
|
||||
@ -95,7 +96,8 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
descr_user_1,
|
||||
true,
|
||||
true,
|
||||
new Goback(null, false)
|
||||
new Goback(null, false),
|
||||
new Close(null, false)
|
||||
),
|
||||
new User(
|
||||
"uid-2",
|
||||
@ -115,7 +117,8 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
descr_user_2,
|
||||
false,
|
||||
true,
|
||||
new Goback("Go to Documents", null)
|
||||
new Goback("Go to Documents", null),
|
||||
new Close(null, true)
|
||||
),
|
||||
new User(
|
||||
"uid-3",
|
||||
@ -135,7 +138,8 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
descr_user_3,
|
||||
false,
|
||||
false,
|
||||
null
|
||||
null,
|
||||
new Close(null, true)
|
||||
),
|
||||
new User(
|
||||
"uid-0",
|
||||
@ -150,6 +154,7 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
descr_user_0,
|
||||
false,
|
||||
false,
|
||||
null,
|
||||
null
|
||||
)
|
||||
};
|
||||
@ -242,8 +247,9 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
public bool avatar;
|
||||
|
||||
public Goback goback;
|
||||
public Close close;
|
||||
|
||||
public User(string id, string name, string email, string group, List<string> reviewGroups, Dictionary<string, object> commentGroups, List<string> userInfoGroups, bool? favorite, List<string> deniedPermissions, List<string> descriptions, bool templates, bool avatar, Goback goback)
|
||||
public User(string id, string name, string email, string group, List<string> reviewGroups, Dictionary<string, object> commentGroups, List<string> userInfoGroups, bool? favorite, List<string> deniedPermissions, List<string> descriptions, bool templates, bool avatar, Goback goback, Close close)
|
||||
{
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
@ -258,6 +264,7 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
this.userInfoGroups = userInfoGroups;
|
||||
this.avatar = avatar;
|
||||
this.goback = goback;
|
||||
this.close = close;
|
||||
}
|
||||
}
|
||||
|
||||
@ -274,4 +281,18 @@ namespace OnlineEditorsExampleMVC.Helpers
|
||||
this.blank = blank;
|
||||
}
|
||||
}
|
||||
|
||||
public class Close
|
||||
{
|
||||
public string text;
|
||||
public bool visible;
|
||||
|
||||
public Close(){}
|
||||
|
||||
public Close(string text, bool visible)
|
||||
{
|
||||
this.text = text;
|
||||
this.visible = visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -77,19 +77,18 @@ namespace OnlineEditorsExampleMVC.Models
|
||||
var jss = new JavaScriptSerializer();
|
||||
|
||||
var ext = Path.GetExtension(FileName).ToLower(); // get file extension
|
||||
var canFill = DocManagerHelper.FillFormExts.Contains(ext);
|
||||
var editorsMode = Mode ?? (canFill ? "fillForms" : "edit"); // get editor mode
|
||||
var editorsMode = Mode ?? "edit"; // get editor mode
|
||||
|
||||
var canEdit = DocManagerHelper.EditedExts.Contains(ext); // check if the file with such an extension can be edited
|
||||
|
||||
var id = request.Cookies.GetOrDefault("uid", null);
|
||||
var user = Users.getUser(id); // get the user
|
||||
|
||||
if ((!canEdit && editorsMode.Equals("edit") || editorsMode.Equals("fillForms")) && canFill) {
|
||||
if ((!canEdit && editorsMode.Equals("edit") || editorsMode.Equals("fillForms")) && DocManagerHelper.FillFormExts.Contains(ext)) {
|
||||
editorsMode = "fillForms";
|
||||
canEdit = true;
|
||||
}
|
||||
var submitForm = (editorsMode.Equals("fillForms") || editorsMode.Equals("embedded")) && user.id.Equals("uid-1"); // check if the Submit form button is displayed or not
|
||||
var submitForm = !editorsMode.Equals("view") && user.id.Equals("uid-1"); // check if the Submit form button is displayed or not
|
||||
var mode = canEdit && editorsMode != "view" ? "edit" : "view"; // set the mode parameter: change it to view if the document can't be edited
|
||||
|
||||
// favorite icon state
|
||||
@ -221,6 +220,13 @@ namespace OnlineEditorsExampleMVC.Models
|
||||
{ "text", user.goback.text },
|
||||
{ "blank", user.goback.blank }
|
||||
} : new Dictionary<string, object>{}
|
||||
},
|
||||
{
|
||||
"close", user.close != null ? new Dictionary<string, object>
|
||||
{
|
||||
{ "text", user.close.text },
|
||||
{ "visible", user.close. visible }
|
||||
} : new Dictionary<string, object>{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -31,10 +31,12 @@ namespace OnlineEditorsExampleMVC.Models
|
||||
{
|
||||
public enum FileType
|
||||
{
|
||||
Null,
|
||||
Word,
|
||||
Cell,
|
||||
Slide,
|
||||
Pdf
|
||||
Pdf,
|
||||
Diagram
|
||||
}
|
||||
|
||||
// get file type
|
||||
@ -46,8 +48,9 @@ namespace OnlineEditorsExampleMVC.Models
|
||||
if (FormatManager.DocumentExtensions().Contains(ext)) return FileType.Word; // word type for document extensions
|
||||
if (FormatManager.SpreadsheetExtensions().Contains(ext)) return FileType.Cell; // cell type for spreadsheet extensions
|
||||
if (FormatManager.PresentationExtensions().Contains(ext)) return FileType.Slide; // slide type for presentation extensions
|
||||
if (FormatManager.DiagramExtensions().Contains(ext)) return FileType.Diagram; // diagram type for diagram extensions
|
||||
|
||||
return FileType.Word; // the default type is word
|
||||
return FileType.Null; // the default type is word
|
||||
}
|
||||
}
|
||||
|
||||
@ -201,6 +204,20 @@ namespace OnlineEditorsExampleMVC.Models
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static List<string> DiagramExtensions()
|
||||
{
|
||||
return Diagrams()
|
||||
.Select(format => format.Extension())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static List<Format> Diagrams()
|
||||
{
|
||||
return All()
|
||||
.Where(format => format.Type == FileType.Diagram)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static List<string> AllExtensions()
|
||||
{
|
||||
return All()
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -7,7 +7,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Ascensio System SIA")]
|
||||
[assembly: AssemblyProduct("OnlineEditorsExampleMVC")]
|
||||
[assembly: AssemblyCopyright("Ascensio System SIA 2024")]
|
||||
[assembly: AssemblyCopyright("Ascensio System SIA 2025")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
|
||||
@ -38,7 +38,15 @@ Configure the IIS components for the server to work correctly:
|
||||
* **Common HTTP Features**: Default Document,
|
||||
* **Security**: Request Filtering.
|
||||
|
||||
## Step 4. Run your website with the editors
|
||||
## Step 4. Configure JWT
|
||||
|
||||
Open the *web.appsettings.config* file and [specify the same secret key](https://helpcenter.onlyoffice.com/installation/docs-configure-jwt.aspx) as used in your Document Server to enable JWT:
|
||||
|
||||
```
|
||||
<add key="files.docservice.secret" value="secret" />
|
||||
```
|
||||
|
||||
## Step 5. Run your website with the editors
|
||||
1. Run the Internet Information Service (IIS) Manager:
|
||||
|
||||
**Start** -> **Control Panel** -> **System and Security** -> **Administrative Tools** -> **Internet Information Services (IIS) Manager**
|
||||
@ -65,7 +73,7 @@ Configure the IIS components for the server to work correctly:
|
||||
|
||||

|
||||
|
||||
## Step 5. Check accessibility
|
||||
## Step 6. Check accessibility
|
||||
|
||||
In case the example and Document Server are installed on different computers, make sure that your server with the example installed has access to the Document Server with the address which you specify instead of **documentserver** in the configuration files.
|
||||
|
||||
|
||||
@ -1,3 +1,21 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
function deleteFile(event) {
|
||||
let filename = event.currentTarget.getAttribute("data");
|
||||
filename = encodeURIComponent(filename);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -109,7 +109,7 @@ if (typeof jQuery != "undefined") {
|
||||
|
||||
var timer = null;
|
||||
var checkConvert = function (filePass, fileType) {
|
||||
filePass = filePass ? filePass : null;
|
||||
filePass = filePass ? filePass : null;
|
||||
if (timer != null) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
@ -121,7 +121,7 @@ if (typeof jQuery != "undefined") {
|
||||
jq("#filePass").val("");
|
||||
|
||||
var fileName = jq("#hiddenFileName").val();
|
||||
var posExt = fileName.lastIndexOf('.');
|
||||
var posExt = fileName.lastIndexOf('.') + 1;
|
||||
posExt = 0 <= posExt ? fileName.substring(posExt).trim().toLowerCase() : '';
|
||||
|
||||
if (!formatManager.isAutoConvertible(posExt)) {
|
||||
@ -154,6 +154,16 @@ if (typeof jQuery != "undefined") {
|
||||
return;
|
||||
} else {
|
||||
if (response.error.includes("Error conversion output format")) {
|
||||
let format = formatManager.findByExtension(fileName.split(".").pop());
|
||||
if (!format.convert.includes("docx")) {
|
||||
jq(".document").addClass("invisible")
|
||||
}
|
||||
if (!format.convert.includes("xlsx")) {
|
||||
jq(".spreadsheet").addClass("invisible")
|
||||
}
|
||||
if (!format.convert.includes("pptx")) {
|
||||
jq(".presentation").addClass("invisible")
|
||||
}
|
||||
jq("#select-file-type").removeClass("invisible");
|
||||
jq("#step2").removeClass("current");
|
||||
jq("#hiddenFileName").attr("placeholder", filePass);
|
||||
@ -294,6 +304,134 @@ if (typeof jQuery != "undefined") {
|
||||
jq("#embeddedView").attr("src", url);
|
||||
});
|
||||
|
||||
jq(document).on("click", "#beginEditConverted:not(.disable)", function () {
|
||||
var fileId = encodeURIComponent(jq('#hiddenFileName').attr("data"));
|
||||
var url = UrlEditor + "?fileName=" + fileId;
|
||||
window.open(url, "_blank");
|
||||
jq('#hiddenFileName').val("");
|
||||
jq.unblockUI();
|
||||
document.location.reload();
|
||||
});
|
||||
|
||||
jq(document).on("click", "#beginViewConverted:not(.disable)", function () {
|
||||
var fileId = encodeURIComponent(jq('#hiddenFileName').attr("data"));
|
||||
var url = UrlEditor + "?editorsMode=view&fileName=" + fileId;
|
||||
window.open(url, "_blank");
|
||||
jq('#hiddenFileName').val("");
|
||||
jq.unblockUI();
|
||||
document.location.reload();
|
||||
});
|
||||
|
||||
jq(document).on("click", "#downloadConverted:not(.disable)", function () {
|
||||
var fileId = jq('#hiddenFileName').attr("data");
|
||||
if (jq("#downloadConverted").attr("data") == "fromConverter") window.location.assign(fileId);
|
||||
else window.open("webeditor.ashx?type=download&fileName=" + encodeURIComponent(fileId), "_blank");
|
||||
});
|
||||
|
||||
jq(document).on("click", ".convert-file", function () {
|
||||
const currentElement = jq(this);
|
||||
var fileName = currentElement.attr("data");
|
||||
var type = currentElement.attr("data-type");
|
||||
|
||||
jq.blockUI({
|
||||
theme: true,
|
||||
title: "Converting file" + "<div class=\"dialog-close\"></div>",
|
||||
message: jq("#convertingProgress"),
|
||||
overlayCSS: { "background-color": "#aaa" },
|
||||
themedCSS: { width: "539px", top: "20%", left: "50%", marginLeft: "-269px" }
|
||||
});
|
||||
|
||||
jq("#convertFileName").text(decodeURIComponent(fileName));
|
||||
jq("#convertFileName").removeClass("word slide cell");
|
||||
jq("#convertFileName").addClass(type);
|
||||
jq("#convTypes").empty();
|
||||
|
||||
let format = formatManager.findByExtension(fileName.split('.').pop());
|
||||
if (format) {
|
||||
format.convert.forEach(ext => {
|
||||
jq("#convTypes").append(jq(`<td name="convertingTypeButton" id="wordTo${ext}" class="button hoar" data="${ext}">${ext}</td>`));
|
||||
});
|
||||
}
|
||||
|
||||
jq("#hiddenFileName").val(fileName);
|
||||
jq("#convertStep1").addClass("done");
|
||||
jq("#convertStep2").addClass("waiting");
|
||||
});
|
||||
|
||||
jq(document).on("click", "td[name='convertingTypeButton']:not(.disable, .orange)", function () {
|
||||
const currentElement = jq(this);
|
||||
let id = currentElement[0].id;
|
||||
let fileExt = jq(`#${id}`).attr("data");
|
||||
jq(`#${id}`).addClass("orange");
|
||||
jq("td[name='convertingTypeButton']").addClass("disable");
|
||||
jq("#convertStep2").removeClass("waiting").removeClass("done").addClass("current");
|
||||
jq("#convertStep2").text('2. File conversion');
|
||||
jq("#convert-descr").removeClass("disable");
|
||||
jq("#convertPercent").text("0 %");
|
||||
jq("#hiddenFileName").attr("placeholder",fileExt);
|
||||
jq("#downloadConverted").addClass("disable");
|
||||
jq("#beginEditConverted").addClass("disable");
|
||||
jq("#beginViewConverted").addClass("disable");
|
||||
mustReload = true;
|
||||
|
||||
convertFile();
|
||||
});
|
||||
|
||||
function convertFile (filePass) {
|
||||
let fileName = decodeURIComponent(jq("#hiddenFileName").val());
|
||||
let fileExt = jq("#hiddenFileName").attr("placeholder");
|
||||
|
||||
filePass = filePass ? filePass : null;
|
||||
if (timer != null) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
timer = setTimeout(function () {
|
||||
jq.ajax({
|
||||
async: true,
|
||||
contentType: "text/xml",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: JSON.stringify({filename: fileName, filePass: filePass, lang: language, fileExt: fileExt, keepOriginal: true}),
|
||||
url: UrlConverter,
|
||||
complete: function (data) {
|
||||
try {
|
||||
var response = jq.parseJSON(data.responseText);
|
||||
} catch (e) {
|
||||
response = { error: e };
|
||||
}
|
||||
if (!response.filename && !response.step && response.error) {
|
||||
jq("#convertStep2").removeClass("current").addClass("error");
|
||||
jq("#convertStep2").text(`2. File conversion to ${fileExt}`);
|
||||
jq("#convert-error").removeClass("hidden");
|
||||
jq("#convert-error").text(`${response.error}`);
|
||||
jq("td[name='convertingTypeButton']").removeClass("disable orange");
|
||||
return;
|
||||
}
|
||||
if (response.step != undefined && response.step != 100) {
|
||||
jq("#convertPercent").text(`${response.step} %`);
|
||||
convertFile();
|
||||
} else {
|
||||
jq("#convertPercent").text(`${response.step} %`);
|
||||
jq("#convertStep2").removeClass("current").addClass("done");
|
||||
jq("#convertStep2").text(`2. File conversion to ${fileExt}`);
|
||||
jq("#downloadConverted").removeClass("disable");
|
||||
if (response.error !== "FileTypeIsNotSupported") {
|
||||
jq("#hiddenFileName").attr("data",response.filename);
|
||||
jq("#beginEditConverted").removeClass("disable");
|
||||
jq("#beginViewConverted").removeClass("disable");
|
||||
jq("#downloadConverted").attr("data","fromStorage");
|
||||
} else {
|
||||
let newFilename = fileName.split('.').slice(0,-1).join('.')
|
||||
jq("#hiddenFileName").attr("data",response.filename.split("&filename=download").join(`&filename=${newFilename}`));
|
||||
jq("#downloadConverted").attr("data","fromConverter");
|
||||
}
|
||||
jq("td[name='convertingTypeButton']").removeClass("disable orange");
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
jq(document).on("click", "#cancelEdit, .dialog-close", function () {
|
||||
jq('#hiddenFileName').val("");
|
||||
jq("#embeddedView").attr("src", "");
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -62,8 +62,8 @@
|
||||
|
||||
// the document is modified
|
||||
var onDocumentStateChange = function (event) {
|
||||
var title = document.title.replace(/\*$/g, "");
|
||||
document.title = title + (event.data ? "*" : "");
|
||||
var title = document.title.replace(/^\*/g, "");
|
||||
document.title = (event.data ? "*" : "") + title;
|
||||
};
|
||||
|
||||
// the user is trying to switch the document from the viewing into the editing mode
|
||||
@ -106,6 +106,15 @@
|
||||
docEditor.setActionLink(replaceActionLink(location.href, linkParam)); // set the link to the document which contains a bookmark
|
||||
};
|
||||
|
||||
var onRequestClose = function () { // close editor
|
||||
docEditor.destroyEditor();
|
||||
innerAlert("Document editor closed successfully");
|
||||
};
|
||||
|
||||
var onUserActionRequired = function () {
|
||||
console.log("User action required");
|
||||
};
|
||||
|
||||
// the meta information of the document is changed via the meta command
|
||||
var onMetaChange = function (event) {
|
||||
if (event.data.favorite !== undefined) {
|
||||
@ -182,6 +191,18 @@
|
||||
}
|
||||
};
|
||||
|
||||
var onRequestRefreshFile = function(event) {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "webeditor.ashx?type=config&fileName=" + encodeURIComponent(config.document.title) +
|
||||
"&directUrl=" + !!config.document.directUrl +
|
||||
"&permissions=" + encodeURIComponent(JSON.stringify(config.document.permissions)));
|
||||
xhr.send();
|
||||
xhr.onload = function () {
|
||||
innerAlert(xhr.responseText);
|
||||
docEditor.refreshFile(JSON.parse(xhr.responseText));
|
||||
};
|
||||
};
|
||||
|
||||
var onRequestOpen = function (event) { // user open external data source
|
||||
innerAlert("onRequestOpen");
|
||||
var windowName = event.data.windowName;
|
||||
@ -218,6 +239,52 @@
|
||||
}
|
||||
};
|
||||
|
||||
var onRequestReferenceSource = function (event) {
|
||||
innerAlert("onRequestReferenceSource");
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "webeditor.ashx?type=files");
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.send();
|
||||
xhr.onload = function () {
|
||||
if (xhr.status === 200) {
|
||||
innerAlert(JSON.parse(xhr.responseText));
|
||||
let fileList = JSON.parse(xhr.responseText);
|
||||
let firstXlsxName;
|
||||
let file;
|
||||
for (file of fileList) {
|
||||
if (file["title"]) {
|
||||
if (getFileExt(file["title"]) === "xlsx")
|
||||
{
|
||||
firstXlsxName = file["title"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (firstXlsxName) {
|
||||
let data = {
|
||||
directUrl : !!config.document.directUrl,
|
||||
path : firstXlsxName
|
||||
};
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "webeditor.ashx?type=reference");
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.send(JSON.stringify(data));
|
||||
xhr.onload = function () {
|
||||
if (xhr.status === 200) {
|
||||
docEditor.setReferenceSource(JSON.parse(xhr.responseText));
|
||||
} else {
|
||||
innerAlert("/reference - bad status");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
innerAlert("No *.xlsx files");
|
||||
}
|
||||
} else {
|
||||
innerAlert("/files - bad status");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var onRequestHistory = function () {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "webeditor.ashx?type=gethistory&filename=<%= Model.FileName %>");
|
||||
@ -245,9 +312,11 @@
|
||||
var onRequestRestore = function (event) {
|
||||
var fileName = "<%= Model.FileName %>";
|
||||
var version = event.data.version;
|
||||
var url = event.data.url;
|
||||
var data = {
|
||||
fileName: fileName,
|
||||
version: version
|
||||
version: version,
|
||||
url: url
|
||||
};
|
||||
|
||||
let xhr = new XMLHttpRequest();
|
||||
@ -309,6 +378,7 @@
|
||||
config.events = {
|
||||
'onAppReady': onAppReady,
|
||||
'onDocumentStateChange': onDocumentStateChange,
|
||||
'onUserActionRequired': onUserActionRequired,
|
||||
'onError': onError,
|
||||
'onOutdatedVersion': onOutdatedVersion,
|
||||
"onMakeActionLink": onMakeActionLink,
|
||||
@ -319,6 +389,8 @@
|
||||
};
|
||||
|
||||
if (config.editorConfig.user.id) {
|
||||
config.events['onRequestRefreshFile'] = onRequestRefreshFile;
|
||||
config.events['onRequestClose'] = onRequestClose;
|
||||
// the user is trying to show the document version history
|
||||
config.events['onRequestHistory'] = onRequestHistory;
|
||||
// the user is trying to click the specific document version in the document version history
|
||||
@ -346,12 +418,20 @@
|
||||
// prevent switch the document from the viewing into the editing mode for anonymous users
|
||||
config.events['onRequestEditRights'] = onRequestEditRights;
|
||||
config.events['onRequestOpen'] = onRequestOpen;
|
||||
config.events['onRequestReferenceSource'] = onRequestReferenceSource;
|
||||
}
|
||||
|
||||
var сonnectEditor = function () {
|
||||
docEditor = new DocsAPI.DocEditor("iframeEditor", config);
|
||||
};
|
||||
|
||||
const getFileExt = function (fileName) {
|
||||
if (fileName.indexOf(".")) {
|
||||
return fileName.split('.').reverse()[0];
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener("load", сonnectEditor);
|
||||
} else if (window.attachEvent) {
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
<meta name="server-version" content=<%= DocManagerHelper.GetVersion() %> />
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<meta name="server-version" content=<%= DocManagerHelper.GetVersion() %> />
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -192,8 +192,7 @@
|
||||
<td class="tableHeaderCell tableHeaderCellFileName">Filename</td>
|
||||
<td class="tableHeaderCell tableHeaderCellEditors contentCells-shift">Editors</td>
|
||||
<td class="tableHeaderCell tableHeaderCellViewers">Viewers</td>
|
||||
<td class="tableHeaderCell tableHeaderCellDownload">Download</td>
|
||||
<td class="tableHeaderCell tableHeaderCellRemove">Remove</td>
|
||||
<td class="tableHeaderCell tableHeaderCellAction">Action</td>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@ -301,14 +300,22 @@
|
||||
<img src="content/images/embeded.svg" alt="Open in embedded mode" title="Open in embedded mode"/>
|
||||
</a>
|
||||
</td>
|
||||
<td class="contentCells contentCells-icon contentCells-shift downloadContentCellShift">
|
||||
<% if (docType != null ) { %>
|
||||
<td class="contentCells contentCells-icon">
|
||||
<a class="convert-file" data="<%= storedFile.Name %>" data-type="<%= docType %>">
|
||||
<img class="icon-action" src="content/images/convert.svg" alt="Convert" title="Convert" /></a>
|
||||
</td>
|
||||
<% } else { %>
|
||||
<td class="contentCells contentCells-icon downloadContentCellShift"></td>
|
||||
<% } %>
|
||||
<td class="contentCells contentCells-icon downloadContentCellShift">
|
||||
<a href="webeditor.ashx?type=download&fileName=<%= HttpUtility.UrlEncode(storedFile.Name) %>">
|
||||
<img class="icon-download" src="content/images/download.svg" alt="Download" title="Download" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="contentCells contentCells-icon contentCells-shift">
|
||||
<a class="delete-file" data-filename="<%= storedFile.Name %>">
|
||||
<img class="icon-delete" src="content/images/delete.svg" alt="Delete" title="Delete" />
|
||||
<img class="icon-action" src="content/images/delete.svg" alt="Delete" title="Delete" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@ -377,6 +384,32 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="convertingProgress">
|
||||
<div id="convertingSteps">
|
||||
<span id="convertFileName" class="convertFileName"></span>
|
||||
<span id="convertStep1" class="step">1. Select a format file to convert</span>
|
||||
<span class="step-descr">The converting speed depends on file size and additional elements it contains.</span>
|
||||
<table cellspacing="0" cellpadding="0" width="100%" class="convertTable">
|
||||
<tbody>
|
||||
<tr class="typeButtonsRow" id="convTypes"></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br />
|
||||
<span id="convertStep2" class="step">2. File conversion</span>
|
||||
<span class="step-descr disable" id="convert-descr">The file is converted <div class="convertPercent" id="convertPercent">0 %</div></span>
|
||||
<span class="step-error hidden" id="convert-error"></span>
|
||||
<div class="describeUpload">Note the speed of all operations depends on your connection quality and server location.</div>
|
||||
<input type="hidden" name="hiddenFileName" id="hiddenFileName" />
|
||||
</div>
|
||||
<br />
|
||||
<div class="buttonsMobile">
|
||||
<div id="downloadConverted" class="button converting orange disable">DOWNLOAD</div>
|
||||
<div id="beginViewConverted" class="button converting wide gray disable">VIEW</div>
|
||||
<div id="beginEditConverted" class="button converting wide gray disable">EDIT</div>
|
||||
<div id="cancelEdit" class="button converting gray">CANCEL</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span id="loadScripts" data-docs="<%= WebConfigurationManager.AppSettings["files.docservice.url.site"] + WebConfigurationManager.AppSettings["files.docservice.url.preloader"] %>"></span>
|
||||
|
||||
<footer>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -93,6 +93,9 @@ namespace OnlineEditorsExampleMVC
|
||||
case "formats":
|
||||
Formats(context);
|
||||
break;
|
||||
case "config":
|
||||
Config(context);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -254,8 +257,15 @@ namespace OnlineEditorsExampleMVC
|
||||
conversionExtension = fileExt.ToString();
|
||||
}
|
||||
|
||||
object keepOriginal;
|
||||
bool removeOriginal = true;
|
||||
if (body.TryGetValue("keepOriginal", out keepOriginal) && !String.IsNullOrEmpty(keepOriginal.ToString()))
|
||||
{
|
||||
removeOriginal = keepOriginal.ToString().ToLower() != "true";
|
||||
}
|
||||
|
||||
// check if the file with such an extension can be converted
|
||||
if (DocManagerHelper.ConvertExts.Contains("." + extension))
|
||||
if (DocManagerHelper.ConvertExts.Contains("." + extension) || conversionExtension != "ooxml")
|
||||
{
|
||||
// generate document key
|
||||
var key = ServiceConverter.GenerateRevisionId(fileUri);
|
||||
@ -278,9 +288,14 @@ namespace OnlineEditorsExampleMVC
|
||||
}
|
||||
|
||||
var newFileUri = newFileData["fileUrl"];
|
||||
var newFileType = "." + newFileData["fileType"];
|
||||
var newFileType = newFileData["fileType"];
|
||||
if (!FormatManager.All().Any(f => f.Name == newFileType && f.Type != FileUtility.FileType.Null))
|
||||
{
|
||||
context.Response.Write("{\"step\": \"" + result + "\", \"filename\": \"" + newFileUri + "\", \"error\": \"FileTypeIsNotSupported\"}");
|
||||
return;
|
||||
}
|
||||
// get a file name of an internal file extension with an index if the file with such a name already exists
|
||||
var correctName = DocManagerHelper.GetCorrectName(Path.GetFileNameWithoutExtension(fileName) + newFileType);
|
||||
var correctName = DocManagerHelper.GetCorrectName(Path.GetFileNameWithoutExtension(fileName) + "." + newFileType);
|
||||
|
||||
var req = (HttpWebRequest)WebRequest.Create(newFileUri);
|
||||
|
||||
@ -302,11 +317,14 @@ namespace OnlineEditorsExampleMVC
|
||||
}
|
||||
}
|
||||
|
||||
Remove(fileName); // remove the original file and its history if it exists
|
||||
if (removeOriginal) Remove(fileName); // remove the original file and its history if it exists
|
||||
fileName = correctName; // create meta information about the converted file with user id and name specified
|
||||
var id = context.Request.Cookies.GetOrDefault("uid", null);
|
||||
var user = Users.getUser(id);
|
||||
DocManagerHelper.CreateMeta(fileName, user.id, user.name);
|
||||
|
||||
context.Response.Write("{ \"filename\" : \"" + fileName + "\", \"step\": \"" + result + "\" }");
|
||||
return;
|
||||
}
|
||||
|
||||
var documentType = FileUtility.GetFileType(fileName).ToString().ToLower();
|
||||
@ -687,6 +705,7 @@ namespace OnlineEditorsExampleMVC
|
||||
|
||||
var fileName = (string)body["fileName"];
|
||||
var version = (int)body["version"];
|
||||
var url = body.ContainsKey("url") ? (string)body["url"] : null;
|
||||
|
||||
var key = ServiceConverter.GenerateRevisionId(DocManagerHelper.CurUserHostAddress()
|
||||
+ "/" + fileName + "/"
|
||||
@ -708,9 +727,19 @@ namespace OnlineEditorsExampleMVC
|
||||
{
|
||||
File.Copy(changesPath, Path.Combine(currentVersionDir, "changes.json"));
|
||||
}
|
||||
|
||||
File.Copy(Path.Combine(verDir, "prev" + ext), DocManagerHelper.StoragePath(fileName, null), true);
|
||||
|
||||
if (url != null)
|
||||
{
|
||||
var req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Method = "GET";
|
||||
var stream = req.GetResponse().GetResponseStream();
|
||||
var memoryStream = new MemoryStream();
|
||||
stream.CopyTo(memoryStream);
|
||||
File.WriteAllBytes(DocManagerHelper.StoragePath(fileName, null), memoryStream.ToArray());
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Copy(Path.Combine(verDir, "prev" + ext), DocManagerHelper.StoragePath(fileName, null), true);
|
||||
}
|
||||
var fileInfo = new FileInfo(DocManagerHelper.StoragePath(fileName, null));
|
||||
fileInfo.LastWriteTimeUtc = DateTime.UtcNow;
|
||||
|
||||
@ -1000,6 +1029,74 @@ namespace OnlineEditorsExampleMVC
|
||||
}
|
||||
}
|
||||
|
||||
private static void Config(HttpContext context)
|
||||
{
|
||||
try
|
||||
{
|
||||
var fileName = context.Request.QueryString.Get("fileName");
|
||||
var directUrl = context.Request.QueryString.Get("directUrl").ToLower() == "true";
|
||||
var permissions = context.Request.QueryString.Get("permissions") != null
|
||||
? context.Request.QueryString.Get("permissions")
|
||||
: "{}";
|
||||
|
||||
if (string.IsNullOrEmpty(fileName) || !File.Exists(DocManagerHelper.StoragePath(fileName)))
|
||||
{
|
||||
context.Response.Write("{ \"error\": \"File is not exist\"}");
|
||||
return;
|
||||
}
|
||||
|
||||
var id = context.Request.Cookies.GetOrDefault("uid", null);
|
||||
var user = Users.getUser(id);
|
||||
|
||||
var jss = new JavaScriptSerializer();
|
||||
|
||||
var config = new Dictionary<string, object>
|
||||
{
|
||||
{
|
||||
"document", new Dictionary<string, object>
|
||||
{
|
||||
{"key", ServiceConverter.GenerateRevisionId(DocManagerHelper.CurUserHostAddress() + "/" + fileName
|
||||
+ "/"+ File.GetLastWriteTime(DocManagerHelper.StoragePath(fileName, null)).GetHashCode())},
|
||||
{"title", fileName},
|
||||
{"url", DocManagerHelper.GetDownloadUrl(fileName)},
|
||||
{"permissions", jss.Deserialize<Dictionary<string, object>>(permissions)},
|
||||
{"directUrl", directUrl ? DocManagerHelper.GetDownloadUrl(fileName, false) : null},
|
||||
{
|
||||
"referenceData", new Dictionary<string, object>
|
||||
{
|
||||
{"fileKey", !user.id.Equals("uid-0") ?
|
||||
jss.Serialize(new Dictionary<string, object>{
|
||||
{"fileName", fileName},
|
||||
{"userAddress", HttpUtility.UrlEncode(DocManagerHelper.CurUserHostAddress(HttpContext.Current.Request.UserHostAddress))}
|
||||
}) : null },
|
||||
{"instanceId", DocManagerHelper.GetServerUrl(false)}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"editorConfig", new Dictionary<string, object>
|
||||
{
|
||||
{"callbackUrl", DocManagerHelper.GetCallback(fileName)},
|
||||
{"mode", "edit"}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (JwtManager.Enabled)
|
||||
{
|
||||
var token = JwtManager.Encode(config);
|
||||
config.Add("token", token);
|
||||
}
|
||||
|
||||
context.Response.Write(jss.Serialize(config));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
context.Response.Write("{ \"error\": \"" + e.Message + "\"}");
|
||||
}
|
||||
}
|
||||
|
||||
// delete a forgotten file from the document server
|
||||
private static void RemoveForgotten(HttpContext context)
|
||||
{
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<appSettings>
|
||||
<clear />
|
||||
<add key="version" value="1.10.0"/>
|
||||
<add key="version" value="1.13.0"/>
|
||||
|
||||
<add key="filesize-max" value="52428800"/>
|
||||
<add key="storage-path" value=""/>
|
||||
@ -16,14 +16,14 @@
|
||||
|
||||
<add key="files.docservice.verify-peer-off" value="true"/>
|
||||
|
||||
<add key="files.docservice.languages" value="en:English|ar:Arabic|hy:Armenian|az:Azerbaijani|eu:Basque|be:Belarusian|bg:Bulgarian|ca:Catalan|zh:Chinese (Simplified)|zh-TW:Chinese (Traditional)|cs:Czech|da:Danish|nl:Dutch|en-GB:English (United Kingdom)|fi:Finnish|fr:French|gl:Galego|de:German|el:Greek|hu:Hungarian|id:Indonesian|it:Italian|ja:Japanese|ko:Korean|lo:Lao|lv:Latvian|ms:Malay (Malaysia)|no:Norwegian|pl:Polish|pt:Portuguese (Brazil)|pt-PT:Portuguese (Portugal)|ro:Romanian|ru:Russian|sr-Cyrl-RS:Serbian (Cyrillic)|sr-Latn-RS:Serbian (Latin)|si:Sinhala (Sri Lanka)|sk:Slovak|sl:Slovenian|es:Spanish|sv:Swedish|tr:Turkish|uk:Ukrainian|vi:Vietnamese|aa-AA:Test Language"/>
|
||||
<add key="files.docservice.languages" value="en:English|sq-AL:Albanian (Albania)|ar:Arabic|hy:Armenian|az:Azerbaijani|eu:Basque|be:Belarusian|bg:Bulgarian|ca:Catalan|zh:Chinese (Simplified)|zh-TW:Chinese (Traditional)|cs:Czech|da:Danish|nl:Dutch|en-GB:English (United Kingdom)|fi:Finnish|fr:French|gl:Galego|de:German|el:Greek|he-IL:Hebrew (Israel)|hu:Hungarian|id:Indonesian|it:Italian|ja:Japanese|ko:Korean|lo:Lao|lv:Latvian|ms:Malay (Malaysia)|no:Norwegian|pl:Polish|pt:Portuguese (Brazil)|pt-PT:Portuguese (Portugal)|ro:Romanian|ru:Russian|sr-Cyrl-RS:Serbian (Cyrillic)|sr-Latn-RS:Serbian (Latin)|si:Sinhala (Sri Lanka)|sk:Slovak|sl:Slovenian|es:Spanish|sv:Swedish|tr:Turkish|uk:Ukrainian|vi:Vietnamese|aa-AA:Test Language"/>
|
||||
|
||||
<add key="files.docservice.url.site" value="http://documentserver/"/>
|
||||
|
||||
<add key="files.docservice.url.converter" value="ConvertService.ashx"/>
|
||||
<add key="files.docservice.url.converter" value="converter"/>
|
||||
<add key="files.docservice.url.api" value="web-apps/apps/api/documents/api.js"/>
|
||||
<add key="files.docservice.url.preloader" value="web-apps/apps/api/documents/cache-scripts.html"/>
|
||||
<add key="files.docservice.url.command" value="coauthoring/CommandService.ashx"/>
|
||||
<add key="files.docservice.url.command" value="command"/>
|
||||
|
||||
<add key="files.docservice.url.example" value=""/>
|
||||
|
||||
|
||||
@ -1,4 +1,22 @@
|
||||
.center {
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
.center {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.4285 13C14.4102 13 14 13 14 13.5V15H6C5.44772 15 5 15.4477 5 16V17C5 17.5523 5.44771 18 6 18H14V19.5C14 20 14.3816 20 14.4285 20C14.6359 20 15.0099 19.9113 15.2172 19.7363L18.6207 17.0833C19.1264 16.6566 19.1264 16.3434 18.6207 15.9167L15.2172 13.2637C15.0099 13.0887 14.6359 13 14.4285 13Z" fill="#444444"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5715 4C9.58984 4 10 4 10 4.50002V6H18C18.5523 6 19 6.44772 19 7V8C19 8.55228 18.5523 9 18 9H10V10.5C10 11 9.61841 11 9.57151 11C9.36409 11 8.99012 10.9113 8.78279 10.7363L5.37934 8.08333C4.87356 7.65662 4.87356 7.34338 5.37934 6.91667L8.78279 4.26366C8.99012 4.08874 9.36409 4 9.5715 4Z" fill="#444444"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 821 B |
BIN
web/documentserver-example/csharp/App_Themes/images/diagram.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
@ -1 +1,7 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#1E7AAA"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#000" fill-opacity=".25"/><path d="M6 15h18v1H6v-1zM6 19h18v1H6v-1zM6 23h18v1H6v-1zM6 27h18v1H6v-1z" fill="#fff"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#287CA9"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="7" y="28" width="10" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="7" y="22" width="16" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="7" y="16" width="16" height="2" rx="1" fill="#fff"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 503 B |
@ -1,5 +1,8 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 3C0 1.34315 1.34315 0 3 0H23L30 7V37C30 38.6569 28.6569 40 27 40H3C1.34315 40 0 38.6569 0 37V3Z" fill="#9E1919"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.0062 15V16.0065H24V15H17.0062ZM17.0062 19V20.0163H24V19H17.0062ZM24 23H17.0062V24.0261H24V23ZM6 28V27.0293H24V28H6ZM7 16H14V23H7V16ZM6 15H7H14H15V16V23V24H14H7H6V23V16V15Z" fill="white"/>
|
||||
<path d="M23 0L30 7H26C24.3431 7 23 5.65685 23 4V0Z" fill="black" fill-opacity="0.25"/>
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#E54D39"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="7" y="28" width="16" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="18" y="22" width="5" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="18" y="16" width="5" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="8" y="17" width="6" height="6" rx=".833" stroke="#fff" stroke-width="2"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 558 B After Width: | Height: | Size: 590 B |
@ -1 +1,8 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#F36700"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#000" fill-opacity=".25"/><path stroke="#fff" stroke-opacity=".95" d="M6.5 15.5h17v12h-17z"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#F36700"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="6" y="28" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
<rect x="22" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 570 B |
@ -1 +1,5 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#D0D5DA"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#646464"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 23c-.27614 0-.5.2239-.5.5v4c0 .2761.22386.5.5.5h15c.2761 0 .5-.2239.5-.5v-4c0-.2761-.2239-.5-.5-.5h-2c-.2761 0-.5-.2239-.5-.5s.2239-.5.5-.5h2c.8284 0 1.5.6716 1.5 1.5v4c0 .8284-.6716 1.5-1.5 1.5h-15c-.82843 0-1.5-.6716-1.5-1.5v-4c0-.8284.67157-1.5 1.5-1.5h2c.27614 0 .5.2239.5.5s-.22386.5-.5.5h-2z" fill="#646464"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20 20.0001L15 14l-5 6.0001h3v4c0 .5523.4477 1 1 1h2c.5523 0 1-.4477 1-1v-4h3z" fill="#646464"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#D1D5DA"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5zm-5.293 14.293a1 1 0 0 0-1.414 0l-4 4a1 1 0 1 0 1.414 1.414L14 17.414V25a1 1 0 1 0 2 0v-7.586l2.293 2.293a1 1 0 0 0 1.414-1.414z" fill="#646464"/>
|
||||
<path d="M8.833 22H11a1 1 0 1 1 0 2H9v4h12v-4h-2a1 1 0 1 1 0-2h2.167c1.012 0 1.833.82 1.833 1.833v4.334C23 29.179 22.18 30 21.167 30H8.833A1.833 1.833 0 0 1 7 28.167v-4.334C7 22.821 7.82 22 8.833 22" fill="#646464"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 638 B |
@ -1 +1,10 @@
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3c0-1.65685 1.34315-3 3-3h20l7 7v30c0 1.6569-1.3431 3-3 3H3c-1.65685 0-3-1.3431-3-3V3z" fill="#6AAA1E"/><path d="M23 0l7 7h-4c-1.6569 0-3-1.34315-3-3V0z" fill="#000" fill-opacity=".25"/><path fill-rule="evenodd" clip-rule="evenodd" d="M6 15h18v13H7.00001v-1H12v-3H7v4H6V15zm7 12h4v-3h-4v3zm5 0h5v-3h-5v3zm5-7v3h-5v-3h5zm-6 0v3h-4v-3h4zm-5 0v3H7v-3h5zm11-1v-3h-5v3h5zm-10-3h4v3h-4v-3zm-1 3v-3H7v3h5z" fill="#fff" fill-opacity=".95"/></svg>
|
||||
<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 2.5A2.5 2.5 0 0 1 2.5 0H21l9 9v28.5a2.5 2.5 0 0 1-2.5 2.5h-25A2.5 2.5 0 0 1 0 37.5z" fill="#3AA133"/>
|
||||
<path d="m21 0 9 9h-6.5A2.5 2.5 0 0 1 21 6.5z" fill="#000" fill-opacity=".25"/>
|
||||
<rect x="6" y="28" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="22" width="18" height="2" rx="1" fill="#fff"/>
|
||||
<rect x="6" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
<rect x="12" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
<rect x="22" y="16" width="2" height="14" rx="1" fill="#fff"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 545 B After Width: | Height: | Size: 703 B |
@ -1,12 +1,5 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.84616 1H10.8462L14.8462 5V15H2.84616V1Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.8462 5L10.8462 1H2.84616V15H14.8462V5ZM10.8462 0L15.8462 5V16H1.84616V0H10.8462Z" fill="#BFBFBF"/>
|
||||
<rect x="3.84616" y="10" width="10" height="4" fill="#3779A6"/>
|
||||
<path d="M3.84616 4H4.84616V5H3.84616V4Z" fill="#BFBFBF"/>
|
||||
<path d="M3.84616 6H4.84616V7H3.84616V6Z" fill="#BFBFBF"/>
|
||||
<path d="M4.84616 8H3.84616V9H4.84616V8Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8462 8H5.84616V9H12.8462V8Z" fill="#BFBFBF"/>
|
||||
<path d="M7.84616 6H5.84616V7H7.84616V6Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8462 4H5.84616V5H12.8462V4Z" fill="#BFBFBF"/>
|
||||
<path opacity="0.3" d="M9.84616 1H10.8462V4H14.8462L15.8462 5H9.84616V1Z" fill="#333333"/>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path fill="#287CA9" d="M5 7h6v1H5zm0 2h6v1H5zm0 2h4v1H5z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 394 B |
@ -1 +1,5 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 1h8l4 4v10H2V1z" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M14 5l-4-4H2v14h12V5zm-4-5l5 5v11H1V0h9z" fill="#BFBFBF"/><path fill="#9E1919" d="M3 10h10v4H3z"/><path d="M7 7V2H3v5h4zM8 3V2h2v1H8zM8 5V4h5v1H8zM13 6H8v1h5V6zM13 8H3v1h10V8z" fill="#BFBFBF"/><path opacity=".3" d="M9 1h1v3h4l1 1H9V1z" fill="#333"/></svg>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path d="M7.36 5.777c0 1.085-.31 2.363-.833 3.543-.526 1.185-1.235 2.198-1.974 2.796l.803 1.109c1.992-1.342 4.198-2.262 6.333-1.954L12 9.938c-1.819-.612-3.278-2.449-3.278-4.16zm.888 2.84a6.7 6.7 0 0 0 1.161 1.35c-.668.122-1.323.32-1.957.573q.17-.322.316-.657c.183-.41.344-.836.48-1.267" fill="#E54D39"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 637 B |
@ -1,12 +1,6 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2 1H10L14 5V15H2V1Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 5L10 1H2V15H14V5ZM10 0L15 5V16H1V0H10Z" fill="#BFBFBF"/>
|
||||
<rect x="3" y="10" width="10" height="4" fill="#F36700"/>
|
||||
<path d="M3 4H4V5H3V4Z" fill="#BFBFBF"/>
|
||||
<path d="M3 6H4V7H3V6Z" fill="#BFBFBF"/>
|
||||
<path d="M4 8H3V9H4V8Z" fill="#BFBFBF"/>
|
||||
<path d="M12 8H5V9H12V8Z" fill="#BFBFBF"/>
|
||||
<path d="M7 6H5V7H7V6Z" fill="#BFBFBF"/>
|
||||
<path d="M12 4H5V5H12V4Z" fill="#BFBFBF"/>
|
||||
<path opacity="0.3" d="M9 1H10V4H14L15 5H9V1Z" fill="#333333"/>
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path d="M5 10a3 3 0 1 0 3-3v3z" fill="#F36700"/>
|
||||
<path d="M4.5 9A2.5 2.5 0 0 1 7 6.5V9z" fill="#F36700"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 444 B |
@ -0,0 +1,6 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.707V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.293z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v2.7c0 .28 0 .42.055.527a.5.5 0 0 0 .218.218c.107.055.247.055.527.055H13" stroke="#BBB"/>
|
||||
<path d="M5 8h6v1H5zm0 1h1v1H5zm5 0h1v1h-1zM7 6h2v2H7z" fill="#5951BB"/>
|
||||
<path stroke="#5951BB" d="M4.5 10.5h2v2h-2zm5 0h2v2h-2z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 469 B |
@ -1,12 +1,5 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.84592 1H10.8459L14.8459 5V15H2.84592V1Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.8459 5L10.8459 1H2.84592V15H14.8459V5ZM10.8459 0L15.8459 5V16H1.84592V0H10.8459Z" fill="#BFBFBF"/>
|
||||
<rect x="3.84592" y="10" width="10" height="4" fill="#78A73B"/>
|
||||
<path d="M3.84592 4H4.84592V5H3.84592V4Z" fill="#BFBFBF"/>
|
||||
<path d="M3.84592 6H4.84592V7H3.84592V6Z" fill="#BFBFBF"/>
|
||||
<path d="M4.84592 8H3.84592V9H4.84592V8Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8459 8H5.84592V9H12.8459V8Z" fill="#BFBFBF"/>
|
||||
<path d="M7.84592 6H5.84592V7H7.84592V6Z" fill="#BFBFBF"/>
|
||||
<path d="M12.8459 4H5.84592V5H12.8459V4Z" fill="#BFBFBF"/>
|
||||
<path opacity="0.3" d="M9.84592 1H10.8459V4H14.8459L15.8459 5H9.84592V1Z" fill="#333333"/>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.207V15a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V1A.5.5 0 0 1 3 .5h7.793z" fill="#fff" stroke="#BBB"/>
|
||||
<path d="M9.5 1v1.9c0 .56 0 .84.109 1.054a1 1 0 0 0 .437.437c.214.109.494.109 1.054.109H13" stroke="#BBB"/>
|
||||
<path fill="#3AA133" d="M8 7h3v2H8zm0 3h3v2H8zM5 7h2v2H5zm0 3h2v2H5z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 408 B |
BIN
web/documentserver-example/csharp/App_Themes/images/pdf.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -42,10 +42,14 @@
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
width: 29%;
|
||||
width: 18%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction {
|
||||
width: 23%;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
width: 21%;
|
||||
padding-right: 18px;
|
||||
@ -220,7 +224,7 @@
|
||||
}
|
||||
|
||||
.tableHeaderCellFileName {
|
||||
width: 16%;
|
||||
width: 9%;
|
||||
}
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
@ -229,7 +233,12 @@
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
text-align: right;
|
||||
width: 37%;
|
||||
width: 9%;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction{
|
||||
width: 11%;
|
||||
padding-right: 82px;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
@ -244,19 +253,24 @@
|
||||
}
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
width: 26%;
|
||||
width: 15%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.tableHeaderCellFileName {
|
||||
width: 17%;
|
||||
width: 28%;
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
width: 27%;
|
||||
width: 6%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction{
|
||||
width: 18%;
|
||||
padding-right: 54px;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
padding-right: 18px;
|
||||
width: 20%;
|
||||
@ -277,12 +291,17 @@
|
||||
|
||||
.tableRow td:first-child {
|
||||
flex-grow: 0;
|
||||
width: 15%;
|
||||
width: 25%;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.contentCells-icon {
|
||||
width: 3%;
|
||||
}
|
||||
|
||||
.firstContentCellViewers {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 890px) and (min-width: 769px ) {
|
||||
@ -290,7 +309,7 @@
|
||||
width: 20%;
|
||||
}
|
||||
.contentCells-shift {
|
||||
padding-right: 28px;
|
||||
padding-right: 27px;
|
||||
}
|
||||
|
||||
.main-panel {
|
||||
@ -323,11 +342,16 @@
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
text-align: left;
|
||||
width: 31%;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
width: 18%;
|
||||
width: 19%;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction {
|
||||
width: 19%;
|
||||
padding-right: 45px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -429,8 +453,8 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 7%;
|
||||
margin-right: -11px;
|
||||
margin-left: auto;
|
||||
margin-right: 24px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.contentCells-icon {
|
||||
@ -438,13 +462,13 @@
|
||||
}
|
||||
|
||||
.tableRow td:last-child {
|
||||
width: 12%;
|
||||
padding-right: 40px;
|
||||
width: 7%;
|
||||
padding-right: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.contentCells-shift {
|
||||
padding-right: 35px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.downloadContentCellShift:after {
|
||||
@ -530,6 +554,15 @@
|
||||
height: 56px;
|
||||
margin-bottom: 24px !important;
|
||||
}
|
||||
.button.hoar{
|
||||
width: 18%;
|
||||
height: 27px;
|
||||
margin-bottom: 7px !important;
|
||||
}
|
||||
.button.converting{
|
||||
width: 126px;
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 560px) and (min-width: 510px) {
|
||||
@ -538,7 +571,7 @@
|
||||
}
|
||||
|
||||
.downloadContentCellShift {
|
||||
padding-right: 45px;
|
||||
padding-right: 16px;
|
||||
max-width: 4%;
|
||||
}
|
||||
}
|
||||
@ -558,7 +591,7 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 6%;
|
||||
padding-right: 37px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.firstContentCellShift {
|
||||
@ -584,12 +617,12 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 3%;
|
||||
padding-right: 37px;
|
||||
padding-right: 0px;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.firstContentCellShift {
|
||||
margin-left: 1px;
|
||||
margin-left: 2px;
|
||||
flex-basis: 14%;
|
||||
}
|
||||
|
||||
@ -619,7 +652,7 @@
|
||||
|
||||
.downloadContentCellShift {
|
||||
max-width: 4%;
|
||||
margin-right: -18px;
|
||||
margin-right: 18px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
@ -628,7 +661,7 @@
|
||||
}
|
||||
|
||||
.contentCells-icon{
|
||||
width: 10%;
|
||||
width: 12%;
|
||||
}
|
||||
footer table td {
|
||||
margin: 0;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -238,6 +238,52 @@ label .checkbox {
|
||||
color: #FF6F3D;
|
||||
}
|
||||
|
||||
.button.converting {
|
||||
margin-top: -20px;
|
||||
padding: 16px 16px;
|
||||
}
|
||||
|
||||
.button.converting.wide {
|
||||
padding: 16px 29px;
|
||||
}
|
||||
|
||||
.button.hoar {
|
||||
background: #EFEFEF;
|
||||
border: 1px solid #EFEFEF;
|
||||
margin-right: 7px;
|
||||
margin-bottom: 7px;
|
||||
width: 13%;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.button.hoar.disable {
|
||||
opacity: 30%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.button.hoar:not(.disable):hover {
|
||||
background: #FF6F3D;
|
||||
border: 1px solid #FF6F3D;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.button.hoar.orange {
|
||||
background: #FF6F3D;
|
||||
border: 1px solid #FF6F3D;
|
||||
color: #FFFFFF;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.button.hoar.orange.disable {
|
||||
background: #444444;
|
||||
border: 1px solid #444444;
|
||||
color: #FFFFFF;
|
||||
cursor: default;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
.button.file-type {
|
||||
font-size: 11px;
|
||||
color: #FFFFFF;
|
||||
@ -380,6 +426,32 @@ label .checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#convertingProgress {
|
||||
color: #333333;
|
||||
display: none;
|
||||
font-size: 12px;
|
||||
margin: 30px 35px;
|
||||
}
|
||||
|
||||
#convertingProgress .convertFileName{
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 160%;
|
||||
overflow: hidden;
|
||||
padding-left: 28px;
|
||||
margin-bottom: 16px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#convertingProgress .describeUpload {
|
||||
line-height: 150%;
|
||||
letter-spacing: -0.02em;
|
||||
padding: 16px 0;
|
||||
}
|
||||
|
||||
.error-message {
|
||||
background: url("images/error.svg") no-repeat scroll 4px 10px;
|
||||
color: #CB0000;
|
||||
@ -401,6 +473,10 @@ label .checkbox {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
.waiting {
|
||||
opacity: 30%;
|
||||
}
|
||||
|
||||
.current {
|
||||
background-image: url("images/loader16.gif");
|
||||
}
|
||||
@ -413,6 +489,12 @@ label .checkbox {
|
||||
background-image: url("images/notdone.svg");
|
||||
}
|
||||
|
||||
.convertPercent {
|
||||
color: #FF6F3D;
|
||||
font-weight: 700;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.step-descr {
|
||||
display: block;
|
||||
margin-left: 35px;
|
||||
@ -420,6 +502,10 @@ label .checkbox {
|
||||
line-height: 188%;
|
||||
}
|
||||
|
||||
.step-descr.disable {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.progress-descr {
|
||||
letter-spacing: -0.02em;
|
||||
line-height: 150%;
|
||||
@ -525,26 +611,35 @@ footer a:hover {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.convertFileName.word,
|
||||
.stored-edit.word,
|
||||
.uploadFileName.word {
|
||||
background-image: url("images/icon_docx.svg");
|
||||
}
|
||||
|
||||
.convertFileName.cell,
|
||||
.stored-edit.cell,
|
||||
.uploadFileName.cell {
|
||||
background-image: url("images/icon_xlsx.svg");
|
||||
}
|
||||
|
||||
.convertFileName.slide,
|
||||
.stored-edit.slide,
|
||||
.uploadFileName.slide {
|
||||
background-image: url("images/icon_pptx.svg");
|
||||
}
|
||||
|
||||
.convertFileName.pdf,
|
||||
.stored-edit.pdf,
|
||||
.uploadFileName.pdf {
|
||||
background-image: url("images/icon_pdf.svg");
|
||||
}
|
||||
|
||||
.stored-edit.diagram,
|
||||
.uploadFileName.diagram {
|
||||
background-image: url("images/icon_vsdx.svg");
|
||||
}
|
||||
|
||||
.stored-edit span {
|
||||
font-size: 12px;
|
||||
line-height: 12px;
|
||||
@ -596,6 +691,11 @@ footer a:hover {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.convertTable {
|
||||
margin-top: 10px;
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.tableRow {
|
||||
background: transparent;
|
||||
-moz-transition: all 0.2s ease-in-out;
|
||||
@ -642,6 +742,12 @@ footer a:hover {
|
||||
width: 11%;
|
||||
}
|
||||
|
||||
.tableHeaderCellAction{
|
||||
width: 13%;
|
||||
text-align: right;
|
||||
padding-right: 88px;
|
||||
}
|
||||
|
||||
.tableHeaderCellDownload {
|
||||
width: 13%;
|
||||
text-align: right;
|
||||
@ -666,7 +772,7 @@ footer a:hover {
|
||||
}
|
||||
|
||||
.contentCells-shift {
|
||||
padding-right: 44px;
|
||||
padding-right: 43px;
|
||||
}
|
||||
|
||||
.contentCells-icon {
|
||||
@ -730,7 +836,7 @@ footer a:hover {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.icon-delete {
|
||||
.icon-action {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -809,6 +915,13 @@ html {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.typeButtonsRow {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tableRow td:first-child {
|
||||
display: flex;
|
||||
@ -817,11 +930,11 @@ html {
|
||||
}
|
||||
|
||||
.tableHeaderCellFileName {
|
||||
width: 30%;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.tableHeaderCellEditors {
|
||||
width: 28%;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.tableHeaderCellViewers {
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<title>ONLYOFFICE</title>
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -194,8 +194,7 @@
|
||||
<td class="tableHeaderCell tableHeaderCellFileName">Filename</td>
|
||||
<td class="tableHeaderCell tableHeaderCellEditors contentCells-shift">Editors</td>
|
||||
<td class="tableHeaderCell tableHeaderCellViewers">Viewers</td>
|
||||
<td class="tableHeaderCell tableHeaderCellDownload">Download</td>
|
||||
<td class="tableHeaderCell tableHeaderCellRemove">Remove</td>
|
||||
<td class="tableHeaderCell tableHeaderCellAction">Action</td>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@ -303,14 +302,22 @@
|
||||
<img src="app_themes/images/embeded.svg" alt="Open in embedded mode" title="Open in embedded mode"/>
|
||||
</a>
|
||||
</td>
|
||||
<td class="contentCells contentCells-icon contentCells-shift downloadContentCellShift">
|
||||
<% if (docType != null ) { %>
|
||||
<td class="contentCells contentCells-icon">
|
||||
<a class="convert-file" data="<%= storedFile.Name %>" data-type="<%= docType %>">
|
||||
<img class="icon-action" src="app_themes/images/convert.svg" alt="Convert" title="Convert" /></a>
|
||||
</td>
|
||||
<% } else { %>
|
||||
<td class="contentCells contentCells-icon downloadContentCellShift"></td>
|
||||
<% } %>
|
||||
<td class="contentCells contentCells-icon downloadContentCellShift">
|
||||
<a href="webeditor.ashx?type=download&fileName=<%= HttpUtility.UrlEncode(storedFile.Name) %>">
|
||||
<img class="icon-download" src="app_themes/images/download.svg" alt="Download" title="Download" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="contentCells contentCells-icon contentCells-shift">
|
||||
<a class="delete-file" data-filename="<%= storedFile.Name %>">
|
||||
<img class="icon-delete" src="app_themes/images/delete.svg" alt="Delete" title="Delete" />
|
||||
<img class="icon-action" src="app_themes/images/delete.svg" alt="Delete" title="Delete" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@ -379,6 +386,32 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="convertingProgress">
|
||||
<div id="convertingSteps">
|
||||
<span id="convertFileName" class="convertFileName"></span>
|
||||
<span id="convertStep1" class="step">1. Select a format file to convert</span>
|
||||
<span class="step-descr">The converting speed depends on file size and additional elements it contains.</span>
|
||||
<table cellspacing="0" cellpadding="0" width="100%" class="convertTable">
|
||||
<tbody>
|
||||
<tr class="typeButtonsRow" id="convTypes"></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br />
|
||||
<span id="convertStep2" class="step">2. File conversion</span>
|
||||
<span class="step-descr disable" id="convert-descr">The file is converted <div class="convertPercent" id="convertPercent">0 %</div></span>
|
||||
<span class="step-error hidden" id="convert-error"></span>
|
||||
<div class="describeUpload">Note the speed of all operations depends on your connection quality and server location.</div>
|
||||
<input type="hidden" name="hiddenFileName" id="hiddenFileName" />
|
||||
</div>
|
||||
<br />
|
||||
<div class="buttonsMobile">
|
||||
<div id="downloadConverted" class="button converting orange disable">DOWNLOAD</div>
|
||||
<div id="beginViewConverted" class="button converting wide gray disable">VIEW</div>
|
||||
<div id="beginEditConverted" class="button converting wide gray disable">EDIT</div>
|
||||
<div id="cancelEdit" class="button converting gray">CANCEL</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span id="loadScripts" data-docs="<%= UrlPreloadScripts %>"></span>
|
||||
|
||||
<footer>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -254,6 +254,7 @@ namespace OnlineEditorsExample
|
||||
if (FormatManager.DocumentExtensions().Contains(ext)) return "word"; // word for text document extensions
|
||||
if (FormatManager.SpreadsheetExtensions().Contains(ext)) return "cell"; // cell for spreadsheet extensions
|
||||
if (FormatManager.PresentationExtensions().Contains(ext)) return "slide"; // slide for presentation extensions
|
||||
if (FormatManager.DiagramExtensions().Contains(ext)) return "diagram"; // diagram for diagram extensions
|
||||
|
||||
return "word"; // the default document type is word
|
||||
}
|
||||
@ -447,8 +448,15 @@ namespace OnlineEditorsExample
|
||||
conversionExtension = fileExt.ToString();
|
||||
}
|
||||
|
||||
object keepOriginal;
|
||||
bool removeOriginal = true;
|
||||
if (body.TryGetValue("keepOriginal", out keepOriginal) && !String.IsNullOrEmpty(keepOriginal.ToString()))
|
||||
{
|
||||
removeOriginal = keepOriginal.ToString().ToLower() != "true";
|
||||
}
|
||||
|
||||
// check if the file with such an extension can be converted
|
||||
if (ConvertExts.Contains("." + extension))
|
||||
if (ConvertExts.Contains("." + extension) || conversionExtension != "ooxml")
|
||||
{
|
||||
// generate document key
|
||||
var key = ServiceConverter.GenerateRevisionId(FileUri(_fileName, true));
|
||||
@ -469,9 +477,13 @@ namespace OnlineEditorsExample
|
||||
}
|
||||
|
||||
var newFileUri = newFileData["fileUrl"];
|
||||
var newFileType = "." + newFileData["fileType"];
|
||||
var newFileType = newFileData["fileType"];
|
||||
if (!FormatManager.All().Any(f => f.Name == newFileType && f.Type != ""))
|
||||
{
|
||||
return "{\"step\": \"" + result + "\", \"filename\": \"" + newFileUri + "\", \"error\": \"FileTypeIsNotSupported\"}";
|
||||
}
|
||||
// get a file name of an internal file extension with an index if the file with such a name already exists
|
||||
var fileName = GetCorrectName(Path.GetFileNameWithoutExtension(_fileName) + newFileType);
|
||||
var fileName = GetCorrectName(Path.GetFileNameWithoutExtension(_fileName) + "." + newFileType);
|
||||
|
||||
var req = (HttpWebRequest)WebRequest.Create(newFileUri);
|
||||
|
||||
@ -493,17 +505,21 @@ namespace OnlineEditorsExample
|
||||
}
|
||||
}
|
||||
|
||||
// remove the original file and its history if it exists
|
||||
var storagePath = StoragePath(_fileName, null);
|
||||
var histDir = HistoryDir(storagePath);
|
||||
File.Delete(storagePath);
|
||||
if (Directory.Exists(histDir)) Directory.Delete(histDir, true);
|
||||
|
||||
if (removeOriginal)
|
||||
{
|
||||
// remove the original file and its history if it exists
|
||||
var storagePath = StoragePath(_fileName, null);
|
||||
var histDir = HistoryDir(storagePath);
|
||||
File.Delete(storagePath);
|
||||
if (Directory.Exists(histDir)) Directory.Delete(histDir, true);
|
||||
}
|
||||
// create meta information about the converted file with user id and name specified
|
||||
_fileName = fileName;
|
||||
var id = context.Request.Cookies.GetOrDefault("uid", null);
|
||||
var user = Users.getUser(id); // get the user
|
||||
DocEditor.CreateMeta(_fileName, user.id, user.name, null);
|
||||
|
||||
return "{\"step\": \"" + result + "\", \"filename\": \"" + _fileName + "\"}";
|
||||
}
|
||||
|
||||
return "{ \"filename\" : \"" + _fileName + "\"}";
|
||||
|
||||
@ -12,10 +12,10 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<link rel="icon" href="<%= "app_themes/images/" + DocumentType + ".ico" %>" type="image/x-icon" />
|
||||
<title>ONLYOFFICE</title>
|
||||
<title><%= FileName + " - ONLYOFFICE" %></title>
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -80,8 +80,8 @@
|
||||
|
||||
// the document is modified
|
||||
var onDocumentStateChange = function (event) {
|
||||
var title = document.title.replace(/\*$/g, "");
|
||||
document.title = title + (event.data ? "*" : "");
|
||||
var title = document.title.replace(/^\*/g, "");
|
||||
document.title = (event.data ? "*" : "") + title;
|
||||
};
|
||||
|
||||
// the user is trying to switch the document from the viewing into the editing mode
|
||||
@ -124,6 +124,15 @@
|
||||
docEditor.setActionLink(replaceActionLink(location.href, linkParam)); // set the link to the document which contains a bookmark
|
||||
};
|
||||
|
||||
var onRequestClose = function () { // close editor
|
||||
docEditor.destroyEditor();
|
||||
innerAlert("Document editor closed successfully");
|
||||
};
|
||||
|
||||
var onUserActionRequired = function () {
|
||||
console.log("User action required");
|
||||
};
|
||||
|
||||
// the meta information of the document is changed via the meta command
|
||||
var onMetaChange = function (event) {
|
||||
if (event.data.favorite !== undefined) {
|
||||
@ -194,6 +203,18 @@
|
||||
}
|
||||
};
|
||||
|
||||
var onRequestRefreshFile = function(event) {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "webeditor.ashx?type=config&fileName=" + encodeURIComponent(config.document.title) +
|
||||
"&directUrl=" + !!config.document.directUrl +
|
||||
"&permissions=" + encodeURIComponent(JSON.stringify(config.document.permissions)));
|
||||
xhr.send();
|
||||
xhr.onload = function () {
|
||||
innerAlert(xhr.responseText);
|
||||
docEditor.refreshFile(JSON.parse(xhr.responseText));
|
||||
};
|
||||
};
|
||||
|
||||
var onRequestOpen = function (event) { // user open external data source
|
||||
innerAlert("onRequestOpen");
|
||||
var windowName = event.data.windowName;
|
||||
@ -233,6 +254,52 @@
|
||||
}
|
||||
};
|
||||
|
||||
var onRequestReferenceSource = function (event) {
|
||||
innerAlert("onRequestReferenceSource");
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "webeditor.ashx?type=files");
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.send();
|
||||
xhr.onload = function () {
|
||||
if (xhr.status === 200) {
|
||||
innerAlert(JSON.parse(xhr.responseText));
|
||||
let fileList = JSON.parse(xhr.responseText);
|
||||
let firstXlsxName;
|
||||
let file;
|
||||
for (file of fileList) {
|
||||
if (file["title"]) {
|
||||
if (getFileExt(file["title"]) === "xlsx")
|
||||
{
|
||||
firstXlsxName = file["title"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (firstXlsxName) {
|
||||
let data = {
|
||||
directUrl : !!config.document.directUrl,
|
||||
path : firstXlsxName
|
||||
};
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "webeditor.ashx?type=reference");
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.send(JSON.stringify(data));
|
||||
xhr.onload = function () {
|
||||
if (xhr.status === 200) {
|
||||
docEditor.setReferenceSource(JSON.parse(xhr.responseText));
|
||||
} else {
|
||||
innerAlert("/reference - bad status");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
innerAlert("No *.xlsx files");
|
||||
}
|
||||
} else {
|
||||
innerAlert("/files - bad status");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var onRequestUsers = function (event) {
|
||||
if (event && event.data){
|
||||
var c = event.data.c;
|
||||
@ -276,6 +343,7 @@
|
||||
config.events = {
|
||||
'onAppReady': onAppReady,
|
||||
'onDocumentStateChange': onDocumentStateChange,
|
||||
'onUserActionRequired': onUserActionRequired,
|
||||
'onError': onError,
|
||||
'onOutdatedVersion': onOutdatedVersion,
|
||||
'onMakeActionLink': onMakeActionLink,
|
||||
@ -286,7 +354,8 @@
|
||||
};
|
||||
|
||||
if (config.editorConfig.user.id) {
|
||||
|
||||
config.events['onRequestRefreshFile'] = onRequestRefreshFile;
|
||||
config.events['onRequestClose'] = onRequestClose;
|
||||
config.events['onRequestHistory'] = function (event) { // the user is trying to show the document version history
|
||||
|
||||
let xhr = new XMLHttpRequest();
|
||||
@ -317,9 +386,11 @@
|
||||
config.events['onRequestRestore'] = function (event) {
|
||||
var fileName = "<%= FileName %>";
|
||||
var version = event.data.version;
|
||||
var url = event.data.url;
|
||||
var data = {
|
||||
fileName: fileName,
|
||||
version: version
|
||||
version: version,
|
||||
url: url
|
||||
};
|
||||
|
||||
let xhr = new XMLHttpRequest();
|
||||
@ -347,12 +418,20 @@
|
||||
// prevent switch the document from the viewing into the editing mode for anonymous users
|
||||
config.events['onRequestEditRights'] = onRequestEditRights;
|
||||
config.events['onRequestOpen'] = onRequestOpen;
|
||||
config.events['onRequestReferenceSource'] = onRequestReferenceSource;
|
||||
}
|
||||
|
||||
var сonnectEditor = function () {
|
||||
docEditor = new DocsAPI.DocEditor("iframeEditor", config);
|
||||
};
|
||||
|
||||
const getFileExt = function (fileName) {
|
||||
if (fileName.indexOf(".")) {
|
||||
return fileName.split('.').reverse()[0];
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener("load", сonnectEditor);
|
||||
} else if (window.attachEvent) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -140,9 +140,8 @@ namespace OnlineEditorsExample
|
||||
|
||||
// get file extension
|
||||
var ext = Path.GetExtension(FileName).ToLower();
|
||||
var canFill = _Default.FillFormsExts.Contains(ext);
|
||||
// get editor mode or set the default one (edit)
|
||||
var editorsMode = Request.GetOrDefault("editorsMode", canFill ? "fillForms" : "edit");
|
||||
var editorsMode = Request.GetOrDefault("editorsMode", "edit");
|
||||
|
||||
var canEdit = _Default.EditedExts.Contains(ext); // check if this file can be edited
|
||||
var editorsType = Request.GetOrDefault("editorsType", "desktop");
|
||||
@ -150,11 +149,11 @@ namespace OnlineEditorsExample
|
||||
var id = Request.Cookies.GetOrDefault("uid", null);
|
||||
var user = Users.getUser(id); // get the user
|
||||
|
||||
if ((!canEdit && editorsMode.Equals("edit") || editorsMode.Equals("fillForms")) && canFill) {
|
||||
if ((!canEdit && editorsMode.Equals("edit") || editorsMode.Equals("fillForms")) && _Default.FillFormsExts.Contains(ext)) {
|
||||
editorsMode = "fillForms";
|
||||
canEdit = true;
|
||||
}
|
||||
var submitForm = (editorsMode.Equals("fillForms") || editorsMode.Equals("embedded")) && user.id.Equals("uid-1"); // check if the Submit form button is displayed or hidden
|
||||
var submitForm = !editorsMode.Equals("view") && user.id.Equals("uid-1"); // check if the Submit form button is displayed or hidden
|
||||
var mode = canEdit && editorsMode != "view" ? "edit" : "view"; // get the editor opening mode (edit or view)
|
||||
|
||||
var jss = new JavaScriptSerializer();
|
||||
@ -288,6 +287,13 @@ namespace OnlineEditorsExample
|
||||
{ "text", user.goback.text },
|
||||
{ "blank", user.goback.blank }
|
||||
} : new Dictionary<string, object>{}
|
||||
},
|
||||
{
|
||||
"close", user.close != null ? new Dictionary<string, object>
|
||||
{
|
||||
{ "visible", user.close.visible },
|
||||
{ "text", user.close.text }
|
||||
} : new Dictionary<string, object>{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -227,7 +227,7 @@ namespace ASC.Api.DocumentConverter
|
||||
private static void ProcessResponseError(int errorCode)
|
||||
{
|
||||
var errorMessage = string.Empty;
|
||||
const string errorMessageTemplate = "Error occurred in the ConvertService.ashx: {0}";
|
||||
const string errorMessageTemplate = "Error occurred in the ConvertService: {0}";
|
||||
|
||||
switch (errorCode)
|
||||
{
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
<title>ONLYOFFICE</title>
|
||||
<!--
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -46,6 +46,7 @@ namespace OnlineEditorsExample
|
||||
{
|
||||
var ext = Path.GetExtension(fileName).ToLower();
|
||||
|
||||
if (FormatManager.PdfExtensions().Contains(ext)) return "pdf"; // pdf for pdf extensions
|
||||
if (FormatManager.DocumentExtensions().Contains(ext)) return "word"; // word for text document extensions
|
||||
if (FormatManager.SpreadsheetExtensions().Contains(ext)) return "cell"; // cell for spreadsheet extensions
|
||||
if (FormatManager.PresentationExtensions().Contains(ext)) return "slide"; // slide for presentation extensions
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -164,6 +164,20 @@ namespace OnlineEditorsExample
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static List<string> DiagramExtensions()
|
||||
{
|
||||
return Diagrams()
|
||||
.Select(format => format.Extension())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static List<Format> Diagrams()
|
||||
{
|
||||
return All()
|
||||
.Where(format => format.Type == "diagram")
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static List<string> AllExtensions()
|
||||
{
|
||||
return All()
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -7,7 +7,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Ascensio System SIA")]
|
||||
[assembly: AssemblyProduct("OnlineEditorsExample")]
|
||||
[assembly: AssemblyCopyright("Ascensio System SIA 2024")]
|
||||
[assembly: AssemblyCopyright("Ascensio System SIA 2025")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
|
||||
@ -39,7 +39,15 @@ Configure the IIS components for the server to work correctly:
|
||||
* **Common HTTP Features**: Default Document,
|
||||
* **Security**: Request Filtering.
|
||||
|
||||
## Step 4. Run your website with the editors
|
||||
## Step 4. Configure JWT
|
||||
|
||||
Open the *settings.config* file and [specify the same secret key](https://helpcenter.onlyoffice.com/installation/docs-configure-jwt.aspx) as used in your Document Server to enable JWT:
|
||||
|
||||
```
|
||||
<add key="files.docservice.secret" value="secret" />
|
||||
```
|
||||
|
||||
## Step 5. Run your website with the editors
|
||||
1. Run the Internet Information Service (IIS) Manager:
|
||||
|
||||
**Start** -> **Control Panel** -> **System and Security** -> **Administrative Tools** -> **Internet Information Services (IIS) Manager**
|
||||
@ -67,7 +75,7 @@ Configure the IIS components for the server to work correctly:
|
||||
|
||||

|
||||
|
||||
## Step 5. Check accessibility
|
||||
## Step 6. Check accessibility
|
||||
|
||||
In case the example and Document Server are installed on different computers, make sure that your server with the example installed has access to the Document Server with the address which you specify instead of **documentserver** in the configuration files.
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -77,7 +77,8 @@ namespace OnlineEditorsExample
|
||||
"Can't view chat",
|
||||
"Can't protect file",
|
||||
"View file without collaboration",
|
||||
"Can’t submit forms"
|
||||
"Can’t submit forms",
|
||||
"Can’t refresh outdated file"
|
||||
};
|
||||
|
||||
private static List<User> users = new List<User>() {
|
||||
@ -94,7 +95,8 @@ namespace OnlineEditorsExample
|
||||
descr_user_1,
|
||||
true,
|
||||
true,
|
||||
new Goback(null, false)
|
||||
new Goback(null, false),
|
||||
new Close(null, false)
|
||||
),
|
||||
new User(
|
||||
"uid-2",
|
||||
@ -114,7 +116,8 @@ namespace OnlineEditorsExample
|
||||
descr_user_2,
|
||||
false,
|
||||
true,
|
||||
new Goback("Go to Documents",null)
|
||||
new Goback("Go to Documents",null),
|
||||
new Close(null, true)
|
||||
),
|
||||
new User(
|
||||
"uid-3",
|
||||
@ -134,7 +137,8 @@ namespace OnlineEditorsExample
|
||||
descr_user_3,
|
||||
false,
|
||||
false,
|
||||
null
|
||||
null,
|
||||
new Close(null, true)
|
||||
),
|
||||
new User(
|
||||
"uid-0",
|
||||
@ -149,6 +153,7 @@ namespace OnlineEditorsExample
|
||||
descr_user_0,
|
||||
false,
|
||||
false,
|
||||
null,
|
||||
null
|
||||
)
|
||||
};
|
||||
@ -242,8 +247,9 @@ namespace OnlineEditorsExample
|
||||
public List<string> userInfoGroups;
|
||||
public bool avatar;
|
||||
public Goback goback;
|
||||
public Close close;
|
||||
|
||||
public User(string id, string name, string email, string group, List<string> reviewGroups, Dictionary<string, object> commentGroups, List<string> userInfoGroups, bool? favorite, List<string> deniedPermissions, List<string> descriptions, bool templates, bool avatar, Goback goback)
|
||||
public User(string id, string name, string email, string group, List<string> reviewGroups, Dictionary<string, object> commentGroups, List<string> userInfoGroups, bool? favorite, List<string> deniedPermissions, List<string> descriptions, bool templates, bool avatar, Goback goback, Close close)
|
||||
{
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
@ -258,6 +264,7 @@ namespace OnlineEditorsExample
|
||||
this.userInfoGroups = userInfoGroups;
|
||||
this.avatar = avatar;
|
||||
this.goback = goback;
|
||||
this.close = close;
|
||||
}
|
||||
}
|
||||
|
||||
@ -274,4 +281,18 @@ namespace OnlineEditorsExample
|
||||
this.blank = blank;
|
||||
}
|
||||
}
|
||||
|
||||
public class Close
|
||||
{
|
||||
public string text;
|
||||
public bool visible;
|
||||
|
||||
public Close(){}
|
||||
|
||||
public Close(string text, bool visible)
|
||||
{
|
||||
this.text = text;
|
||||
this.visible = visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2024
|
||||
* (c) Copyright Ascensio System SIA 2025
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -93,6 +93,9 @@ namespace OnlineEditorsExample
|
||||
case "formats":
|
||||
Formats(context);
|
||||
break;
|
||||
case "config":
|
||||
Config(context);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -486,6 +489,7 @@ namespace OnlineEditorsExample
|
||||
|
||||
var fileName = (string)body["fileName"];
|
||||
var version = (int)body["version"];
|
||||
var url = body.ContainsKey("url") ? (string)body["url"] : null;
|
||||
|
||||
var lastVersionUri = _Default.FileUri(fileName, true);
|
||||
var key = ServiceConverter.GenerateRevisionId(_Default.CurUserHostAddress(null)
|
||||
@ -509,7 +513,19 @@ namespace OnlineEditorsExample
|
||||
File.Copy(changesPath, Path.Combine(currentVersionDir, "changes.json"));
|
||||
}
|
||||
|
||||
File.Copy(Path.Combine(verDir, "prev" + ext), _Default.StoragePath(fileName, null), true);
|
||||
if (url != null)
|
||||
{
|
||||
var req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Method = "GET";
|
||||
var stream = req.GetResponse().GetResponseStream();
|
||||
var memoryStream = new MemoryStream();
|
||||
stream.CopyTo(memoryStream);
|
||||
File.WriteAllBytes(_Default.StoragePath(fileName, null), memoryStream.ToArray());
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Copy(Path.Combine(verDir, "prev" + ext), _Default.StoragePath(fileName, null), true);
|
||||
}
|
||||
|
||||
var fileInfo = new FileInfo(_Default.StoragePath(fileName, null));
|
||||
fileInfo.LastWriteTimeUtc = DateTime.UtcNow;
|
||||
@ -815,6 +831,83 @@ namespace OnlineEditorsExample
|
||||
}
|
||||
}
|
||||
|
||||
private static void Config(HttpContext context) {
|
||||
try
|
||||
{
|
||||
var fileName = context.Request.QueryString.Get("fileName");
|
||||
var directUrl = context.Request.QueryString.Get("directUrl").ToLower() == "true";
|
||||
var permissions = context.Request.QueryString.Get("permissions") != null
|
||||
? context.Request.QueryString.Get("permissions")
|
||||
: "{}";
|
||||
var userAdress = HttpUtility.UrlEncode(_Default.CurUserHostAddress(HttpContext.Current.Request.UserHostAddress));
|
||||
|
||||
if (string.IsNullOrEmpty(fileName) || !File.Exists(_Default.StoragePath(fileName, userAdress)))
|
||||
{
|
||||
context.Response.Write("{ \"error\": \"File is not exist\"}");
|
||||
return;
|
||||
}
|
||||
|
||||
var id = context.Request.Cookies.GetOrDefault("uid", null);
|
||||
var user = Users.getUser(id);
|
||||
var callbackUrl = new UriBuilder(_Default.GetServerUrl(true));
|
||||
callbackUrl.Path = HttpRuntime.AppDomainAppVirtualPath
|
||||
+ (HttpRuntime.AppDomainAppVirtualPath.EndsWith("/") ? "" : "/")
|
||||
+ "webeditor.ashx";
|
||||
callbackUrl.Query = "type=track" + "&fileName="
|
||||
+ HttpUtility.UrlEncode(fileName)
|
||||
+ "&userAddress=" + HttpUtility.UrlEncode(_Default.CurUserHostAddress(HttpContext.Current.Request.UserHostAddress));
|
||||
var callback = callbackUrl.ToString();
|
||||
|
||||
var jss = new JavaScriptSerializer();
|
||||
|
||||
var config = new Dictionary<string, object>
|
||||
{
|
||||
{
|
||||
"document", new Dictionary<string, object>
|
||||
{
|
||||
{"key", ServiceConverter.GenerateRevisionId(_Default.CurUserHostAddress(null)
|
||||
+ "/" + Path.GetFileName(_Default.FileUri(fileName, true))
|
||||
+ "/" + File.GetLastWriteTime(_Default.StoragePath(fileName, null)).GetHashCode())},
|
||||
{"title", fileName},
|
||||
{"url", DocEditor.getDownloadUrl(fileName)},
|
||||
{"permissions", JsonConvert.DeserializeObject<Dictionary<string, object>>(permissions)},
|
||||
{"directUrl", directUrl ? DocEditor.getDownloadUrl(fileName, false) : null},
|
||||
{
|
||||
"referenceData", new Dictionary<string, object>
|
||||
{
|
||||
{"fileKey", !user.id.Equals("uid-0") ?
|
||||
jss.Serialize(new Dictionary<string, object>{
|
||||
{"fileName", fileName},
|
||||
{"userAddress", userAdress}
|
||||
}) : null },
|
||||
{"instanceId", _Default.GetServerUrl(false)}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"editorConfig", new Dictionary<string, object>
|
||||
{
|
||||
{"callbackUrl", callback},
|
||||
{"mode", "edit"}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (JwtManager.Enabled)
|
||||
{
|
||||
var token = JwtManager.Encode(config);
|
||||
config.Add("token", token);
|
||||
}
|
||||
|
||||
context.Response.Write(jss.Serialize(config));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
context.Response.Write("{ \"error\": \"" + e.Message + "\"}");
|
||||
}
|
||||
}
|
||||
|
||||
// delete a forgotten file from the document server
|
||||
private static void RemoveForgotten(HttpContext context)
|
||||
{
|
||||
|
||||