appscms-tools-theme 5.1.3 → 5.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/_layouts/aboutUs.html +6 -1
  3. data/_layouts/allAuthors.html +6 -1
  4. data/_layouts/appscms-about.html +6 -1
  5. data/_layouts/appscms-author.html +4 -1
  6. data/_layouts/appscms-authors.html +6 -1
  7. data/_layouts/appscms-blog.html +6 -1
  8. data/_layouts/appscms-contact.html +6 -1
  9. data/_layouts/appscms-disclaimer.html +6 -1
  10. data/_layouts/appscms-download.html +4 -1
  11. data/_layouts/appscms-feature-result.html +6 -1
  12. data/_layouts/appscms-feature.html +6 -1
  13. data/_layouts/appscms-help.html +8 -2
  14. data/_layouts/appscms-home.html +9 -8
  15. data/_layouts/appscms-post.html +4 -1
  16. data/_layouts/appscms-privacy-policy.html +6 -1
  17. data/_layouts/appscms-terms-and-conditions.html +4 -1
  18. data/_layouts/author.html +4 -1
  19. data/_layouts/blog-1.html +6 -1
  20. data/_layouts/blog.html +6 -1
  21. data/_layouts/contactUs.html +4 -1
  22. data/_layouts/contenttool-feature.html +6 -1
  23. data/_layouts/contenttool-home.html +6 -1
  24. data/_layouts/devtool-blog.html +6 -1
  25. data/_layouts/devtool-feature.html +56 -52
  26. data/_layouts/devtool-home.html +54 -50
  27. data/_layouts/disclaimer.html +126 -121
  28. data/_layouts/download.html +4 -1
  29. data/_layouts/feature-1.html +367 -243
  30. data/_layouts/feature-download.html +4 -1
  31. data/_layouts/feature.html +447 -300
  32. data/_layouts/featureResultPage.html +6 -1
  33. data/_layouts/fileInfo.html +43 -37
  34. data/_layouts/filecomparison.html +122 -78
  35. data/_layouts/help.html +22 -21
  36. data/_layouts/home-1.html +212 -178
  37. data/_layouts/home.html +6 -1
  38. data/_layouts/homeResultPage.html +38 -20
  39. data/_layouts/post.html +4 -1
  40. data/_layouts/privacyPolicy.html +783 -635
  41. data/_layouts/profile.html +6 -1
  42. data/_layouts/termAndCondition.html +4 -1
  43. data/assets/.DS_Store +0 -0
  44. data/assets/js/googledrive.js +6 -4
  45. data/assets/js/multiselect.js +141 -114
  46. metadata +2 -2
@@ -5,7 +5,12 @@ assign boxColor = site.data[page.folderName][page.lang][page.fileName].color -%}
5
5
  <!DOCTYPE html>
6
6
  <html lang="{{ page.lang }}">
7
7
  {%- include appscms/head/head.html -%}
8
- <body>
8
+ <body
9
+ data-developer-key="{{ site.developerKey }}"
10
+ data-client-id="{{ site.clientId }}"
11
+ data-app-id="{{ site.appId }}"
12
+ data-dropbox-apikey="{{ site.dropboxapikey }}"
13
+ >
9
14
  {%- include appscms/navbars/navbar.html -%} {%- include
10
15
  appscms/navbars/toolbar.html -%} {%- include bookmark.html -%}
11
16
  <style>
@@ -6,7 +6,10 @@
6
6
  <html lang="{{termsData.htmlLangAtt}}">
7
7
  {% include head/index.html %}
8
8
 
9
- <body>
9
+ <body data-developer-key="{{ site.developerKey }}"
10
+ data-client-id="{{ site.clientId }}"
11
+ data-app-id="{{ site.appId }}"
12
+ data-dropbox-apikey="{{ site.dropboxapikey }}">
10
13
  {% include header/index.html %}
11
14
  {%- include dropdown/langdropdown.html -%}
12
15
  <div class="container py-4">
data/assets/.DS_Store CHANGED
Binary file
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  ---
3
+ const bodyData = document.body.dataset;
3
4
 
