diff --git a/README.md b/README.md index 840929f..7ba5f46 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,19 @@ You will have 50 love gems on 01/16/2016. Good things come to those who wait! ## The Web App -You asked for a web app, and here it is! The [web_app](web_app) directory contains a (mostly) fully featured web app version of SIF Tools. The best part is, you don't need a web server to run it. You should just be able to open the [sif_tools.html](web_app/sif_tools.html) file in your local web browser and run it right on your own computer. You will need to have JavaScript enabled in your browser however. (Of course you can host these files on a web server just like any other website, if you happen to have access to a web server.) +You asked for a web app, and here it is! The [web_app](web_app) directory contains a fully featured web app version of SIF Tools. In fact, the web app actually does some things that the original Python scripts don't! (yet.) The best part is, you don't need a web server to run it. You should just be able to open the [sif_tools.html](web_app/sif_tools.html) file in your local web browser and run it right on your own computer. You will need to have JavaScript enabled in your browser however. (Of course you can host these files on a web server just like any other website, if you happen to have access to a web server.) Or you can run the copy hosted on my own web server [here](https://beta.DonaldBurr.com/sif_tools/sif_tools.html). + +## Credits + +The web app uses the following third-party Javascript libraries: + +* [jQuery](https://jquery.com) ([License](https://jquery.org/license/)) +* [jQuery UI](https://jqueryui.com) ([License](https://github.com/jquery/jquery-ui/blob/master/LICENSE.txt)) +* [jQuery Keypad](http://keith-wood.name/keypad.html) ([License](http://keith-wood.name/licence.html)) +* [Moment.js](http://momentjs.com) ([License](https://github.com/moment/moment/blob/develop/LICENSE)) +* [jquery.timepicker](http://jonthornton.github.io/jquery-timepicker/) ([License](https://opensource.org/licenses/MIT)) +* [node-sprintf](https://github.com/maritz/node-sprintf) ([License](https://github.com/maritz/node-sprintf#copyrightlicense)) +* [twitterFetcher](https://github.com/jasonmayes/Twitter-Post-Fetcher) ([License](https://github.com/jasonmayes/Twitter-Post-Fetcher/blob/master/License.txt)) ## Bugs? Need help? Got any suggestions/ideas for new features? Or want to chat? diff --git a/web_app/css/external/images/disabled.svg b/web_app/css/external/images/disabled.svg deleted file mode 100644 index 8a91c4d..0000000 --- a/web_app/css/external/images/disabled.svg +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/web_app/css/external/images/enabled.svg b/web_app/css/external/images/enabled.svg deleted file mode 100644 index 44b8ebe..0000000 --- a/web_app/css/external/images/enabled.svg +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/web_app/css/external/images/keyboard.svg b/web_app/css/external/images/keyboard.svg deleted file mode 100644 index 0d8fcb5..0000000 --- a/web_app/css/external/images/keyboard.svg +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/web_app/css/external/jquery-ui-timepicker-addon.css b/web_app/css/external/jquery-ui-timepicker-addon.css deleted file mode 100644 index 2d9e031..0000000 --- a/web_app/css/external/jquery-ui-timepicker-addon.css +++ /dev/null @@ -1,27 +0,0 @@ -.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; } -.ui-timepicker-div dl { text-align: left; } -.ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; } -.ui-timepicker-div dl dd { margin: 0 10px 10px 40%; } -.ui-timepicker-div td { font-size: 90%; } -.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; } -.ui-timepicker-div .ui_tpicker_unit_hide{ display: none; } - -.ui-timepicker-rtl{ direction: rtl; } -.ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; } -.ui-timepicker-rtl dl dt{ float: right; clear: right; } -.ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; } - -/* Shortened version style */ -.ui-timepicker-div.ui-timepicker-oneLine { padding-right: 2px; } -.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time, -.ui-timepicker-div.ui-timepicker-oneLine dt { display: none; } -.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label { display: block; padding-top: 2px; } -.ui-timepicker-div.ui-timepicker-oneLine dl { text-align: right; } -.ui-timepicker-div.ui-timepicker-oneLine dl dd, -.ui-timepicker-div.ui-timepicker-oneLine dl dd > div { display:inline-block; margin:0; } -.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before, -.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before { content:':'; display:inline-block; } -.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before, -.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content:'.'; display:inline-block; } -.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide, -.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{ display: none; } \ No newline at end of file diff --git a/web_app/css/external/jquery.keypad.css b/web_app/css/external/jquery.keypad.css new file mode 100644 index 0000000..3424627 --- /dev/null +++ b/web_app/css/external/jquery.keypad.css @@ -0,0 +1,106 @@ +/* Main style sheet for jQuery Keypad v2.0.0 */ +button.keypad-trigger { + width: 25px; + padding: 0px; +} +img.keypad-trigger { + margin: 2px; + vertical-align: middle; +} +.keypad-popup, .keypad-inline, .keypad-key, .keypad-special { + font-family: Arial,Helvetica,sans-serif; + font-size: 24px; +} +.keypad-popup { + display: none; + z-index: 10; + margin: 0; + padding: 0; + background-color: #fff; + color: #000; + border: 1px solid #888; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; +} +.keypad-keyentry { + display: none; +} +.keypad-inline { + background-color: #fff; + border: 1px solid #888; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; +} +.keypad-disabled { + position: absolute; + z-index: 100; + background-color: white; + opacity: 0.5; + filter: alpha(opacity=50); +} +.keypad-rtl { + direction: rtl; +} +.keypad-prompt { + clear: both; + text-align: center; +} +.keypad-prompt.ui-widget-header { + margin: 0.125em; +} +.keypad-row { + width: 100%; +} +.keypad-space { + display: inline-block; + margin: 0.125em; + width: 2em; +} +.keypad-half-space { + display: inline-block; + margin: 0.125em 0.0625em; + width: 1em; +} +.keypad-key, .keypad-special { + margin: 0.125em; + padding: 0em; + width: 2em; + background-color: #f4f4f4; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; + text-align: center; + cursor: pointer; +} +.keypad-key[disabled] { + border: 0.125em outset; +} +.keypad-key-down { +} +.keypad-special { + width: 4.25em; +} +.keypad-spacebar { + width: 13.25em; +} +.keypad-tab { + width: 2em; +} +.keypad-clear, .keypad-back, .keypad-close, .keypad-shift { + color: #fff; + font-weight: bold; +} +.keypad-clear { + background-color: #a00; +} +.keypad-back { + background-color: #00a; +} +.keypad-close { + background-color: #0a0; +} +.keypad-shift { + background-color: #0aa; +} diff --git a/web_app/css/external/jquery.timepicker.css b/web_app/css/external/jquery.timepicker.css old mode 100755 new mode 100644 diff --git a/web_app/css/external/keyboard-basic.css b/web_app/css/external/keyboard-basic.css deleted file mode 100644 index fb91ec4..0000000 --- a/web_app/css/external/keyboard-basic.css +++ /dev/null @@ -1,170 +0,0 @@ -/* *** keyboard light theme *** - for when jQuery UI themes are not being used - See http://jsfiddle.net/Mottie/jsh0377k/ - */ -.ui-keyboard { - /* adjust overall keyboard size using "font-size" */ - font-size: 14px; - text-align: center; - /* include the following setting to place the - keyboard at the bottom of the browser window */ - width: 100%; - height: auto; - left: 0px; - top: auto; - bottom: 0px; - position: fixed; -} -.ui-keyboard { - background: #fefefe; - border: 1px solid #aaa; - padding: 4px; -} -.ui-keyboard-button { - border: 1px solid #aaa; - padding: 0 0.5em; - margin: 1px; - min-width: 3em; - height: 3em; - line-height: 3em; - vertical-align: top; - font-family: Helvetica, Arial, sans-serif; - color: #333; - text-align: center; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5); - -moz-box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5); - box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5); - background: white; - background-image: -moz-linear-gradient(-90deg, white 0%, #e3e3e3 100%); - background-image: -webkit-linear-gradient(-90deg, white 0%, #e3e3e3 100%); - background-image: -o-linear-gradient(-90deg, white 0%, #e3e3e3 100%); - background-image: -ms-linear-gradient(-90deg, white 0%, #e3e3e3 100%); - cursor: pointer; - overflow: hidden; - -moz-user-focus: ignore; -} -.ui-keyboard-button span { - /* padding: 0; margin: 0; white-space:nowrap; display: inline-block; */ - display: block; - width: 100%; - font-size: 1.2em; - text-align: center; -} -/* make action keys extra-wide */ -.ui-keyboard-actionkey:not(.ui-keyboard-dec) { - min-width: 6em; -} -.ui-keyboard-space { - width: 15em; -} -.ui-keyboard-actionkey:not(.ui-keyboard-dec) span { - font-size: 0.8em; - position: relative; - top: -1em; - left: -1.6em; -} -.ui-keyboard-placeholder { - color: #888; -} -/* disabled or readonly inputs, or use input[disabled='disabled'] { color: #f00; } */ -.ui-keyboard-nokeyboard { - color: #888; - border-color: #888; -} - -/* combo key styling - toggles diacritics on/off */ -.ui-keyboard-button.ui-keyboard-combo.ui-state-default { - border-color: #375a7f; -} -/* (in)valid inputs */ -button.ui-keyboard-accept.ui-keyboard-valid-input { - background: #008966; - border-color: #007f5e; - color: #fff; -} -button.ui-keyboard-accept.ui-keyboard-valid-input:hover { - background: #00bc8c; - border-color: #00bc8c; -} -button.ui-keyboard-accept.ui-keyboard-invalid-input { - background: #d62c1a; - border-color: #cd2a19;; - color: #fff; -} -button.ui-keyboard-accept.ui-keyboard-invalid-input:hover { - background: #e74c3c; - border-color: #e74c3c; -} -/* unlocked icon (keyboard enabled) */ -button.ui-keyboard-toggle span { - width: .9em; - height: .9em; - display: inline-block; - margin-bottom: 3px; - background-repeat: no-repeat; - background-position: center center; - background-size: contain; - /* light theme unlocked icon - fill: #111 */ - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg=='); -} -.ui-keyboard-dark-theme button.ui-keyboard-toggle span { - /* dark theme unlocked icon - fill: #eee */ - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg=='); -} -/* locked icon (keyboard disabled) */ -button.ui-keyboard-toggle.ui-keyboard-disabled span { - /* light theme locked icon - fill: #111 */ - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4='); -} -.ui-keyboard-dark-theme button.ui-keyboard-toggle.ui-keyboard-disabled span { - /* dark theme locked icon - fill: #eee */ - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4='); -} -.ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle), .ui-keyboard.ui-keyboard-disabled input { - opacity: 0.5; -} - -/*** Alt-Keys Popup extension ***/ -/* clickable overlay on top of keyboard to hide the popup */ -.ui-keyboard-overlay { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background: rgba(0, 0, 0, 0.5); -} -/* the actual popup styling, class names from the css.container option are also added */ -.ui-keyboard-popup { - display: inline-block; - /* default buttons are 2em wide + .1em margin on either side (set in .ui-keyboard-button definition); - so use multiples of 2.2em for a max-width if you don't want any extra white space on the sides, - e.g. 5 buttons * 2.2em = 11em, 6 buttons * 2.2em = 13.2em, etc */ - max-width: 22em; - /* 10 buttons */ -} - -/*** Extender keyboard extension ***/ -div.ui-keyboard-extender { - float: right; - margin-left: 5px; - margin-right: 10px; -} -button.ui-keyboard-extender span { - width: .9em; - height: .9em; - display: inline-block; - margin-bottom: 3px; - background-repeat: no-repeat; - background-position: center center; - background-size: contain; - /* light theme extender icon - fill: #111 */ - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+'); -} -.ui-keyboard-dark-theme button.ui-keyboard-extender span { - /* dark theme extender icon - fill: #eee */ - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6I2VlZSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2VlZSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+'); -} diff --git a/web_app/css/external/keyboard-previewkeyset.css b/web_app/css/external/keyboard-previewkeyset.css deleted file mode 100644 index c93ba1e..0000000 --- a/web_app/css/external/keyboard-previewkeyset.css +++ /dev/null @@ -1,44 +0,0 @@ -/* basic previewKeyset setup - modify as desired */ -.ui-keyboard-keyset .ui-keyboard-button { - position: relative; -} -/* show mini-shift keyset with normal keyset */ -.ui-keyboard-keyset-normal .ui-keyboard-button::after { - content: attr(data-shift); - font-size: 0.6em; - color: #999; - position: absolute; - top: -1em; - left: 2px; - z-index: 200; -} -/* show mini-normal keyset with shift keyset */ -.ui-keyboard-keyset-shift .ui-keyboard-button::after { - content: attr(data-normal); - font-size: 0.6em; - color: #999; - position: absolute; - top: -1em; - left: 2px; - z-index: 200; -} -/* show mini-normal keyset with alt keyset */ -.ui-keyboard-keyset-alt .ui-keyboard-button::after { - content: attr(data-alt-shift); - font-size: 0.6em; - color: #999; - position: absolute; - top: -1em; - left: 2px; - z-index: 200; -} -/* show mini-alt-shift keyset with alt-shift keyset */ -.ui-keyboard-keyset-alt-shift .ui-keyboard-button::after { - content: attr(data-alt); - font-size: 0.6em; - color: #999; - position: absolute; - top: -1em; - left: 2px; - z-index: 200; -} diff --git a/web_app/css/external/keyboard.css b/web_app/css/external/keyboard.css deleted file mode 100644 index 0729c03..0000000 --- a/web_app/css/external/keyboard.css +++ /dev/null @@ -1,161 +0,0 @@ -/* keyboard - jQuery UI Widget */ -.ui-keyboard { padding: .3em; position: absolute; left: 0; top: 0; z-index: 16000; } -.ui-keyboard-has-focus { z-index: 16001; } -.ui-keyboard div { font-size: 1.1em; } -.ui-keyboard-button { height: 2em; min-width: 2em; margin: .1em; cursor: pointer; overflow: hidden; line-height: 2em; -moz-user-focus: ignore; } -.ui-keyboard-button span { padding: 0; margin: 0; white-space:nowrap; display: inline-block; } -.ui-keyboard-button-endrow { clear: left; } -.ui-keyboard-space { width: 15em; } -/* see http://nicolasgallagher.com/another-css-image-replacement-technique/ */ -.ui-keyboard-space span, .ui-keyboard-empty span { font: 0/0 a; text-shadow: none; color: transparent; } -.ui-keyboard-preview-wrapper { text-align: center; position: relative; overflow: hidden; } -/* width is calculated in IE, since 99% = 99% full browser width =( */ -.ui-keyboard-preview { text-align: left; margin: 0 0 3px 0; display: inline; width: 99%;} -.ui-keyboard-keyset { text-align: center; white-space: nowrap; } -.ui-keyboard-input { text-align: left; } -.ui-keyboard-input-current { -moz-box-shadow: 0 0 5px #4d90fe; -webkit-box-shadow: 0 0 5px #4d90fe; box-shadow: 0 0 5px #4d90fe; } -.ui-keyboard-placeholder { color: #888; } -/* disabled or readonly inputs, or use input[disabled='disabled'] { color: #f00; } */ -.ui-keyboard-nokeyboard { color: #888; border-color: #888; } -.ui-keyboard-spacer { display: inline-block; width: 1px; height: 0; cursor: default; } - -.ui-keyboard-NBSP span, .ui-keyboard-ZWSP span, .ui-keyboard-ZWNJ span, .ui-keyboard-ZWJ span, .ui-keyboard-LRM span, .ui-keyboard-RLM span { - font-size: 0.5em; - line-height: 1.5em; - white-space: normal; -} - -/* combo key styling - toggles diacritics on/off */ -.ui-keyboard-button.ui-keyboard-combo.ui-state-default { border-color: #ffaf0f; } - -/* (in)valid inputs */ -button.ui-keyboard-accept.ui-keyboard-valid-input { border-color: #0c0; background: #080; color: #fff; } -button.ui-keyboard-accept.ui-keyboard-valid-input:hover { background: #0a0; } -button.ui-keyboard-accept.ui-keyboard-invalid-input { border-color: #c00; background: #800; color: #fff; opacity: 0.5; filter: alpha(opacity=50); } -button.ui-keyboard-accept.ui-keyboard-invalid-input:hover { background: #a00; } - -/*** Caret extension definition ***/ -/* margin-top => is added to the caret height (top & bottom) */ -.ui-keyboard-caret { background: #c00; width: 1px; margin-top: 3px; } - -/*** jQuery Mobile definitions ***/ -/* jQuery Mobile styles - need wider buttons because of font size and text-overflow:ellipsis */ -div.ui-body.ui-keyboard button.ui-keyboard-button.ui-btn { padding: 0.5em 1em; border-color: transparent; } -.ui-body .ui-keyboard-button { width: 3em; height: 3em; display: inline-block; } -.ui-body .ui-keyboard-widekey { width: 5.5em; } -.ui-body .ui-keyboard-space { width: 15em; } -.ui-body .ui-keyboard-space span { visibility: hidden; } /* hides the ellipsis */ -.ui-body .ui-keyboard-keyset { line-height: 0.5em; } -.ui-body input.ui-input-text, .ui-body textarea.ui-input-text { width: 95%; } - -/* over-ride padding set by mobile ui theme - needed because the mobile script wraps button text with several more spans */ -.ui-body .ui-btn-inner { height: 2em; padding: 0.2em 0; margin: 0; } -.ui-body .ui-btn { margin: 0; font-size: 13px; } /* mobile default size is 13px */ - -/* override Bootstrap excessive button padding */ -button.ui-keyboard-button.btn { padding: 1px 6px; } - -/* enable/disable icons */ -button.ui-keyboard-toggle span { - width: .8em; - height: .8em; - display: inline-block; - background-repeat: no-repeat; - background-position: center center; - background-size: contain; -} -/* unlocked icon (keyboard enabled) */ -button.ui-keyboard-toggle span { - /* light theme unlocked icon - fill: #111 */ - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==); -} -.ui-keyboard-dark-theme button.ui-keyboard-toggle span { - /* dark theme unlocked icon - fill: #eee */ - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==); -} - -/* locked icon (keyboard disabled) */ -button.ui-keyboard-toggle.ui-keyboard-disabled span { - /* light theme locked icon - fill: #111 */ - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=); -} -.ui-keyboard-dark-theme button.ui-keyboard-toggle.ui-keyboard-disabled span { - /* dark theme locked icon - fill: #eee */ - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=); -} - -.ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle), -.ui-keyboard.ui-keyboard-disabled input { - opacity: 0.5; -} - -/*** Alt-Keys Popup extension ***/ -/* clickable overlay on top of keyboard to hide the popup */ -.ui-keyboard-overlay { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background: rgba(0, 0, 0, 0.5); -} -/* the actual popup styling, class names from the css.container option are also added */ -.ui-keyboard-popup { - display: inline-block; - /* default buttons are 2em wide + .1em margin on either side (set in .ui-keyboard-button definition); - so use multiples of 2.2em for a max-width if you don't want any extra white space on the sides, - e.g. 5 buttons * 2.2em = 11em, 6 buttons * 2.2em = 13.2em, etc */ - max-width: 22em; /* 10 buttons */ -} - -/*** Extender keyboard extension ***/ -div.ui-keyboard-extender { float: right; margin-left: 5px; } -button.ui-keyboard-extender span { - width: .9em; - height: .9em; - display: inline-block; - margin-bottom: 3px; - background-repeat: no-repeat; - background-position: center center; - background-size: contain; - /* light theme extender icon - fill: #111 */ - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+); -} -.ui-keyboard-dark-theme button.ui-keyboard-extender span { - /* dark theme extender icon - fill: #eee */ - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6I2VlZSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2VlZSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+); -} - -/* Media Queries (optimized for jQuery UI themes; may be slightly off in jQuery Mobile themes) */ -/* 240 x 320 (small phone) */ -@media all and (max-width: 319px) { - .ui-keyboard div { font-size: 9px; } - .ui-keyboard .ui-keyboard-input { font-size: 12px; } - /* I don't own an iPhone so I have no idea how small this really is... is it even clickable with your finger? */ - .ui-body .ui-btn { margin: 0; font-size: 9px; } - .ui-body .ui-keyboard-button { width: 1.8em; height: 2.5em; } - .ui-body .ui-keyboard-widekey { width: 4em; } - .ui-body .ui-keyboard-space { width: 8em; } - .ui-body .ui-btn-inner { height: 2.5em; padding: 0.3em 0; } -} - -/* 320 x 480 (iPhone) */ -@media all and (min-width: 320px) and (max-width: 479px) { - .ui-keyboard div { font-size: 9px; } - .ui-keyboard .ui-keyboard-input { font-size: 14px; } - /* I don't own an iPhone so I have no idea how small this really is... is it even clickable with your finger? */ - .ui-body .ui-btn { margin: 0; font-size: 11px; } - .ui-body .ui-keyboard-button { width: 1.8em; height: 3em; } - .ui-body .ui-keyboard-widekey { width: 4.5em; } - .ui-body .ui-keyboard-space { width: 10em; } - .ui-body .ui-btn-inner { height: 3em; padding: 0.7em 0; } -} - -/* 480 x 640 (small tablet) */ -@media all and (min-width: 480px) and (max-width: 767px) { - .ui-keyboard div { font-size: 13px; } - .ui-keyboard .ui-keyboard-input { font-size: 14px; } - .ui-body .ui-btn { margin: 0; font-size: 10px; } - .ui-body .ui-keyboard-button { height: 2.5em; } - .ui-body .ui-btn-inner { height: 2.5em; padding: 0.5em 0; } -} diff --git a/web_app/css/sif-tools.css b/web_app/css/sif_tools.css similarity index 66% rename from web_app/css/sif-tools.css rename to web_app/css/sif_tools.css index 67a87c1..a1d7680 100644 --- a/web_app/css/sif-tools.css +++ b/web_app/css/sif_tools.css @@ -1,13 +1,12 @@ body { font: 100% "Trebuchet MS", sans-serif; - margin: 50px; + font-family: Verdana,Arial,sans-serif; + font-size: 14px; + margin: 0px; background-color: #000000; color: #ffffff; -} - -body { - font-family: Verdana,Arial,sans-serif; - font-size: 14px; + /*height: 100%;*/ + /*min-height: 480px;*/ } p { diff --git a/web_app/index.html b/web_app/index.html index 7c11c2c..9c94c0e 100644 --- a/web_app/index.html +++ b/web_app/index.html @@ -1,10 +1,13 @@ + -
-