From b7565eec92f5aaf6e49ec0762d8ce58b32bf1339 Mon Sep 17 00:00:00 2001 From: nearwood Date: Sun, 15 Feb 2015 13:10:25 -0500 Subject: [PATCH] Contains work for issue #9. Marks transition to OO per issue #12 --- src/browse.php | 24 +++ src/config.php | 18 ++ src/config.php.dist | 19 ++ src/index.php | 12 ++ src/ini.php | 143 ++++++++++++- src/msqur.php | 66 +++++- src/upload.php | 99 +++++++++ src/view.php | 9 + src/view/browse.php | 18 ++ src/view/footer.php | 20 ++ src/view/header.php | 47 +++++ .../lib/tablesorter/jquery.tablesorter.min.js | 4 + .../lib/tablesorter/themes/.svn/all-wcprops | 5 + src/view/lib/tablesorter/themes/.svn/entries | 34 +++ .../tablesorter/themes/blue/.svn/all-wcprops | 35 ++++ .../lib/tablesorter/themes/blue/.svn/entries | 198 ++++++++++++++++++ .../blue/.svn/prop-base/asc.gif.svn-base | 5 + .../blue/.svn/prop-base/bg.gif.svn-base | 5 + .../blue/.svn/prop-base/blue.zip.svn-base | 5 + .../blue/.svn/prop-base/desc.gif.svn-base | 5 + .../blue/.svn/prop-base/style.css.svn-base | 5 + .../blue/.svn/text-base/asc.gif.svn-base | Bin 0 -> 54 bytes .../blue/.svn/text-base/bg.gif.svn-base | Bin 0 -> 64 bytes .../blue/.svn/text-base/blue.zip.svn-base | Bin 0 -> 885 bytes .../blue/.svn/text-base/desc.gif.svn-base | Bin 0 -> 54 bytes .../blue/.svn/text-base/style.css.svn-base | 39 ++++ src/view/lib/tablesorter/themes/blue/asc.gif | Bin 0 -> 54 bytes src/view/lib/tablesorter/themes/blue/bg.gif | Bin 0 -> 64 bytes src/view/lib/tablesorter/themes/blue/blue.zip | Bin 0 -> 885 bytes src/view/lib/tablesorter/themes/blue/desc.gif | Bin 0 -> 54 bytes .../lib/tablesorter/themes/blue/style.css | 39 ++++ .../tablesorter/themes/green/.svn/all-wcprops | 35 ++++ .../lib/tablesorter/themes/green/.svn/entries | 198 ++++++++++++++++++ .../green/.svn/prop-base/asc.png.svn-base | 5 + .../green/.svn/prop-base/bg.png.svn-base | 5 + .../green/.svn/prop-base/desc.png.svn-base | 5 + .../green/.svn/prop-base/green.zip.svn-base | 5 + .../green/.svn/prop-base/style.css.svn-base | 5 + .../green/.svn/text-base/asc.png.svn-base | Bin 0 -> 2665 bytes .../green/.svn/text-base/bg.png.svn-base | Bin 0 -> 2655 bytes .../green/.svn/text-base/desc.png.svn-base | Bin 0 -> 2662 bytes .../green/.svn/text-base/green.zip.svn-base | Bin 0 -> 8464 bytes .../green/.svn/text-base/style.css.svn-base | 39 ++++ src/view/lib/tablesorter/themes/green/asc.png | Bin 0 -> 2665 bytes src/view/lib/tablesorter/themes/green/bg.png | Bin 0 -> 2655 bytes .../lib/tablesorter/themes/green/desc.png | Bin 0 -> 2662 bytes .../lib/tablesorter/themes/green/green.zip | Bin 0 -> 8464 bytes .../lib/tablesorter/themes/green/style.css | 39 ++++ src/view/splash.php | 2 + 49 files changed, 1176 insertions(+), 16 deletions(-) create mode 100644 src/browse.php create mode 100644 src/config.php create mode 100644 src/config.php.dist create mode 100644 src/index.php create mode 100644 src/upload.php create mode 100644 src/view.php create mode 100644 src/view/browse.php create mode 100644 src/view/footer.php create mode 100644 src/view/header.php create mode 100644 src/view/lib/tablesorter/jquery.tablesorter.min.js create mode 100644 src/view/lib/tablesorter/themes/.svn/all-wcprops create mode 100644 src/view/lib/tablesorter/themes/.svn/entries create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/all-wcprops create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/entries create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/prop-base/asc.gif.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/prop-base/bg.gif.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/prop-base/blue.zip.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/prop-base/desc.gif.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/prop-base/style.css.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/text-base/asc.gif.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/text-base/bg.gif.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/text-base/blue.zip.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/text-base/desc.gif.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/.svn/text-base/style.css.svn-base create mode 100644 src/view/lib/tablesorter/themes/blue/asc.gif create mode 100644 src/view/lib/tablesorter/themes/blue/bg.gif create mode 100644 src/view/lib/tablesorter/themes/blue/blue.zip create mode 100644 src/view/lib/tablesorter/themes/blue/desc.gif create mode 100644 src/view/lib/tablesorter/themes/blue/style.css create mode 100644 src/view/lib/tablesorter/themes/green/.svn/all-wcprops create mode 100644 src/view/lib/tablesorter/themes/green/.svn/entries create mode 100644 src/view/lib/tablesorter/themes/green/.svn/prop-base/asc.png.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/prop-base/bg.png.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/prop-base/desc.png.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/prop-base/green.zip.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/prop-base/style.css.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/text-base/asc.png.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/text-base/bg.png.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/text-base/desc.png.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/text-base/green.zip.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/.svn/text-base/style.css.svn-base create mode 100644 src/view/lib/tablesorter/themes/green/asc.png create mode 100644 src/view/lib/tablesorter/themes/green/bg.png create mode 100644 src/view/lib/tablesorter/themes/green/desc.png create mode 100644 src/view/lib/tablesorter/themes/green/green.zip create mode 100644 src/view/lib/tablesorter/themes/green/style.css create mode 100644 src/view/splash.php diff --git a/src/browse.php b/src/browse.php new file mode 100644 index 0000000..b93c09a --- /dev/null +++ b/src/browse.php @@ -0,0 +1,24 @@ +
+browse($page); +//$results = browseAll(); +//$numResults = count($results); + +//echo '
'; var_export($results); echo '
'; + +echo '
' . $numResults . ' results.
'; +echo ''; +echo ''; +for ($c = 0; $c < $numResults; $c++) +{ + echo ''; +} +echo '
IDCylindersLitersCompressionTurboFirmware/VersionUpload DateViews
' . $results[$c]['mid'] . '' . $results[$c]['numCylinders'] . '' . $results[$c]['displacement'] . '' . $results[$c]['compression'] . ':1' . $results[$c]['induction'] . '' . $results[$c]['firmware'] . '/' . $results[$c]['signature'] . '' . $results[$c]['uploadDate'] . '
'; +?> +
diff --git a/src/config.php b/src/config.php new file mode 100644 index 0000000..5cf8225 --- /dev/null +++ b/src/config.php @@ -0,0 +1,18 @@ + diff --git a/src/config.php.dist b/src/config.php.dist new file mode 100644 index 0000000..3fa5422 --- /dev/null +++ b/src/config.php.dist @@ -0,0 +1,19 @@ + diff --git a/src/index.php b/src/index.php new file mode 100644 index 0000000..9a2d717 --- /dev/null +++ b/src/index.php @@ -0,0 +1,12 @@ +splash(); + +//browse +//list msqs = browse()//browse(START_NUMBER) +//have to check with angular how data pagination/ordering can work best + +//search +?> diff --git a/src/ini.php b/src/ini.php index 2f32cbb..2b4473f 100644 --- a/src/ini.php +++ b/src/ini.php @@ -1,20 +1,151 @@ $msVersion/$fwVersion"; + + //Parse msVersion + switch ($msVersion) + { + case "MS1": + $msDir = "ms1/"; + break; + case "MSII": + $msDir = "ms2/"; + break; + case "MS2Extra": + $msDir = "ms2extra/"; + break; + case "MS3": + $msDir = "ms3/"; + break; + } + + //Setup firmware version for matching. + //(explode() already trimmed the string of spaces) -- this isn't true a couple inis + //If there's a decimal, remove any trailing zeros. + if (strrpos($fwVersion, '.') !== FALSE) + $fwVersion = rtrim($fwVersion, '0'); + + //store all our hardwork for use in the calling function + $signature = array($msVersion, $fwVersion); + + $iniFile = "ini/" . $msDir . $fwVersion . ".ini"; + $msqMap = parse($iniFile, TRUE); + + return $msqMap; } + /** + * @brief Parse a MS INI file into sections. + * + * Based on code from: goulven.ch@gmail.com (php.net comments) http://php.net/manual/en/function.parse-ini-file.php#78815 + * + * @param $file The path to the INI file that will be loaded and parsed. + * @param $something Unused + * @returns A huge array of arrays, starting with sections. + */ + public static function parse($file, $something) + { + if (DEBUG) echo "
Attempting to open: $file
"; + try + { + $ini = file($file, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); + } + catch (Exception $e) + { + echo "
Could not open: $file
"; + return null; + } + + if ($ini == FALSE || count($ini) == 0) return null; + else if (DEBUG) echo "
File opened.
"; + + $globals = array(); + $sections = array(); + $currentSection = NULL; + $values = array(); + $i = 0; + + foreach ($ini as $line) + { + $line = trim($line); + if ($line == '' || $line[0] == ';') continue; + if ($line[0] == '#') + {//TODO Parse directives, each needs to be a checkbox (combobox?) on the FE + continue; + } + + if ($line[0] == '[') + { + $sections[] = $currentSection = substr($line, 1, -1); //TODO until before ] not end of line + $i++; + continue; + } + + //We don't handle formulas yet + if (strpos($line, '{') !== FALSE) continue; + + // Key-value pair + list($key, $value) = explode('=', $line, 2); + $key = trim($key); + + //Remove any line end comment + $hasComment = strpos($value, ';'); + if ($hasComment !== FALSE) + $value = substr($value, 0, $hasComment); + + $value = trim($value); + if ($i == 0) + {// Global values (see section version for comments) + if (strpos($value, ',') !== FALSE) + $globals[$key] = array_map('trim', explode(',', $value)); + else $globals[$key] = $value; + } + else + {// Section array values + if (strpos($value, ',') !== FALSE) + { + //Use trim() as a callback on elements returned from explode() + $values[$i - 1][$key] = array_map('trim', explode(',', $value)); + } + else $values[$i - 1][$key] = $value; + } + } + + for ($j = 0; $j < $i; $j++) + { + $result[$sections[$j]] = $values[$j]; + } + return $result + $globals; + } } - -/* - -*/ ?> diff --git a/src/msqur.php b/src/msqur.php index 4cc4df4..036c666 100644 --- a/src/msqur.php +++ b/src/msqur.php @@ -1,4 +1,10 @@ $v) + { + //TODO Group name as fieldset legend or sth + $html .= "
"; + $html .= $v; + $html .= '
'; + } + + updateCache($id, $html); + } + + echo $html; + } } -/* -Msqur msqur = new msqur(); -Msq msq = msqur.upload("blah"); +$msqur = new Msqur(); -//browse -list msqs = browse()/browse(START_NUMBER) //have to check with angular how data pagination/ordering can work best - -//search -*/ ?> diff --git a/src/upload.php b/src/upload.php new file mode 100644 index 0000000..6bbe11e --- /dev/null +++ b/src/upload.php @@ -0,0 +1,99 @@ + $file) + { + //Discard any with errors + if ($file['error'] != UPLOAD_ERR_OK) + { + unset($files[$index]); + continue; + } + + //Check sizes against 1MiB + if ($file['size'] > 1048576) + { + unset($files[$index]); + continue; + } + + //Get and check mime types (ignoring provided ones) + $finfo = new finfo(FILEINFO_MIME_TYPE); + if ($finfo->file($file['tmp_name']) != "application/xml") + { + unset($files[$index]); + continue; + } + } + + return $files; +} + +if (isset($_POST['upload']) && isset($_FILES)) +{ + //var_dump($_POST); + //var_dump($_FILES); + + $files = checkUploads(fixFileArray($_FILES['files'])); + if (count($files) == 0) + { + //No files made it past the check + echo '
Your file(s) have asploded.
'; + } + else + { + if (count($files) == 1) + echo '
' . count($files) . ' file was uploaded.
'; + else + echo '
' . count($files) . ' files were uploaded.
'; + //$motor = $validate($_POST['cylinders']) + $engineid = $msqur->addEngine($_POST['displacement'], $_POST['compression'], $_POST['aspiration']); + $fileList = $msqur->addFiles($files, $engineid); + + if ($fileList != null) + { + echo '
Upload successful.
'; + echo '
    '; + foreach ($fileList as $f) + { + echo '
  • ' . $f . '
  • '; + } + echo '
