| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- // Handles form-submit by preparing to process response
- function handleSubmit()
- {
- if (window.parent.openNew && window.parent.baseUrl != null)
- {
- window.parent.openFile.setConsumer(null);
- window.parent.open(window.parent.baseUrl);
- }
-
- // NOTE: File is loaded via JS injection into the iframe, which in turn sets the
- // file contents in the parent window. The new window asks its opener if any file
- // contents are available or waits for the contents to become available.
- return true;
- };
- // Hides this dialog
- function hideWindow(cancel)
- {
- if (window.parent.openFile != null)
- {
- window.parent.openFile.cancel(cancel);
- }
- };
- function fileChanged()
- {
- var form = window.openForm || document.getElementById('openForm');
- var openButton = document.getElementById('openButton');
-
- if (form.upfile.value.length > 0)
- {
- openButton.removeAttribute('disabled');
- }
- else
- {
- openButton.setAttribute('disabled', 'disabled');
- }
- };
- function main()
- {
- if (window.parent != null && window.parent.Editor != null)
- {
- document.body.innerText = '';
- var div = document.createElement('div');
- div.style.fontFamily = 'Arial';
- var darkMode = window.parent.Editor.cssDarkMode ||
- (typeof window.parent.Editor.isDarkMode === 'function' &&
- window.parent.Editor.isDarkMode());
- window.parent.listBrowserFiles(function(filesInfo)
- {
- if (window.parent != null)
- {
- if (filesInfo.length == 0)
- {
- window.parent.mxUtils.write(div, window.parent.mxResources.get('noFiles'));
- div.style.color = (darkMode) ? '#cccccc' : '';
- window.parent.mxUtils.br(div);
- }
- else
- {
- // Sorts the array by filename (titles)
- filesInfo.sort(function (a, b)
- {
- return a.title.toLowerCase().localeCompare(b.title.toLowerCase());
- });
-
- var table = document.createElement('table');
- var hrow = document.createElement('tr');
- hrow.style.backgroundColor = (darkMode) ? '#000' : '#D6D6D6';
- hrow.style.color = (darkMode) ? '#cccccc' : '';
- hrow.style.height = '25px';
- hrow.style.textAlign = 'left';
- table.appendChild(hrow);
- var hName = document.createElement('th');
- window.parent.mxUtils.write(hName, window.parent.mxResources.get('name'));
- hrow.appendChild(hName);
- var hModified = document.createElement('th');
- hModified.style.width = '180px';
- window.parent.mxUtils.write(hModified, window.parent.mxResources.get('lastModified'));
- hrow.appendChild(hModified);
- var hSize = document.createElement('th');
- window.parent.mxUtils.write(hSize, window.parent.mxResources.get('size'));
- hSize.style.width = '70px';
- hrow.appendChild(hSize);
- var hCtrl = document.createElement('th');
- hCtrl.style.width = '23px';
- hrow.appendChild(hCtrl);
- table.style.fontSize = '12pt';
- table.style.width = '100%';
- for (var i = 0; i < filesInfo.length; i++)
- {
- var fileInfo = filesInfo[i];
-
- if (fileInfo.title.length > 0)
- {
- var row = document.createElement('tr');
- row.style.color = (darkMode) ? '#cccccc' : '';
- table.appendChild(row);
-
- if (i & 1 == 1)
- {
- row.style.backgroundColor = (darkMode) ? '#000' : '#E6E6E6';
- }
-
- var nameTd = document.createElement('td');
- row.appendChild(nameTd);
- var link = document.createElement('a');
- link.style.fontDecoration = 'none';
- window.parent.mxUtils.write(link, fileInfo.title);
- link.style.cursor = 'pointer';
- nameTd.appendChild(link);
-
- var modifiedTd = document.createElement('td');
- row.appendChild(modifiedTd);
- var str = window.parent.EditorUi.prototype.timeSince(new Date(fileInfo.lastModified));
-
- if (str == null)
- {
- str = window.parent.mxResources.get('lessThanAMinute');
- }
-
- window.parent.mxUtils.write(modifiedTd, window.parent.mxResources.get('timeAgo', [str]));
-
- var sizeTd = document.createElement('td');
- row.appendChild(sizeTd);
- window.parent.mxUtils.write(sizeTd, window.parent.EditorUi.prototype.formatFileSize(fileInfo.size));
-
- var ctrlTd = document.createElement('td');
- row.appendChild(ctrlTd);
- ctrlTd.style.textAlign = 'center';
- var img = document.createElement('span');
- img.className = 'geSprite geSprite-delete';
- img.style.cursor = 'pointer';
- img.style.display = 'inline-block';
- ctrlTd.appendChild(img);
-
- if (darkMode)
- {
- img.style.filter = 'invert(100%)';
- }
- window.parent.mxEvent.addListener(img, 'click', (function(k)
- {
- return function()
- {
- if (window.parent.mxUtils.confirm(window.parent.mxResources.get('delete') + ' "' + k + '"?'))
- {
- window.parent.deleteBrowserFile(k, function()
- {
- window.location.reload();
- });
- }
- };
- })(fileInfo.title));
-
- window.parent.mxEvent.addListener(link, 'click', (function(k)
- {
- return function()
- {
- if (window.parent.openNew && window.parent.baseUrl != null)
- {
- var of = window.parent.openFile;
- window.parent.openBrowserFile(k, function(data)
- {
- if (window.parent != null)
- {
- window.parent.geOpenWindow(window.parent.baseUrl + '#L' + encodeURIComponent(k), function()
- {
- of.cancel(false);
- }, function()
- {
- of.setData(data, k);
- });
- }
- }, function()
- {
- //TODO add error
- });
- }
- else
- {
- window.parent.openBrowserFile(k, function(data)
- {
- if (window.parent != null)
- {
- window.parent.openFile.setData(data, k);
- }
- }, function()
- {
- //TODO add error
- });
- }
- };
- })(fileInfo.title));
- }
- }
-
- div.appendChild(table);
- }
-
- var closeButton = window.parent.mxUtils.button(window.parent.mxResources.get('close'), function()
- {
- hideWindow(true);
- });
-
- closeButton.className = 'geBtn';
- closeButton.style.position = 'fixed';
- closeButton.style.bottom = '0px';
- closeButton.style.right = '0px';
- div.appendChild(closeButton);
-
- document.body.appendChild(div);
- }
- });
- }
- else
- {
- document.body.innerHTML = 'Missing parent window';
- }
- };
- window.addEventListener('load', main);
|