4
5
  const addScripts=()=>{
5
6
  const scripts=document.getElementsByTagName('script')
@@ -8,7 +9,7 @@ const addScripts=()=>{
8
9
  const dropboxscript = document.createElement('script')
9
10
  dropboxscript.src = 'https://www.dropbox.com/static/api/2/dropins.js'
10
11
  dropboxscript.crossOrigin = 'anonymous'
11
- dropboxscript.dataset.appKey = '{{site.dropboxapikey}}'
12
+ dropboxscript.dataset.appKey = document.body.dataset.dropboxApikey
12
13
  dropboxscript.id='dropboxjs'
13
14
  document.head.append(dropboxscript)
14
15
  }
@@ -20,9 +21,10 @@ const addScripts=()=>{
20
21
  document.head.append(googlescript)
21
22
  }
22
23
  }
23
- const developerKey = '{{site.developerKey}}'
24
- const clientId ='{{site.clientId}}'
25
- const appId = '{{site.appId}}'
24
+
25
+ const developerKey = bodyData.developerKey;
26
+ const clientId = bodyData.clientId;
27
+ const appId = bodyData.appId;
26
28
  const scope = [
27
29
  'https://www.googleapis.com/auth/drive.file',
28
30
  'https://www.googleapis.com/auth/drive.appdata',
@@ -1,38 +1,50 @@
1
1
  ---
2
2
  ---
3
3
 
4
- const addScripts=()=>{
5
- const scripts=document.getElementsByTagName('script')
6
- const check= Array.from(scripts).find(item=>item.src==='https://www.dropbox.com/static/api/2/dropins.js')
7
- if(!check){
8
- const dropboxscript = document.createElement('script')
9
- dropboxscript.src = 'https://www.dropbox.com/static/api/2/dropins.js'
10
- dropboxscript.dataset.appKey = '{{site.dropboxapikey}}'
11
- dropboxscript.id='dropboxjs'
12
- dropboxscript.crossOrigin = 'anonymous'
13
- document.head.append(dropboxscript)
4
+ const addScripts = () => {
5
+ const scripts = document.getElementsByTagName('script');
6
+
7
+ const dropboxScriptExists = Array.from(scripts).some(
8
+ (item) => item.src === 'https://www.dropbox.com/static/api/2/dropins.js'
9
+ );
10
+ if (!dropboxScriptExists) {
11
+ const dropboxscript = document.createElement('script');
12
+ dropboxscript.src = 'https://www.dropbox.com/static/api/2/dropins.js';
13
+ dropboxscript.dataset.appKey = document.body.dataset.dropboxApikey;
14
+ dropboxscript.id = 'dropboxjs';
15
+ dropboxscript.crossOrigin = 'anonymous';
16
+ document.head.append(dropboxscript);
14
17
  }
15
- const checkgooglescript= Array.from(scripts).find(item=>item.src==='https://apis.google.com/js/api.js')
16
- if(!checkgooglescript){
17
- const googlescript = document.createElement('script')
18
- googlescript.src = 'https://apis.google.com/js/api.js'
19
- googlescript.crossOrigin = 'anonymous'
20
- document.head.append(googlescript)
18
+
19
+ const googleScriptExists = Array.from(scripts).some(
20
+ (item) => item.src === 'https://apis.google.com/js/api.js'
21
+ );
22
+ if (!googleScriptExists) {
23
+ const googlescript = document.createElement('script');
24
+ googlescript.src = 'https://apis.google.com/js/api.js';
25
+ googlescript.crossOrigin = 'anonymous';
26
+ document.head.append(googlescript);
21
27
  }
22
- }
23
- const developerKey = '{{site.developerKey}}'
24
- const clientId ='{{site.clientId}}'
25
- const appId = '{{site.appId}}'
28
+ };
29
+
30
+ const bodyData = document.body.dataset;
31
+ const developerKey = bodyData.developerKey;
32
+ const clientId = bodyData.clientId;
33
+ const appId = bodyData.appId;
34
+
26
35
  const scope = [
27
36
  'https://www.googleapis.com/auth/drive.file',
28
37
  'https://www.googleapis.com/auth/drive.appdata',
29
- ]
30
- let pickerApiLoaded = false
31
- let oauthToken
38
+ ];
39
+
40
+ let pickerApiLoaded = false;
41
+ let oauthToken;
42
+
32
43
  const loadPicker = () => {
33
- gapi.load('auth', { callback: onAuthApiLoad })
34
- gapi.load('picker', { callback: onPickerApiLoad })
35
- }
44
+ gapi.load('auth', { callback: onAuthApiLoad });
45
+ gapi.load('picker', { callback: onPickerApiLoad });
46
+ };
47
+
36
48
  const onAuthApiLoad = () => {
37
49
  window.gapi.auth.authorize(
38
50
  {
@@ -41,22 +53,25 @@ const onAuthApiLoad = () => {
41
53
  immediate: false,
42
54
  },
43
55
  handleAuthResult
44
- )
45
- }
46
- let onPickerApiLoad = () => {
47
- pickerApiLoaded = true
48
- createPicker()
49
- }
56
+ );
57
+ };
58
+
59
+ const onPickerApiLoad = () => {
60
+ pickerApiLoaded = true;
61
+ createPicker();
62
+ };
63
+
50
64
  const handleAuthResult = (authResult) => {
51
65
  if (authResult && !authResult.error) {
52
- oauthToken = authResult.access_token
53
- createPicker()
66
+ oauthToken = authResult.access_token;
67
+ createPicker();
54
68
  }
55
- }
69
+ };
70
+
56
71
  const createPicker = () => {
57
72
  if (pickerApiLoaded && oauthToken) {
58
- const view = new google.picker.View(google.picker.ViewId.DOCS)
59
- view.setMimeTypes(mimeTypes)
73
+ const view = new google.picker.View(google.picker.ViewId.DOCS);
74
+ view.setMimeTypes(mimeTypes);
60
75
  const picker = new google.picker.PickerBuilder()
61
76
  .enableFeature(google.picker.Feature.NAV_HIDDEN)
62
77
  .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
@@ -66,93 +81,105 @@ const createPicker = () => {
66
81
  .addView(new google.picker.DocsUploadView())
67
82
  .setDeveloperKey(developerKey)
68
83
  .setCallback(pickerCallback)
69
- .build()
70
- picker.setVisible(true)
84
+ .build();
85
+ picker.setVisible(true);
71
86
  }
72
- }
87
+ };
88
+
73
89
  const pickerCallback = async (data) => {
74
- if (data.action == google.picker.Action.PICKED) {
75
- showLoader()
76
- var filesArray=data.docs.map(async(i)=>{
77
- const res= await fetch(`https://www.googleapis.com/drive/v3/files/${i.id}?alt=media`,{
78
- headers: {
79
- 'Authorization': `Bearer ${oauthToken}` }
80
- }).then(res=>res.blob())
81
- let metadata = {
82
- type: i.mimeType
83
- }
84
- const file = new File([res], i.name, metadata);
85
- return file
86
- })
87
- closeLoader()
88
- getFile(filesArray)
90
+ if (data.action === google.picker.Action.PICKED) {
91
+ showLoader();
92
+
93
+ const filesArray = await Promise.all(
94
+ data.docs.map(async (doc) => {
95
+ const res = await fetch(
96
+ `https://www.googleapis.com/drive/v3/files/${doc.id}?alt=media`,
97
+ {
98
+ headers: {
99
+ Authorization: `Bearer ${oauthToken}`,
100
+ },
101
+ }
102
+ ).then((res) => res.blob());
103
+
104
+ const metadata = { type: doc.mimeType };
105
+ return new File([res], doc.name, metadata);
106
+ })
107
+ );
108
+
109
+ closeLoader();
110
+ getFile(filesArray);
89
111
  }
90
- }
112
+ };
113
+
91
114
  function chooseFromDropbox() {
92
115
  Dropbox.choose({
93
116
  success: async (files) => {
94
- if (files.length < 0) {
95
- return
96
- }
97
- var dropboxArray=files.map(async(file)=>{
98
- showLoader()
99
- const url = new URL(file.link)
100
- const response = await fetch(url).then((res) => res.blob())
101
- let metadata = {
102
- type: response.type,
103
- }
104
- let newFile = new File([response], file.name, metadata)
105
- return newFile
106
- })
107
-
108
- closeLoader()
109
- getDropBoxFile(dropboxArray)
117
+ if (files.length <= 0) return;
118
+
119
+ showLoader();
120
+
121
+ const dropboxArray = await Promise.all(
122
+ files.map(async (file) => {
123
+ const url = new URL(file.link);
124
+ const response = await fetch(url).then((res) => res.blob());
125
+ const metadata = { type: response.type };
126
+ return new File([response], file.name, metadata);
127
+ })
128
+ );
129
+
130
+ closeLoader();
131
+ getDropBoxFile(dropboxArray);
110
132
  },
111
133
  cancel: function () {},
112
- linkType: 'direct',
113
- multiselect: true,
114
- extensions: [...filemimes],
115
- folderselect: false,
116
- })
134
+ linkType: 'direct',
135
+ multiselect: true,
136
+ extensions: [...filemimes],
137
+ folderselect: false,
138
+ });
117
139
  }