'; + } + else + { + echo '
Unable to store uploaded file.
'; + } + } +} +else include "index.php"; +?> diff --git a/src/view.php b/src/view.php new file mode 100644 index 0000000..9aa1f19 --- /dev/null +++ b/src/view.php @@ -0,0 +1,9 @@ +view($_GET['msq']); +} +else include "index.php"; + +?> diff --git a/src/view/browse.php b/src/view/browse.php new file mode 100644 index 0000000..bef6d50 --- /dev/null +++ b/src/view/browse.php @@ -0,0 +1,18 @@ +
+
+
+ Engine Filter +
Cylinders:
+
Displacement (liters): +/- 0%
+
Compression (X:1) +/- 0%
+
Aspiration: + +
+
Firmware: X
+
+
+
+
diff --git a/src/view/footer.php b/src/view/footer.php new file mode 100644 index 0000000..41662af --- /dev/null +++ b/src/view/footer.php @@ -0,0 +1,20 @@ + + + + + + diff --git a/src/view/header.php b/src/view/header.php new file mode 100644 index 0000000..e814217 --- /dev/null +++ b/src/view/header.php @@ -0,0 +1,47 @@ + + + + MSQur + + + + + + + + + + + + +
+ + +
diff --git a/src/view/lib/tablesorter/jquery.tablesorter.min.js b/src/view/lib/tablesorter/jquery.tablesorter.min.js new file mode 100644 index 0000000..b8605df --- /dev/null +++ b/src/view/lib/tablesorter/jquery.tablesorter.min.js @@ -0,0 +1,4 @@ + +(function($){$.extend({tablesorter:new +function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead th',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return arr;};function checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return true;};return false;}function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}function checkHeaderOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return table.config.headers[i].lockedOrder;return false;}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i');$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($('').css('width',$(this).width()));});$(table).prepend(colgroup);};}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i b["+i+"]) ? 1 : 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));";};function makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return((ab)?1:0));};function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return((ba)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;if+n zkN^MoKk^rIV`Fn;lVww2IB8(;@!JXg2X%%2uD$uveN$@}&ozbs6qE0z8a%fLn&<$; zY(Sipj%@IQ6r2Wke*a=V=h>dAA%aO)wtka~-VvL1==;2L0c>p9XjW`{V8{V;JO|K< zlvEO2|HXJ-%*w>zTBx11xRraanQh*Mhe-M*Ojv+nQD zvrARsS}bKYx4(Y(65GYp?fHJ*&qGXq0+e7LLJ zo~5d?_{N>h^GaJi-dbtB4_qmx|FE0yg14wzWWdb@j3?D9=Y4-!;^ehq*5>0c9xqy@ zVwRg#zavq(#Nl>Tar6rp=hE_73&Q<4ADv0MK5w0@nL~r(^q`v_&mFIS^xOH>*W{_d zqZ)_k#!m-4+ch+6k{mHcF z{+)sai!^t;tapume2(w2=U4p$_vRO#@bW+79qF;NXO4Y1MZ{<40Rw-0F&^9 ziLMDfl|fX4G(`b1B+a4gK~FXaJ$r#nSRz8!g)K#ZbTNXRCjm?+@bnSj%?e8G3@ku+ K4M=w~fp`FM94`t0 literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/blue/.svn/text-base/desc.gif.svn-base b/src/view/lib/tablesorter/themes/blue/.svn/text-base/desc.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..3b30b3c58eabdb47a1c420ad03c8e30b966cc858 GIT binary patch literal 54 zcmZ?wbhEHb6lGvxXkcJa);0M5|G(l-7DfgJMg|=QAOOiQF!A>EGoD<#VNP?1QCB1* GgEatI(+xQQ literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/blue/.svn/text-base/style.css.svn-base b/src/view/lib/tablesorter/themes/blue/.svn/text-base/style.css.svn-base new file mode 100644 index 0000000..eb41f70 --- /dev/null +++ b/src/view/lib/tablesorter/themes/blue/.svn/text-base/style.css.svn-base @@ -0,0 +1,39 @@ +/* tables */ +table.tablesorter { + font-family:arial; + background-color: #CDCDCD; + margin:10px 0pt 15px; + font-size: 8pt; + width: 100%; + text-align: left; +} +table.tablesorter thead tr th, table.tablesorter tfoot tr th { + background-color: #e6EEEE; + border: 1px solid #FFF; + font-size: 8pt; + padding: 4px; +} +table.tablesorter thead tr .header { + background-image: url(bg.gif); + background-repeat: no-repeat; + background-position: center right; + cursor: pointer; +} +table.tablesorter tbody td { + color: #3D3D3D; + padding: 4px; + background-color: #FFF; + vertical-align: top; +} +table.tablesorter tbody tr.odd td { + background-color:#F0F0F6; +} +table.tablesorter thead tr .headerSortUp { + background-image: url(asc.gif); +} +table.tablesorter thead tr .headerSortDown { + background-image: url(desc.gif); +} +table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp { +background-color: #8dbdd8; +} diff --git a/src/view/lib/tablesorter/themes/blue/asc.gif b/src/view/lib/tablesorter/themes/blue/asc.gif new file mode 100644 index 0000000000000000000000000000000000000000..74157867f25acbc146704d43399d6c3605ba7724 GIT binary patch literal 54 zcmZ?wbhEHb6lGvxXkcJa);0M5|G(l-7DfgJMg|=QAOOiQF!A=tFW`Q0{?_dDi`go= G4AuZ#-wosd literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/blue/bg.gif b/src/view/lib/tablesorter/themes/blue/bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..fac668fcf42af844a3af0a239fa638ddbc08443c GIT binary patch literal 64 zcmZ?wbhEHb6lLIKXkcJa);0M5|G(l-7DfgJMg|=QAOOiQFp2l{H=O3Yl~fU8)V1~= QTew|n!uOuePzDBT00piR0RR91 literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/blue/blue.zip b/src/view/lib/tablesorter/themes/blue/blue.zip new file mode 100644 index 0000000000000000000000000000000000000000..9945a92aa7db393ac3a25aa1e585300d9a65c651 GIT binary patch literal 885 zcmWIWW@Zs#U|`^2SX#|zZp7BzX$s_-0WmueCl)8`rDvuUe=pg*!AB%DAu%H%A>f+n zkN^MoKk^rIV`Fn;lVww2IB8(;@!JXg2X%%2uD$uveN$@}&ozbs6qE0z8a%fLn&<$; zY(Sipj%@IQ6r2Wke*a=V=h>dAA%aO)wtka~-VvL1==;2L0c>p9XjW`{V8{V;JO|K< zlvEO2|HXJ-%*w>zTBx11xRraanQh*Mhe-M*Ojv+nQD zvrARsS}bKYx4(Y(65GYp?fHJ*&qGXq0+e7LLJ zo~5d?_{N>h^GaJi-dbtB4_qmx|FE0yg14wzWWdb@j3?D9=Y4-!;^ehq*5>0c9xqy@ zVwRg#zavq(#Nl>Tar6rp=hE_73&Q<4ADv0MK5w0@nL~r(^q`v_&mFIS^xOH>*W{_d zqZ)_k#!m-4+ch+6k{mHcF z{+)sai!^t;tapume2(w2=U4p$_vRO#@bW+79qF;NXO4Y1MZ{<40Rw-0F&^9 ziLMDfl|fX4G(`b1B+a4gK~FXaJ$r#nSRz8!g)K#ZbTNXRCjm?+@bnSj%?e8G3@ku+ K4M=w~fp`FM94`t0 literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/blue/desc.gif b/src/view/lib/tablesorter/themes/blue/desc.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b30b3c58eabdb47a1c420ad03c8e30b966cc858 GIT binary patch literal 54 zcmZ?wbhEHb6lGvxXkcJa);0M5|G(l-7DfgJMg|=QAOOiQF!A>EGoD<#VNP?1QCB1* GgEatI(+xQQ literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/blue/style.css b/src/view/lib/tablesorter/themes/blue/style.css new file mode 100644 index 0000000..eb41f70 --- /dev/null +++ b/src/view/lib/tablesorter/themes/blue/style.css @@ -0,0 +1,39 @@ +/* tables */ +table.tablesorter { + font-family:arial; + background-color: #CDCDCD; + margin:10px 0pt 15px; + font-size: 8pt; + width: 100%; + text-align: left; +} +table.tablesorter thead tr th, table.tablesorter tfoot tr th { + background-color: #e6EEEE; + border: 1px solid #FFF; + font-size: 8pt; + padding: 4px; +} +table.tablesorter thead tr .header { + background-image: url(bg.gif); + background-repeat: no-repeat; + background-position: center right; + cursor: pointer; +} +table.tablesorter tbody td { + color: #3D3D3D; + padding: 4px; + background-color: #FFF; + vertical-align: top; +} +table.tablesorter tbody tr.odd td { + background-color:#F0F0F6; +} +table.tablesorter thead tr .headerSortUp { + background-image: url(asc.gif); +} +table.tablesorter thead tr .headerSortDown { + background-image: url(desc.gif); +} +table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp { +background-color: #8dbdd8; +} diff --git a/src/view/lib/tablesorter/themes/green/.svn/all-wcprops b/src/view/lib/tablesorter/themes/green/.svn/all-wcprops new file mode 100644 index 0000000..456a164 --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/all-wcprops @@ -0,0 +1,35 @@ +K 25 +svn:wc:ra_dav:version-url +V 34 +/svn/!svn/ver/3/trunk/themes/green +END +bg.png +K 25 +svn:wc:ra_dav:version-url +V 41 +/svn/!svn/ver/3/trunk/themes/green/bg.png +END +green.zip +K 25 +svn:wc:ra_dav:version-url +V 44 +/svn/!svn/ver/3/trunk/themes/green/green.zip +END +style.css +K 25 +svn:wc:ra_dav:version-url +V 44 +/svn/!svn/ver/3/trunk/themes/green/style.css +END +desc.png +K 25 +svn:wc:ra_dav:version-url +V 43 +/svn/!svn/ver/3/trunk/themes/green/desc.png +END +asc.png +K 25 +svn:wc:ra_dav:version-url +V 42 +/svn/!svn/ver/3/trunk/themes/green/asc.png +END diff --git a/src/view/lib/tablesorter/themes/green/.svn/entries b/src/view/lib/tablesorter/themes/green/.svn/entries new file mode 100644 index 0000000..79b2d5c --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/entries @@ -0,0 +1,198 @@ +10 + +dir +5 +https://tablesorter.googlecode.com/svn/trunk/themes/green +https://tablesorter.googlecode.com/svn + + + +2009-10-02T08:54:38.707056Z +3 +christian.bach + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +dbe5111a-81cf-11de-b558-27974e103503 + +asc.png +file + + + + +2010-10-15T09:18:19.000000Z +47d431b1524d523eae100b66b09babdc +2009-10-02T08:54:38.707056Z +3 +christian.bach +has-props + + + + + + + + + + + + + + + + + + + + +2665 + +bg.png +file + + + + +2010-10-15T09:18:19.000000Z +7b0a5fe32e94b1595e48810a3df45648 +2009-10-02T08:54:38.707056Z +3 +christian.bach +has-props + + + + + + + + + + + + + + + + + + + + +2655 + +desc.png +file + + + + +2010-10-15T09:18:19.000000Z +0f7f4fd46fe145ed6ed4c81c3b26a93f +2009-10-02T08:54:38.707056Z +3 +christian.bach +has-props + + + + + + + + + + + + + + + + + + + + +2662 + +green.zip +file + + + + +2010-10-15T09:18:19.000000Z +9c8b5235a0a9864b292b97e783541c08 +2009-10-02T08:54:38.707056Z +3 +christian.bach +has-props + + + + + + + + + + + + + + + + + + + + +8464 + +style.css +file + + + + +2010-10-15T09:18:19.000000Z +8c047013d96b74708da195dac43980b7 +2009-10-02T08:54:38.707056Z +3 +christian.bach +has-props + + + + + + + + + + + + + + + + + + + + +801 + diff --git a/src/view/lib/tablesorter/themes/green/.svn/prop-base/asc.png.svn-base b/src/view/lib/tablesorter/themes/green/.svn/prop-base/asc.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/prop-base/asc.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/src/view/lib/tablesorter/themes/green/.svn/prop-base/bg.png.svn-base b/src/view/lib/tablesorter/themes/green/.svn/prop-base/bg.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/prop-base/bg.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/src/view/lib/tablesorter/themes/green/.svn/prop-base/desc.png.svn-base b/src/view/lib/tablesorter/themes/green/.svn/prop-base/desc.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/prop-base/desc.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/src/view/lib/tablesorter/themes/green/.svn/prop-base/green.zip.svn-base b/src/view/lib/tablesorter/themes/green/.svn/prop-base/green.zip.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/prop-base/green.zip.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/src/view/lib/tablesorter/themes/green/.svn/prop-base/style.css.svn-base b/src/view/lib/tablesorter/themes/green/.svn/prop-base/style.css.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/prop-base/style.css.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/src/view/lib/tablesorter/themes/green/.svn/text-base/asc.png.svn-base b/src/view/lib/tablesorter/themes/green/.svn/text-base/asc.png.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..66e39cad0118035e24e5ccb2cc9795ac936746d3 GIT binary patch literal 2665 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 Cpy)LK literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/green/.svn/text-base/green.zip.svn-base b/src/view/lib/tablesorter/themes/green/.svn/text-base/green.zip.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..6a14d240a1af85a6b11d71a6a59257a39f04a776 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/green/.svn/text-base/style.css.svn-base b/src/view/lib/tablesorter/themes/green/.svn/text-base/style.css.svn-base new file mode 100644 index 0000000..4a54589 --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/.svn/text-base/style.css.svn-base @@ -0,0 +1,39 @@ +table.tablesorter { + font-size: 12px; + background-color: #4D4D4D; + width: 1024px; + border: 1px solid #000; +} +table.tablesorter th { + text-align: left; + padding: 5px; + background-color: #6E6E6E; +} +table.tablesorter td { + color: #FFF; + padding: 5px; +} +table.tablesorter .even { + background-color: #3D3D3D; +} +table.tablesorter .odd { + background-color: #6E6E6E; +} +table.tablesorter .header { + background-image: url(bg.png); + background-repeat: no-repeat; + border-left: 1px solid #FFF; + border-right: 1px solid #000; + border-top: 1px solid #FFF; + padding-left: 30px; + padding-top: 8px; + height: auto; +} +table.tablesorter .headerSortUp { + background-image: url(asc.png); + background-repeat: no-repeat; +} +table.tablesorter .headerSortDown { + background-image: url(desc.png); + background-repeat: no-repeat; +} \ No newline at end of file diff --git a/src/view/lib/tablesorter/themes/green/asc.png b/src/view/lib/tablesorter/themes/green/asc.png new file mode 100644 index 0000000000000000000000000000000000000000..66e39cad0118035e24e5ccb2cc9795ac936746d3 GIT binary patch literal 2665 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 Cpy)LK literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/green/green.zip b/src/view/lib/tablesorter/themes/green/green.zip new file mode 100644 index 0000000000000000000000000000000000000000..6a14d240a1af85a6b11d71a6a59257a39f04a776 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/src/view/lib/tablesorter/themes/green/style.css b/src/view/lib/tablesorter/themes/green/style.css new file mode 100644 index 0000000..4a54589 --- /dev/null +++ b/src/view/lib/tablesorter/themes/green/style.css @@ -0,0 +1,39 @@ +table.tablesorter { + font-size: 12px; + background-color: #4D4D4D; + width: 1024px; + border: 1px solid #000; +} +table.tablesorter th { + text-align: left; + padding: 5px; + background-color: #6E6E6E; +} +table.tablesorter td { + color: #FFF; + padding: 5px; +} +table.tablesorter .even { + background-color: #3D3D3D; +} +table.tablesorter .odd { + background-color: #6E6E6E; +} +table.tablesorter .header { + background-image: url(bg.png); + background-repeat: no-repeat; + border-left: 1px solid #FFF; + border-right: 1px solid #000; + border-top: 1px solid #FFF; + padding-left: 30px; + padding-top: 8px; + height: auto; +} +table.tablesorter .headerSortUp { + background-image: url(asc.png); + background-repeat: no-repeat; +} +table.tablesorter .headerSortDown { + background-image: url(desc.png); + background-repeat: no-repeat; +} \ No newline at end of file diff --git a/src/view/splash.php b/src/view/splash.php new file mode 100644 index 0000000..82a324f --- /dev/null +++ b/src/view/splash.php @@ -0,0 +1,2 @@ +
Upload your .msq files to view and share them.
+
This website is in beta. It only officially supports TunerStudio tune files, and currently is known working with MS2 and MS2-Extra firmware.