118
140
 
119
- const fileupload=(file)=>{
120
- gapi.load('auth', {'callback': onAuthLoad});
121
- }
122
- const onAuthLoad=()=> {
141
+ const fileupload = (file) => {
142
+ gapi.load('auth', { callback: onAuthLoad });
143
+ };
144
+
145
+ const onAuthLoad = () => {
123
146
  window.gapi.auth.authorize(
124
- {
125
- 'client_id': clientId,
126
- 'scope': scope,
127
- 'immediate': false
128
- },
129
- handleAuth);
130
- }
131
- const handleAuth=(authResult)=> {
132
- if (authResult && !authResult.error) {
133
- showuploadloading()
134
- var formData = new FormData();
135
- const fileToUpload = file
136
- var metadata = {
137
- name: fileToUpload.name,
138
- mimeType: fileToUpload.type
147
+ {
148
+ client_id: clientId,
149
+ scope: scope,
150
+ immediate: false,
151
+ },
152
+ handleAuth
153
+ );
139
154
  };
140
- formData.append( "metadata", new Blob( [JSON.stringify( metadata )], {type: "application/json"} ));
141
- formData.append( "file", fileToUpload );
142
- fetch( "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart", {
143
- method: "POST",
144
- headers: new Headers({ "Authorization": "Bearer " + gapi.auth.getToken().access_token }),
145
- body: formData
146
- }).then( function( response ){
147
- stopuploadloading()
148
- return response.json();
149
-
150
- }).then( function( value ){
151
- stopuploadloading()
152
- showmessage()
153
- });
154
- }
155
- }
156
155
 
157
-
158
-
156
+ const handleAuth = (authResult) => {
157
+ if (authResult && !authResult.error) {
158
+ showuploadloading();
159
+
160
+ const formData = new FormData();
161
+ const metadata = {
162
+ name: file.name,
163
+ mimeType: file.type,
164
+ };
165
+
166
+ formData.append('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' }));
167
+ formData.append('file', file);
168
+
169
+ fetch('https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart', {
170
+ method: 'POST',
171
+ headers: new Headers({
172
+ Authorization: 'Bearer ' + gapi.auth.getToken().access_token,
173
+ }),
174
+ body: formData,
175
+ })
176
+ .then((response) => {
177
+ stopuploadloading();
178
+ return response.json();
179
+ })
180
+ .then(() => {
181
+ stopuploadloading();
182
+ showmessage();
183
+ });
184
+ }
185
+ };
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appscms-tools-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.3
4
+ version: 5.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - vivek-appscms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-17 00:00:00.000000000 Z
11
+ date: 2025-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll