diff --git a/.gitignore b/.gitignore index a2fdf2444..599468937 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ .htaccess /nbproject/ /vendor/* -!/vendor/easyui +!/vendor/FHC-vendor /.idea/ documents/ .settings diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 3a19c6618..24c9c0f0f 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -99,6 +99,8 @@ if(isset($_GET['uid'])) else $getParam = ""; } +else + $getParam=''; $datum_obj = new datum(); diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js index d1047ee9c..55fb18bab 100644 --- a/cis/private/lehre/pruefung/pruefung.js +++ b/cis/private/lehre/pruefung/pruefung.js @@ -483,7 +483,10 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id) if(bemerkungen === undefined) bemerkungen = "von Lektor hinzugefügt"; - var studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); + var studienverpflichtung_id = null; + if($("#studienverpflichtung").length) + studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); + console.log(studienverpflichtung_id); $.ajax({ diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 5e5e5e3d2..89b72e837 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -537,45 +537,58 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } if($prestudent_id != "") { - - $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; - $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; - $anrechnung->prestudent_id = $prestudent_id; - $anrechnung->begruendung_id = "2"; - $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; - $anrechnung->new = true; - if($anrechnung->save()) + $anrechungSaveResult = false; + if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + { + $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; + $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; + $anrechnung->prestudent_id = $prestudent_id; + $anrechnung->begruendung_id = "2"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; + $anrechnung->new = true; + $anrechungSaveResult = $anrechnung->save(); + } + else + { + $anrechungSaveResult = true; + } + + if($anrechungSaveResult) { - $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - if($anmeldung->save(true)) - { - $pruefung = new pruefungCis($termin->pruefung_id); - if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) - $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; - else - $to = $pruefung->mitarbeiter_uid."@".DOMAIN; - $from = "noreply@".DOMAIN; - $subject = "Anmeldung zur Prüfung"; - $mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen."); + if($anrechnung->anrechnung_id == "") + $anmeldung->anrechnung_id = null; + else + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; + + if($anmeldung->save(true)) + { + $pruefung = new pruefungCis($termin->pruefung_id); + if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) + $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; + else + $to = $pruefung->mitarbeiter_uid."@".DOMAIN; + $from = "noreply@".DOMAIN; + $subject = "Anmeldung zur Prüfung"; + $mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen."); - $student = new student($uid); - $datum = new datum(); + $student = new student($uid); + $datum = new datum(); - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet."; - $mail->setHTMLContent($html); - $mail->send(); + $html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet."; + $mail->setHTMLContent($html); + $mail->send(); - $data['result'] = "Anmeldung erfolgreich!"; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } + $data['result'] = "Anmeldung erfolgreich!"; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } } else { diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php index 250b38fed..505da7708 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -285,12 +285,14 @@ $studiensemester->getAll(); - + + Studienverpflichtung:* + Bemerkung: diff --git a/cis/private/profile/urlaubsfreigabe.php b/cis/private/profile/urlaubsfreigabe.php index 19ab27115..e40506d1f 100755 --- a/cis/private/profile/urlaubsfreigabe.php +++ b/cis/private/profile/urlaubsfreigabe.php @@ -228,7 +228,9 @@ if($uid!='') echo "Alle Mitarbeiter anzeigen
"; echo ''; echo ''; - + //echo '
'; + //echo ''; + //Anzeige Resturlaubsberechnung $resturlaub = new resturlaub(); @@ -305,6 +307,7 @@ if($uid!='') echo ''; echo ''; + } echo '
'; diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 680a79ac7..756cb2f40 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -40,6 +40,7 @@ require_once('../../../include/betriebsmittelperson.class.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/bisverwendung.class.php'); require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); $sprache = getSprache(); $p=new phrasen($sprache); @@ -48,10 +49,22 @@ if (!$db = new basis_db()) die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); $user = get_uid(); -if ($user == 'raab' && isset($_GET["debuguser"])) - $user = $_GET["debuguser"]; - +//Wenn User Administrator ist und UID uebergeben wurde, dann die Zeiaufzeichnung +//des uebergebenen Users anzeigen +if(isset($_GET['uid'])) +{ + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($user); + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) + { + $user = $_GET['uid']; + } + else + { + die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); + } +} $datum = new datum(); @@ -882,7 +895,13 @@ if($projekt->getProjekteMitarbeiter($user, true)) $l_arr = $lehre->getLehreForUser($user, $sem_akt); if ($l_arr["LehreAuftraege"]>0 || $l_arr["LehreIntern"] > 0 || $l_arr["LehreExtern"] > 0) { - $l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert; + if ($lehre_inkludiert == -1) + { + $l_extern_soll = 0; + $lehre_inkludiert = $l_arr["LehreAuftraege"]; + } + else + $l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert; $l_extern_soll_norm = $l_extern_soll/4*3; $lehre_inkludiert_norm = $lehre_inkludiert/4*3; echo ''; diff --git a/cis/testtool/admin/edit_gebiet.php b/cis/testtool/admin/edit_gebiet.php index 13bd8403d..a58b5d117 100644 --- a/cis/testtool/admin/edit_gebiet.php +++ b/cis/testtool/admin/edit_gebiet.php @@ -15,7 +15,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Christian Paminger , + * Authors: Christian Paminger , * Andreas Oesterreicher , * Rudolf Hangl and * Gerald Simane-Sequens @@ -28,11 +28,11 @@ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/gebiet.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/studiengang.class.php'); if (!$user=get_uid()) die('Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden ! Zurück'); - $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -42,18 +42,41 @@ echo ' + + + +
'; if(isset($_GET['gebiet_id'])) $gebiet_id=$_GET['gebiet_id']; -else +else $gebiet_id=''; - + $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); - echo '

 Gebiet bearbeiten

'; if(!$rechte->isBerechtigt('basis/testtool')) @@ -72,13 +95,13 @@ foreach ($gebiet->result as $row) { if($gebiet_id=='') $gebiet_id=$row->gebiet_id; - + if($gebiet_id==$row->gebiet_id) $selected='selected'; - else + else $selected=''; - - echo ''; + + echo ''; } echo ' @@ -86,12 +109,53 @@ echo ' echo '

'; +// Ablaufzuordnung entfernen +if(isset($_POST['action']) && $_POST['action']=='deleteZuordnung') +{ + if(!isset($_POST['ablauf_id']) || !is_numeric($_POST['ablauf_id'])) + die('ungueltige Parameteruebergabe'); + + $ablauf_id = $_POST['ablauf_id']; + + $ablauf = new gebiet(); + if($ablauf->deleteAblaufZuordnung($ablauf_id)) + echo 'Ablauf wurde entfernt'; + else + echo 'Fehler beim Entfernen:'.$ablauf->errormsg.''; + +} +// Ablaufzuordnung hinzufügen +if(isset($_POST['action']) && $_POST['action']=='saveAblauf') +{ + $ablauf_vorgaben_id = $_POST['ablauf_vorgaben_id']; + $studiengang_kz = $_POST['studiengang_kz']; + $reihung = $_POST['reihung']; + $gewicht = $_POST['gewicht']; + $semester = $_POST['semester']; + + $ablauf = new gebiet(); + + $ablauf->ablauf_vorgaben_id = $ablauf_vorgaben_id; + $ablauf->studiengang_kz = $studiengang_kz; + $ablauf->reihung = $reihung; + $ablauf->gewicht = $gewicht; + $ablauf->semester = $semester; + $ablauf->new = true; + $ablauf->gebiet_id = $gebiet_id; + + if($ablauf->saveAblauf()) + echo 'Ablauf gespeichert'; + else + echo 'Fehler beim Speichern:'.$ablauf->errormsg.''; + +} + //Speichern der Daten if(isset($_POST['speichern'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); - + $gebiet = new gebiet(); if($gebiet->load($gebiet_id)) { @@ -112,17 +176,17 @@ if(isset($_POST['speichern'])) $gebiet->updateamum = date('Y-m-d H:i:s'); $gebiet->updatevon = $user; $gebiet->antwortenprozeile = $_POST['antwortenprozeile']; - + if($gebiet->save(false)) { echo 'Daten erfolgreich gespeichert'; } - else + else { echo 'Fehler beim Speichern: '.$gebiet->errormsg.''; } } - else + else { echo 'Fehler beim Laden des Gebiets'; } @@ -135,7 +199,7 @@ if($gebiet_id!='') echo "
"; echo '
'; echo '
'; - + echo ''; //ID echo ''; @@ -166,7 +230,7 @@ if($gebiet_id!='') $maximalpunkte = $gebiet->berechneMaximalpunkte($gebiet_id); if($gebiet->maxpunkte!=$maximalpunkte) $hinweis = 'empfohlene Maximalpunkteanzahl: '.$maximalpunkte.''; - else + else $hinweis =''; echo ''; echo ''; @@ -182,9 +246,74 @@ if($gebiet_id!='') echo ''; echo ''; echo '
ID'.$gebiet_id.'Maximale Punkteanzahl'.$hinweis.'
'; - + + echo ''; + + echo '
+

Zuordnung

'; + + $gebiet = new gebiet(); + $gebiet->loadAblaufGebiet($gebiet_id); + + $studiengang = new studiengang(); + $studiengang->getAll('typ, kurzbz',false); + + echo '
'; + echo ' + + + + + + + + + + + '; + foreach($gebiet->result as $row) + { + echo ' + + + + + + + '; + } + echo ''; + echo ' + + + + + + + + '; + echo '
StudiengangReihungGewichtSemesterVorgabenAktion
'.$studiengang->kuerzel_arr[$row->studiengang_kz].''.$row->reihung.''.$row->gewicht.''.$row->semester.''.$row->ablauf_vorgaben_id.'
+ + + +
'; echo '
'; } echo ''; -?> \ No newline at end of file +?> diff --git a/cis/testtool/admin/index.php b/cis/testtool/admin/index.php index d8f02f142..c1c3265b9 100644 --- a/cis/testtool/admin/index.php +++ b/cis/testtool/admin/index.php @@ -31,7 +31,7 @@ require_once('../../../include/frage.class.php'); require_once('../../../include/vorschlag.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/studiengang.class.php'); - + if (!$db = new basis_db()) { die('Fehler beim Oeffnen der Datenbankverbindung'); @@ -52,7 +52,7 @@ if(!$rechte->isBerechtigt('basis/testtool', null, 's')) $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); - + if(isset($_GET['gebiet_id'])) { $gebiet_id = $_GET['gebiet_id']; @@ -112,7 +112,7 @@ function previewvorschlag() { document.getElementById('vorschauvorschlag').innerHTML = document.getElementById('text_vorschlag').value; } -function insertfrage(aTag, eTag) +function insertfrage(aTag, eTag) { var input = document.forms['formular_frage'].elements['text']; input.focus(); @@ -131,7 +131,7 @@ function insertfrage(aTag, eTag) input.selectionStart = pos; input.selectionEnd = pos; } -function insertvorschlag(aTag, eTag) +function insertvorschlag(aTag, eTag) { var input = document.forms['formular_vorschlag'].elements['text_vorschlag']; input.focus(); @@ -150,6 +150,11 @@ function insertvorschlag(aTag, eTag) input.selectionStart = pos; input.selectionEnd = pos; } + +function confirmDeleteFrage() +{ + return confirm('Wollen Sie diese Frage wirklich löschen?'); +} - + + + + + + Basic Form - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Basic Form
+
+ Reset +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/images/login1.jpg b/vendor/FHC-vendor/easyui/demo-mobile/images/login1.jpg old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/images/login1.jpg rename to vendor/FHC-vendor/easyui/demo-mobile/images/login1.jpg diff --git a/vendor/easyui/demo-mobile/images/modem.png b/vendor/FHC-vendor/easyui/demo-mobile/images/modem.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/images/modem.png rename to vendor/FHC-vendor/easyui/demo-mobile/images/modem.png diff --git a/vendor/easyui/demo-mobile/images/more.png b/vendor/FHC-vendor/easyui/demo-mobile/images/more.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/images/more.png rename to vendor/FHC-vendor/easyui/demo-mobile/images/more.png diff --git a/vendor/easyui/demo-mobile/images/pda.png b/vendor/FHC-vendor/easyui/demo-mobile/images/pda.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/images/pda.png rename to vendor/FHC-vendor/easyui/demo-mobile/images/pda.png diff --git a/vendor/easyui/demo-mobile/images/scanner.png b/vendor/FHC-vendor/easyui/demo-mobile/images/scanner.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/images/scanner.png rename to vendor/FHC-vendor/easyui/demo-mobile/images/scanner.png diff --git a/vendor/easyui/demo-mobile/images/tablet.png b/vendor/FHC-vendor/easyui/demo-mobile/images/tablet.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/images/tablet.png rename to vendor/FHC-vendor/easyui/demo-mobile/images/tablet.png diff --git a/vendor/easyui/demo-mobile/input/numberspinner.html b/vendor/FHC-vendor/easyui/demo-mobile/input/numberspinner.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/input/numberspinner.html rename to vendor/FHC-vendor/easyui/demo-mobile/input/numberspinner.html diff --git a/vendor/easyui/demo-mobile/input/textbox.html b/vendor/FHC-vendor/easyui/demo-mobile/input/textbox.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/input/textbox.html rename to vendor/FHC-vendor/easyui/demo-mobile/input/textbox.html diff --git a/vendor/easyui/demo-mobile/layout/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/layout/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/layout/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/layout/basic.html index c1ecaffb5..3f4c00d28 --- a/vendor/easyui/demo-mobile/layout/basic.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/layout/basic.html @@ -1,32 +1,32 @@ - - - - - - Basic Layout - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Layout
-
- Back -
-
- Search -
-
-
-
- -
-
- + + + + + + Basic Layout - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Layout
+
+ Back +
+
+ Search +
+
+
+
+ +
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/menu/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/menu/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/menu/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/menu/basic.html index fb9709615..1697edeb6 --- a/vendor/easyui/demo-mobile/menu/basic.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/menu/basic.html @@ -1,39 +1,39 @@ - - - - - - Basic Menu - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Menu
-
- - -
-
-
-
-
-
Undo
-
Redo
- -
Cut
-
Copy
-
Paste
- -
Toolbar
-
Delete
-
Select All
-
- + + + + + + Basic Menu - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Menu
+
+ + +
+
+
+
+
+
Undo
+
Redo
+ +
Cut
+
Copy
+
Paste
+ +
Toolbar
+
Delete
+
Select All
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/menu/menubar.html b/vendor/FHC-vendor/easyui/demo-mobile/menu/menubar.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/menu/menubar.html rename to vendor/FHC-vendor/easyui/demo-mobile/menu/menubar.html index 5ef8eef8f..488963ff8 --- a/vendor/easyui/demo-mobile/menu/menubar.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/menu/menubar.html @@ -1,45 +1,45 @@ - - - - - - Menubar - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
- Home - Edit - Help - About -
-
-
-
-
-
Undo
-
Redo
- -
Cut
-
Copy
-
Paste
- -
Toolbar
-
Delete
-
Select All
-
-
-
Help
-
Update
-
About
-
- + + + + + + Menubar - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
+ Home + Edit + Help + About +
+
+
+
+
+
Undo
+
Redo
+ +
Cut
+
Copy
+
Paste
+ +
Toolbar
+
Delete
+
Select All
+
+
+
Help
+
Update
+
About
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/accordion/_content.html b/vendor/FHC-vendor/easyui/demo-mobile/panel/_content.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/accordion/_content.html rename to vendor/FHC-vendor/easyui/demo-mobile/panel/_content.html index 996740274..f7b8e2ee7 --- a/vendor/easyui/demo-mobile/accordion/_content.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/panel/_content.html @@ -1,18 +1,18 @@ - - - - - AJAX Content - - -

Here is the content loaded via AJAX.

- - + + + + + AJAX Content + + +

Here is the content loaded via AJAX.

+ + \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/panel/ajax.html b/vendor/FHC-vendor/easyui/demo-mobile/panel/ajax.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/panel/ajax.html rename to vendor/FHC-vendor/easyui/demo-mobile/panel/ajax.html diff --git a/vendor/easyui/demo-mobile/panel/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/panel/basic.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/panel/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/panel/basic.html diff --git a/vendor/easyui/demo-mobile/panel/nav.html b/vendor/FHC-vendor/easyui/demo-mobile/panel/nav.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/panel/nav.html rename to vendor/FHC-vendor/easyui/demo-mobile/panel/nav.html index 0362890b0..52ee902e8 --- a/vendor/easyui/demo-mobile/panel/nav.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/panel/nav.html @@ -1,39 +1,39 @@ - - - - - - Navigation Panel - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Navigation
-
-
-
- Goto Panel2 -
-
-
-
-
-
Panel2
-
- Back -
-
-
-
- Go Back -
-
- + + + + + + Navigation Panel - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Navigation
+
+
+
+ Goto Panel2 +
+
+
+
+
+
Panel2
+
+ Back +
+
+
+
+ Go Back +
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/simplelist/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/simplelist/basic.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/simplelist/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/simplelist/basic.html diff --git a/vendor/easyui/demo-mobile/simplelist/button.html b/vendor/FHC-vendor/easyui/demo-mobile/simplelist/button.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/simplelist/button.html rename to vendor/FHC-vendor/easyui/demo-mobile/simplelist/button.html diff --git a/vendor/easyui/demo-mobile/simplelist/group.html b/vendor/FHC-vendor/easyui/demo-mobile/simplelist/group.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/simplelist/group.html rename to vendor/FHC-vendor/easyui/demo-mobile/simplelist/group.html diff --git a/vendor/easyui/demo-mobile/simplelist/image.html b/vendor/FHC-vendor/easyui/demo-mobile/simplelist/image.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/simplelist/image.html rename to vendor/FHC-vendor/easyui/demo-mobile/simplelist/image.html diff --git a/vendor/easyui/demo-mobile/simplelist/link.html b/vendor/FHC-vendor/easyui/demo-mobile/simplelist/link.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/simplelist/link.html rename to vendor/FHC-vendor/easyui/demo-mobile/simplelist/link.html diff --git a/vendor/easyui/demo-mobile/tabs/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/tabs/basic.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/tabs/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/tabs/basic.html diff --git a/vendor/easyui/demo-mobile/tabs/nav.html b/vendor/FHC-vendor/easyui/demo-mobile/tabs/nav.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/tabs/nav.html rename to vendor/FHC-vendor/easyui/demo-mobile/tabs/nav.html diff --git a/vendor/easyui/demo-mobile/tabs/pill.html b/vendor/FHC-vendor/easyui/demo-mobile/tabs/pill.html old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo-mobile/tabs/pill.html rename to vendor/FHC-vendor/easyui/demo-mobile/tabs/pill.html diff --git a/vendor/easyui/demo-mobile/toolbar/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/toolbar/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/toolbar/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/toolbar/basic.html index f8fc613bd..6497d6812 --- a/vendor/easyui/demo-mobile/toolbar/basic.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/toolbar/basic.html @@ -1,63 +1,63 @@ - - - - - - Basic Toolbar - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Basic Toolbar
-
- Back -
-
- Next -
-
-
- -
-
-
-
- Detail -
- Back -
-
-
-
- Go Back -
-
- + + + + + + Basic Toolbar - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Basic Toolbar
+
+ Back +
+
+ Next +
+
+
+ +
+
+
+
+ Detail +
+ Back +
+
+
+
+ Go Back +
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/toolbar/button.html b/vendor/FHC-vendor/easyui/demo-mobile/toolbar/button.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/toolbar/button.html rename to vendor/FHC-vendor/easyui/demo-mobile/toolbar/button.html index 3db342ad0..14366a6f0 --- a/vendor/easyui/demo-mobile/toolbar/button.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/toolbar/button.html @@ -1,45 +1,45 @@ - - - - - - Toolbar Button - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Toolbar Button
-
-
- - -
- + + + + + + Toolbar Button - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Toolbar Button
+
+
+ + +
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/toolbar/menu.html b/vendor/FHC-vendor/easyui/demo-mobile/toolbar/menu.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo-mobile/toolbar/menu.html rename to vendor/FHC-vendor/easyui/demo-mobile/toolbar/menu.html index f053bcc0d..5d9e03994 --- a/vendor/easyui/demo-mobile/toolbar/menu.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/toolbar/menu.html @@ -1,76 +1,76 @@ - - - - - - Menu on Toolbar - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Menu on Toolbar
-
- -
-
- - -
-
-
-
-
Undo
-
Redo
- -
Cut
-
Copy
-
Paste
- -
Toolbar
-
Delete
-
Select All
-
- -
-
-
-
- Detail -
- Back -
-
-
-
- Go Back -
-
- + + + + + + Menu on Toolbar - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Menu on Toolbar
+
+ +
+
+ + +
+
+
+
+
Undo
+
Redo
+ +
Cut
+
Copy
+
Paste
+ +
Toolbar
+
Delete
+
Select All
+
+ +
+
+
+
+ Detail +
+ Back +
+
+
+
+ Go Back +
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/tree/basic.html b/vendor/FHC-vendor/easyui/demo-mobile/tree/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo-mobile/tree/basic.html rename to vendor/FHC-vendor/easyui/demo-mobile/tree/basic.html index 9284505d2..7561c0850 --- a/vendor/easyui/demo-mobile/tree/basic.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/tree/basic.html @@ -1,56 +1,56 @@ - - - - - - Basic Tree - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Basic Tree
-
-
- -
- + + + + + + Basic Tree - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Basic Tree
+
+
+ +
+ \ No newline at end of file diff --git a/vendor/easyui/demo-mobile/tree/dnd.html b/vendor/FHC-vendor/easyui/demo-mobile/tree/dnd.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo-mobile/tree/dnd.html rename to vendor/FHC-vendor/easyui/demo-mobile/tree/dnd.html index ecb8e3131..91f986006 --- a/vendor/easyui/demo-mobile/tree/dnd.html +++ b/vendor/FHC-vendor/easyui/demo-mobile/tree/dnd.html @@ -1,56 +1,56 @@ - - - - - - Drag Drop Tree Nodes - jQuery EasyUI Mobile Demo - - - - - - - - -
-
-
-
Drag Drop Tree Nodes
-
-
- -
- + + + + + + Drag Drop Tree Nodes - jQuery EasyUI Mobile Demo + + + + + + + + +
+
+
+
Drag Drop Tree Nodes
+
+
+ +
+ \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/_content.html b/vendor/FHC-vendor/easyui/demo/accordion/_content.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/accordion/_content.html rename to vendor/FHC-vendor/easyui/demo/accordion/_content.html index 996740274..f7b8e2ee7 --- a/vendor/easyui/demo/accordion/_content.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/_content.html @@ -1,18 +1,18 @@ - - - - - AJAX Content - - -

Here is the content loaded via AJAX.

- - + + + + + AJAX Content + + +

Here is the content loaded via AJAX.

+ + \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/actions.html b/vendor/FHC-vendor/easyui/demo/accordion/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/accordion/actions.html rename to vendor/FHC-vendor/easyui/demo/accordion/actions.html index f895ebb01..28935d7fc --- a/vendor/easyui/demo/accordion/actions.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/actions.html @@ -1,51 +1,51 @@ - - - - - Accordion Actions - jQuery EasyUI Demo - - - - - - - -

Accordion Actions

-

Click the buttons below to add or remove accordion items.

-
- Select - Add - Remove -
-
-
-

Accordion for jQuery

-

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

-
-
- - + + + + + Accordion Actions - jQuery EasyUI Demo + + + + + + + +

Accordion Actions

+

Click the buttons below to add or remove accordion items.

+
+ Select + Add + Remove +
+
+
+

Accordion for jQuery

+

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/ajax.html b/vendor/FHC-vendor/easyui/demo/accordion/ajax.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/accordion/ajax.html rename to vendor/FHC-vendor/easyui/demo/accordion/ajax.html index e5c77f330..87c1a01c4 --- a/vendor/easyui/demo/accordion/ajax.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/ajax.html @@ -1,28 +1,28 @@ - - - - - Loading Accordion Content with AJAX - jQuery EasyUI Demo - - - - - - - -

Loading Accordion Content with AJAX

-

Click AJAX panel header to load content via AJAX.

-
-
-
-

Accordion for jQuery

-

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

-
-
-

The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

-
-
-
-
- + + + + + Loading Accordion Content with AJAX - jQuery EasyUI Demo + + + + + + + +

Loading Accordion Content with AJAX

+

Click AJAX panel header to load content via AJAX.

+
+
+
+

Accordion for jQuery

+

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

+
+
+

The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

+
+
+
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/basic.html b/vendor/FHC-vendor/easyui/demo/accordion/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/accordion/basic.html rename to vendor/FHC-vendor/easyui/demo/accordion/basic.html index 141deacc7..1f6c8f53c --- a/vendor/easyui/demo/accordion/basic.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/basic.html @@ -1,52 +1,52 @@ - - - - - Basic Accordion - jQuery EasyUI Demo - - - - - - - -

Basic Accordion

-

Click on panel header to show its content.

-
-
-
-

Accordion for jQuery

-

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

-
-
-

The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

-
-
-
    -
  • - Foods -
      -
    • - Fruits -
        -
      • apple
      • -
      • orange
      • -
      -
    • -
    • - Vegetables -
        -
      • tomato
      • -
      • carrot
      • -
      • cabbage
      • -
      • potato
      • -
      • lettuce
      • -
      -
    • -
    -
  • -
-
-
- + + + + + Basic Accordion - jQuery EasyUI Demo + + + + + + + +

Basic Accordion

+

Click on panel header to show its content.

+
+
+
+

Accordion for jQuery

+

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

+
+
+

The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

+
+
+
    +
  • + Foods +
      +
    • + Fruits +
        +
      • apple
      • +
      • orange
      • +
      +
    • +
    • + Vegetables +
        +
      • tomato
      • +
      • carrot
      • +
      • cabbage
      • +
      • potato
      • +
      • lettuce
      • +
      +
    • +
    +
  • +
+
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/datagrid_data1.json b/vendor/FHC-vendor/easyui/demo/accordion/datagrid_data1.json old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/demo/accordion/datagrid_data1.json rename to vendor/FHC-vendor/easyui/demo/accordion/datagrid_data1.json index 63d647358..e9a5be2f8 --- a/vendor/easyui/demo/accordion/datagrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/accordion/datagrid_data1.json @@ -1,12 +1,12 @@ -{"total":28,"rows":[ - {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, - {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, - {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, - {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} -]} +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/vendor/easyui/demo/accordion/expandable.html b/vendor/FHC-vendor/easyui/demo/accordion/expandable.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/accordion/expandable.html rename to vendor/FHC-vendor/easyui/demo/accordion/expandable.html index a678953a8..8f20f16b9 --- a/vendor/easyui/demo/accordion/expandable.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/expandable.html @@ -1,33 +1,33 @@ - - - - - Keep Expandable Panel in Accordion - jQuery EasyUI Demo - - - - - - - -

Keep Expandable Panel in Accordion

-

Keep a expandable panel and prevent it from collapsing.

-
-
-
- -
-
-

Accordion for jQuery

-

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

-
-
-

Content1

-
-
-

Content2

-
-
- - + + + + + Keep Expandable Panel in Accordion - jQuery EasyUI Demo + + + + + + + +

Keep Expandable Panel in Accordion

+

Keep a expandable panel and prevent it from collapsing.

+
+
+
+ +
+
+

Accordion for jQuery

+

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

+
+
+

Content1

+
+
+

Content2

+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/fluid.html b/vendor/FHC-vendor/easyui/demo/accordion/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/accordion/fluid.html rename to vendor/FHC-vendor/easyui/demo/accordion/fluid.html index 184880266..aaeb994af --- a/vendor/easyui/demo/accordion/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/fluid.html @@ -1,33 +1,33 @@ - - - - - Fluid Accordion - jQuery EasyUI Demo - - - - - - - -

Fluid Accordion

-

This example shows how to set the width of accordion to a percentage of its parent container.

-
-
-
-

width: 100%

-
-
-
-
-
- -
-
-

width: 50%

-
-
-
-
- + + + + + Fluid Accordion - jQuery EasyUI Demo + + + + + + + +

Fluid Accordion

+

This example shows how to set the width of accordion to a percentage of its parent container.

+
+
+
+

width: 100%

+
+
+
+
+
+ +
+
+

width: 50%

+
+
+
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/multiple.html b/vendor/FHC-vendor/easyui/demo/accordion/multiple.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/accordion/multiple.html rename to vendor/FHC-vendor/easyui/demo/accordion/multiple.html index afd1b7f80..d75bfbc4f --- a/vendor/easyui/demo/accordion/multiple.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/multiple.html @@ -1,34 +1,34 @@ - - - - - Multiple Accordion Panels - jQuery EasyUI Demo - - - - - - - -

Multiple Accordion Panels

-

Enable 'multiple' mode to expand multiple panels at one time.

-
-
-
-

A programming language is a formal language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.

-
-
-

Java (Indonesian: Jawa) is an island of Indonesia. With a population of 135 million (excluding the 3.6 million on the island of Madura which is administered as part of the provinces of Java), Java is the world's most populous island, and one of the most densely populated places in the world.

-
-
-

C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

-
-
-

A dynamic, reflective, general-purpose object-oriented programming language.

-
-
-

Fortran (previously FORTRAN) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing.

-
-
- + + + + + Multiple Accordion Panels - jQuery EasyUI Demo + + + + + + + +

Multiple Accordion Panels

+

Enable 'multiple' mode to expand multiple panels at one time.

+
+
+
+

A programming language is a formal language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.

+
+
+

Java (Indonesian: Jawa) is an island of Indonesia. With a population of 135 million (excluding the 3.6 million on the island of Madura which is administered as part of the provinces of Java), Java is the world's most populous island, and one of the most densely populated places in the world.

+
+
+

C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

+
+
+

A dynamic, reflective, general-purpose object-oriented programming language.

+
+
+

Fortran (previously FORTRAN) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing.

+
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/accordion/tools.html b/vendor/FHC-vendor/easyui/demo/accordion/tools.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/accordion/tools.html rename to vendor/FHC-vendor/easyui/demo/accordion/tools.html index 271694b46..6351a91e9 --- a/vendor/easyui/demo/accordion/tools.html +++ b/vendor/FHC-vendor/easyui/demo/accordion/tools.html @@ -1,48 +1,48 @@ - - - - - Accordion Tools - jQuery EasyUI Demo - - - - - - - -

Accordion Tools

-

Click the tools on top right of panel to perform actions.

-
-
-
-

Accordion for jQuery

-

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

-
-
-

The accordion allows you to provide multiple panels and display one ore more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

-
-
- - - - - - - - - - - -
Item IDProduct IDList PriceUnit CostAttributeStatus
-
-
- + + + + + Accordion Tools - jQuery EasyUI Demo + + + + + + + +

Accordion Tools

+

Click the tools on top right of panel to perform actions.

+
+
+
+

Accordion for jQuery

+

Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

+
+
+

The accordion allows you to provide multiple panels and display one ore more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

+
+
+ + + + + + + + + + + +
Item IDProduct IDList PriceUnit CostAttributeStatus
+
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/calendar/basic.html b/vendor/FHC-vendor/easyui/demo/calendar/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/calendar/basic.html rename to vendor/FHC-vendor/easyui/demo/calendar/basic.html index 64f37fe84..9d0d67276 --- a/vendor/easyui/demo/calendar/basic.html +++ b/vendor/FHC-vendor/easyui/demo/calendar/basic.html @@ -1,19 +1,19 @@ - - - - - Basic Calendar - jQuery EasyUI Demo - - - - - - - -

Basic Calendar

-

Click to select date.

-
-
- - + + + + + Basic Calendar - jQuery EasyUI Demo + + + + + + + +

Basic Calendar

+

Click to select date.

+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/calendar/custom.html b/vendor/FHC-vendor/easyui/demo/calendar/custom.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/calendar/custom.html rename to vendor/FHC-vendor/easyui/demo/calendar/custom.html index f3fea452c..7c570e6ce --- a/vendor/easyui/demo/calendar/custom.html +++ b/vendor/FHC-vendor/easyui/demo/calendar/custom.html @@ -1,46 +1,46 @@ - - - - - Custom Calendar - jQuery EasyUI Demo - - - - - - - -

Custom Calendar

-

This example shows how to custom the calendar date by using 'formatter' function.

-
- -
- - - - + + + + + Custom Calendar - jQuery EasyUI Demo + + + + + + + +

Custom Calendar

+

This example shows how to custom the calendar date by using 'formatter' function.

+
+ +
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/calendar/disabledate.html b/vendor/FHC-vendor/easyui/demo/calendar/disabledate.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/calendar/disabledate.html rename to vendor/FHC-vendor/easyui/demo/calendar/disabledate.html index ef2c7ea59..0b1edeb5e --- a/vendor/easyui/demo/calendar/disabledate.html +++ b/vendor/FHC-vendor/easyui/demo/calendar/disabledate.html @@ -1,28 +1,28 @@ - - - - - Disable Calendar Date - jQuery EasyUI Demo - - - - - - - -

Disable Calendar Date

-

This example shows how to disable specified dates, only allows the user to select Mondays.

-
- -
- - + + + + + Disable Calendar Date - jQuery EasyUI Demo + + + + + + + +

Disable Calendar Date

+

This example shows how to disable specified dates, only allows the user to select Mondays.

+
+ +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/calendar/firstday.html b/vendor/FHC-vendor/easyui/demo/calendar/firstday.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/calendar/firstday.html rename to vendor/FHC-vendor/easyui/demo/calendar/firstday.html index c636a0700..dd414c5eb --- a/vendor/easyui/demo/calendar/firstday.html +++ b/vendor/FHC-vendor/easyui/demo/calendar/firstday.html @@ -1,30 +1,30 @@ - - - - - First Day of Week - jQuery EasyUI Demo - - - - - - - -

First Day of Week

-

Choose the first day of the week.

- -
- -
- -
- + + + + + First Day of Week - jQuery EasyUI Demo + + + + + + + +

First Day of Week

+

Choose the first day of the week.

+ +
+ +
+ +
+ \ No newline at end of file diff --git a/vendor/easyui/demo/calendar/fluid.html b/vendor/FHC-vendor/easyui/demo/calendar/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/calendar/fluid.html rename to vendor/FHC-vendor/easyui/demo/calendar/fluid.html index e5e707024..3ca0fae3b --- a/vendor/easyui/demo/calendar/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/calendar/fluid.html @@ -1,23 +1,23 @@ - - - - - Fluid Calendar - jQuery EasyUI Demo - - - - - - - -

Fluid Calendar

-

This example shows how to set the width of calendar to a percentage of its parent container.

-
-
-

width: 50%, height: 250px

-
-

width: 30%, height: 40%

-
-
- + + + + + Fluid Calendar - jQuery EasyUI Demo + + + + + + + +

Fluid Calendar

+

This example shows how to set the width of calendar to a percentage of its parent container.

+
+
+

width: 50%, height: 250px

+
+

width: 30%, height: 40%

+
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/combo/animation.html b/vendor/FHC-vendor/easyui/demo/combo/animation.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combo/animation.html rename to vendor/FHC-vendor/easyui/demo/combo/animation.html index 70f52a6ac..4a958e74e --- a/vendor/easyui/demo/combo/animation.html +++ b/vendor/FHC-vendor/easyui/demo/combo/animation.html @@ -1,37 +1,37 @@ - - - - - Combo Animation - jQuery EasyUI Demo - - - - - - - -

Combo Animation

-

Change the animation type when open & close the drop-down panel.

-
- Animation Type: - -
- - - + + + + + Combo Animation - jQuery EasyUI Demo + + + + + + + +

Combo Animation

+

Change the animation type when open & close the drop-down panel.

+
+ Animation Type: + +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combo/basic.html b/vendor/FHC-vendor/easyui/demo/combo/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combo/basic.html rename to vendor/FHC-vendor/easyui/demo/combo/basic.html index a0ec2c86e..cba9b8dfb --- a/vendor/easyui/demo/combo/basic.html +++ b/vendor/FHC-vendor/easyui/demo/combo/basic.html @@ -1,42 +1,42 @@ - - - - - Basic Combo - jQuery EasyUI Demo - - - - - - - -

Basic Combo

-

Click the right arrow button to show drop down panel that can be filled with any content.

-
- -
-
Select a language
-
- Java
- C#
- Ruby
- Basic
- Fortran -
-
- - + + + + + Basic Combo - jQuery EasyUI Demo + + + + + + + +

Basic Combo

+

Click the right arrow button to show drop down panel that can be filled with any content.

+
+ +
+
Select a language
+
+ Java
+ C#
+ Ruby
+ Basic
+ Fortran +
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/actions.html b/vendor/FHC-vendor/easyui/demo/combobox/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/actions.html rename to vendor/FHC-vendor/easyui/demo/combobox/actions.html index 0fccf5628..d2605fc3e --- a/vendor/easyui/demo/combobox/actions.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/actions.html @@ -1,86 +1,86 @@ - - - - - ComboBox Actions - jQuery EasyUI Demo - - - - - - - -

ComboBox

-

Click the buttons below to perform actions.

- -
- SetValue - GetValue - Disable - Enable -
- - - - - + + + + + ComboBox Actions - jQuery EasyUI Demo + + + + + + + +

ComboBox

+

Click the buttons below to perform actions.

+ +
+ SetValue + GetValue + Disable + Enable +
+ + + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/basic.html b/vendor/FHC-vendor/easyui/demo/combobox/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/basic.html rename to vendor/FHC-vendor/easyui/demo/combobox/basic.html index 6a9c4fa4c..bfa2b34ee --- a/vendor/easyui/demo/combobox/basic.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/basic.html @@ -1,71 +1,71 @@ - - - - - Basic ComboBox - jQuery EasyUI Demo - - - - - - - -

Basic ComboBox

-

Type in ComboBox to try auto complete.

-
- - - - + + + + + Basic ComboBox - jQuery EasyUI Demo + + + + + + + +

Basic ComboBox

+

Type in ComboBox to try auto complete.

+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/combobox_data1.json b/vendor/FHC-vendor/easyui/demo/combobox/combobox_data1.json old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combobox/combobox_data1.json rename to vendor/FHC-vendor/easyui/demo/combobox/combobox_data1.json index 9c8f7f5b1..8bfba76c7 --- a/vendor/easyui/demo/combobox/combobox_data1.json +++ b/vendor/FHC-vendor/easyui/demo/combobox/combobox_data1.json @@ -1,22 +1,22 @@ -[{ - "id":1, - "text":"Java", - "desc":"Write once, run anywhere" -},{ - "id":2, - "text":"C#", - "desc":"One of the programming languages designed for the Common Language Infrastructure" -},{ - "id":3, - "text":"Ruby", - "selected":true, - "desc":"A dynamic, reflective, general-purpose object-oriented programming language" -},{ - "id":4, - "text":"Perl", - "desc":"A high-level, general-purpose, interpreted, dynamic programming language" -},{ - "id":5, - "text":"Basic", - "desc":"A family of general-purpose, high-level programming languages" +[{ + "id":1, + "text":"Java", + "desc":"Write once, run anywhere" +},{ + "id":2, + "text":"C#", + "desc":"One of the programming languages designed for the Common Language Infrastructure" +},{ + "id":3, + "text":"Ruby", + "selected":true, + "desc":"A dynamic, reflective, general-purpose object-oriented programming language" +},{ + "id":4, + "text":"Perl", + "desc":"A high-level, general-purpose, interpreted, dynamic programming language" +},{ + "id":5, + "text":"Basic", + "desc":"A family of general-purpose, high-level programming languages" }] \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/combobox_data2.json b/vendor/FHC-vendor/easyui/demo/combobox/combobox_data2.json old mode 100755 new mode 100644 similarity index 95% rename from vendor/easyui/demo/combobox/combobox_data2.json rename to vendor/FHC-vendor/easyui/demo/combobox/combobox_data2.json index c3baf77dc..fcaca4f05 --- a/vendor/easyui/demo/combobox/combobox_data2.json +++ b/vendor/FHC-vendor/easyui/demo/combobox/combobox_data2.json @@ -1,47 +1,47 @@ -[{ - "value":"f20", - "text":"Firefox 2.0 or higher", - "group":"Firefox" -},{ - "value":"f15", - "text":"Firefox 1.5.x", - "group":"Firefox" -},{ - "value":"f10", - "text":"Firefox 1.0.x", - "group":"Firefox" -},{ - "value":"ie7", - "text":"Microsoft Internet Explorer 7.0 or higher", - "group":"Microsoft Internet Explorer" -},{ - "value":"ie6", - "text":"Microsoft Internet Explorer 6.x", - "group":"Microsoft Internet Explorer" -},{ - "value":"ie5", - "text":"Microsoft Internet Explorer 5.x", - "group":"Microsoft Internet Explorer" -},{ - "value":"ie4", - "text":"Microsoft Internet Explorer 4.x", - "group":"Microsoft Internet Explorer" -},{ - "value":"op9", - "text":"Opera 9.0 or higher", - "group":"Opera" -},{ - "value":"op8", - "text":"Opera 8.x", - "group":"Opera" -},{ - "value":"op7", - "text":"Opera 7.x", - "group":"Opera" -},{ - "value":"Safari", - "text":"Safari" -},{ - "value":"Other", - "text":"Other" +[{ + "value":"f20", + "text":"Firefox 2.0 or higher", + "group":"Firefox" +},{ + "value":"f15", + "text":"Firefox 1.5.x", + "group":"Firefox" +},{ + "value":"f10", + "text":"Firefox 1.0.x", + "group":"Firefox" +},{ + "value":"ie7", + "text":"Microsoft Internet Explorer 7.0 or higher", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie6", + "text":"Microsoft Internet Explorer 6.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie5", + "text":"Microsoft Internet Explorer 5.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie4", + "text":"Microsoft Internet Explorer 4.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"op9", + "text":"Opera 9.0 or higher", + "group":"Opera" +},{ + "value":"op8", + "text":"Opera 8.x", + "group":"Opera" +},{ + "value":"op7", + "text":"Opera 7.x", + "group":"Opera" +},{ + "value":"Safari", + "text":"Safari" +},{ + "value":"Other", + "text":"Other" }] \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/customformat.html b/vendor/FHC-vendor/easyui/demo/combobox/customformat.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/customformat.html rename to vendor/FHC-vendor/easyui/demo/combobox/customformat.html index 5c58fd181..82664eaea --- a/vendor/easyui/demo/combobox/customformat.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/customformat.html @@ -1,33 +1,33 @@ - - - - - Custom Format in ComboBox - jQuery EasyUI Demo - - - - - - - -

Custom Format in ComboBox

-

This sample shows how to custom the format of list item.

-
- - - + + + + + Custom Format in ComboBox - jQuery EasyUI Demo + + + + + + + +

Custom Format in ComboBox

+

This sample shows how to custom the format of list item.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/dynamicdata.html b/vendor/FHC-vendor/easyui/demo/combobox/dynamicdata.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/dynamicdata.html rename to vendor/FHC-vendor/easyui/demo/combobox/dynamicdata.html index 2548599f0..1857e4821 --- a/vendor/easyui/demo/combobox/dynamicdata.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/dynamicdata.html @@ -1,23 +1,23 @@ - - - - - Load Dynamic ComboBox Data - jQuery EasyUI Demo - - - - - - - -

Load Dynamic ComboBox Data

-

Click the button below to load data.

- -
- LoadData -
- - - + + + + + Load Dynamic ComboBox Data - jQuery EasyUI Demo + + + + + + + +

Load Dynamic ComboBox Data

+

Click the button below to load data.

+ +
+ LoadData +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/fluid.html b/vendor/FHC-vendor/easyui/demo/combobox/fluid.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combobox/fluid.html rename to vendor/FHC-vendor/easyui/demo/combobox/fluid.html index 289fcda0a..e621fae84 --- a/vendor/easyui/demo/combobox/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/fluid.html @@ -1,36 +1,36 @@ - - - - - Fluid ComboBox - jQuery EasyUI Demo - - - - - - - -

Fluid ComboBox

-

This example shows how to set the width of combobox to a percentage of its parent container.

-
-

width: 50%

- -

width: 30%

- - - + + + + + Fluid ComboBox - jQuery EasyUI Demo + + + + + + + +

Fluid ComboBox

+

This example shows how to set the width of combobox to a percentage of its parent container.

+
+

width: 50%

+ +

width: 30%

+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/group.html b/vendor/FHC-vendor/easyui/demo/combobox/group.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/group.html rename to vendor/FHC-vendor/easyui/demo/combobox/group.html index baa89597b..d1431b7f2 --- a/vendor/easyui/demo/combobox/group.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/group.html @@ -1,26 +1,26 @@ - - - - - Group ComboBox - jQuery EasyUI Demo - - - - - - - -

Group ComboBox

-

This example shows how to display combobox items in groups.

-
- - - - + + + + + Group ComboBox - jQuery EasyUI Demo + + + + + + + +

Group ComboBox

+

This example shows how to display combobox items in groups.

+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/icons.html b/vendor/FHC-vendor/easyui/demo/combobox/icons.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combobox/icons.html rename to vendor/FHC-vendor/easyui/demo/combobox/icons.html index ebd087d46..4defb0a4f --- a/vendor/easyui/demo/combobox/icons.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/icons.html @@ -1,32 +1,32 @@ - - - - - ComboBox with Extra Icons- jQuery EasyUI Demo - - - - - - - -

ComboBox with Extra Icons

-

The user can attach extra icons to the ComboBox.

-
- - - + + + + + ComboBox with Extra Icons- jQuery EasyUI Demo + + + + + + + +

ComboBox with Extra Icons

+

The user can attach extra icons to the ComboBox.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/multiline.html b/vendor/FHC-vendor/easyui/demo/combobox/multiline.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/multiline.html rename to vendor/FHC-vendor/easyui/demo/combobox/multiline.html index 74cbc58ea..2b8d1569d --- a/vendor/easyui/demo/combobox/multiline.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/multiline.html @@ -1,71 +1,71 @@ - - - - - Multiline ComboBox - jQuery EasyUI Demo - - - - - - - -

Multiline ComboBox

-

This example shows how to create a multiline ComboBox.

-
- - - - + + + + + Multiline ComboBox - jQuery EasyUI Demo + + + + + + + +

Multiline ComboBox

+

This example shows how to create a multiline ComboBox.

+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/multiple.html b/vendor/FHC-vendor/easyui/demo/combobox/multiple.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combobox/multiple.html rename to vendor/FHC-vendor/easyui/demo/combobox/multiple.html index 79b5e6991..3eb2526fb --- a/vendor/easyui/demo/combobox/multiple.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/multiple.html @@ -1,29 +1,29 @@ - - - - - Multiple Select - jQuery EasyUI Demo - - - - - - - -

Load Dynamic ComboBox Data

-

Drop down the panel and select multiple items.

-
- - - - + + + + + Multiple Select - jQuery EasyUI Demo + + + + + + + +

Load Dynamic ComboBox Data

+

Drop down the panel and select multiple items.

+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/navigation.html b/vendor/FHC-vendor/easyui/demo/combobox/navigation.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combobox/navigation.html rename to vendor/FHC-vendor/easyui/demo/combobox/navigation.html index 3ea5d3c9b..4299d422f --- a/vendor/easyui/demo/combobox/navigation.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/navigation.html @@ -1,73 +1,73 @@ - - - - - Navigate ComboBox - jQuery EasyUI Demo - - - - - - - -

Navigate ComboBox

-

Navigate through combobox items width keyboard to select an item.

-
- - SelectOnNavigation -
- - - - + + + + + Navigate ComboBox - jQuery EasyUI Demo + + + + + + + +

Navigate ComboBox

+

Navigate through combobox items width keyboard to select an item.

+
+ + SelectOnNavigation +
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/remotedata.html b/vendor/FHC-vendor/easyui/demo/combobox/remotedata.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combobox/remotedata.html rename to vendor/FHC-vendor/easyui/demo/combobox/remotedata.html index 46e75fd15..42dda5d8c --- a/vendor/easyui/demo/combobox/remotedata.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/remotedata.html @@ -1,27 +1,27 @@ - - - - - Binding to Remote Data - jQuery EasyUI Demo - - - - - - - -

Binding to Remote Data

-

The ComboBox is bound to a remote data.

-
- - - + + + + + Binding to Remote Data - jQuery EasyUI Demo + + + + + + + +

Binding to Remote Data

+

The ComboBox is bound to a remote data.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combobox/remotejsonp.html b/vendor/FHC-vendor/easyui/demo/combobox/remotejsonp.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/combobox/remotejsonp.html rename to vendor/FHC-vendor/easyui/demo/combobox/remotejsonp.html index 0cbfe4e85..d96285a9f --- a/vendor/easyui/demo/combobox/remotejsonp.html +++ b/vendor/FHC-vendor/easyui/demo/combobox/remotejsonp.html @@ -1,48 +1,48 @@ - - - - - Remote JSONP - jQuery EasyUI Demo - - - - - - - -

Remote JSONP

-

This sample shows how to use JSONP to retrieve data from a remote site.

-
- - - + + + + + Remote JSONP - jQuery EasyUI Demo + + + + + + + +

Remote JSONP

+

This sample shows how to use JSONP to retrieve data from a remote site.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/actions.html b/vendor/FHC-vendor/easyui/demo/combogrid/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/actions.html rename to vendor/FHC-vendor/easyui/demo/combogrid/actions.html index c41d0c96c..e09588af8 --- a/vendor/easyui/demo/combogrid/actions.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/actions.html @@ -1,53 +1,53 @@ - - - - - ComboGrid Actions - jQuery EasyUI Demo - - - - - - - -

ComboGrid Actions

-

Click the buttons below to perform actions.

-
- GetValue - SetValue - Disable - Enable -
- - - + + + + + ComboGrid Actions - jQuery EasyUI Demo + + + + + + + +

ComboGrid Actions

+

Click the buttons below to perform actions.

+
+ GetValue + SetValue + Disable + Enable +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/basic.html b/vendor/FHC-vendor/easyui/demo/combogrid/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/basic.html rename to vendor/FHC-vendor/easyui/demo/combogrid/basic.html index de430b672..9c71e5228 --- a/vendor/easyui/demo/combogrid/basic.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/basic.html @@ -1,34 +1,34 @@ - - - - - Basic ComboGrid - jQuery EasyUI Demo - - - - - - - -

Basic ComboGrid

-

Click the right arrow button to show the DataGrid.

-
- - + + + + + Basic ComboGrid - jQuery EasyUI Demo + + + + + + + +

Basic ComboGrid

+

Click the right arrow button to show the DataGrid.

+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/datagrid_data1.json b/vendor/FHC-vendor/easyui/demo/combogrid/datagrid_data1.json old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/demo/combogrid/datagrid_data1.json rename to vendor/FHC-vendor/easyui/demo/combogrid/datagrid_data1.json index c74fa230d..3a62a71f3 --- a/vendor/easyui/demo/combogrid/datagrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/combogrid/datagrid_data1.json @@ -1,12 +1,12 @@ -{"total":28,"rows":[ - {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, - {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, - {"selected":true,"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, - {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} -]} +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"selected":true,"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/vendor/easyui/demo/combogrid/fluid.html b/vendor/FHC-vendor/easyui/demo/combogrid/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/fluid.html rename to vendor/FHC-vendor/easyui/demo/combogrid/fluid.html index 039299286..edf7fdb80 --- a/vendor/easyui/demo/combogrid/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/fluid.html @@ -1,54 +1,54 @@ - - - - - Fluid ComboGrid - jQuery EasyUI Demo - - - - - - - -

Fluid ComboGrid

-

This example shows how to set the width of ComboGrid to a percentage of its parent container.

-
-

width: 50%

- -

width: 30%

- - + + + + + Fluid ComboGrid - jQuery EasyUI Demo + + + + + + + +

Fluid ComboGrid

+

This example shows how to set the width of ComboGrid to a percentage of its parent container.

+
+

width: 50%

+ +

width: 30%

+ + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/initvalue.html b/vendor/FHC-vendor/easyui/demo/combogrid/initvalue.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/initvalue.html rename to vendor/FHC-vendor/easyui/demo/combogrid/initvalue.html index 9a55c892f..b88f2456b --- a/vendor/easyui/demo/combogrid/initvalue.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/initvalue.html @@ -1,33 +1,33 @@ - - - - - Initialize Value for ComboGrid - jQuery EasyUI Demo - - - - - - - -

Initialize Value for ComboGrid

-

Initialize value when ComboGrid is created.

-
- - + + + + + Initialize Value for ComboGrid - jQuery EasyUI Demo + + + + + + + +

Initialize Value for ComboGrid

+

Initialize value when ComboGrid is created.

+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/multiple.html b/vendor/FHC-vendor/easyui/demo/combogrid/multiple.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/multiple.html rename to vendor/FHC-vendor/easyui/demo/combogrid/multiple.html index 60700f7e1..8f9cc80c1 --- a/vendor/easyui/demo/combogrid/multiple.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/multiple.html @@ -1,37 +1,37 @@ - - - - - Multiple ComboGrid - jQuery EasyUI Demo - - - - - - - -

Multiple ComboGrid

-

Click the right arrow button to show the DataGrid and select items.

-
- - - + + + + + Multiple ComboGrid - jQuery EasyUI Demo + + + + + + + +

Multiple ComboGrid

+

Click the right arrow button to show the DataGrid and select items.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/navigation.html b/vendor/FHC-vendor/easyui/demo/combogrid/navigation.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/navigation.html rename to vendor/FHC-vendor/easyui/demo/combogrid/navigation.html index 7af03b831..646ba82be --- a/vendor/easyui/demo/combogrid/navigation.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/navigation.html @@ -1,38 +1,38 @@ - - - - - Navigate ComboGrid - jQuery EasyUI Demo - - - - - - - -

Navigate ComboGrid

-

Navigate through grid items with keyboard to select an item.

-
- - SelectOnNavigation -
- - - + + + + + Navigate ComboGrid - jQuery EasyUI Demo + + + + + + + +

Navigate ComboGrid

+

Navigate through grid items with keyboard to select an item.

+
+ + SelectOnNavigation +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combogrid/setvalue.html b/vendor/FHC-vendor/easyui/demo/combogrid/setvalue.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combogrid/setvalue.html rename to vendor/FHC-vendor/easyui/demo/combogrid/setvalue.html index 4d0e0b8ed..4b3effda0 --- a/vendor/easyui/demo/combogrid/setvalue.html +++ b/vendor/FHC-vendor/easyui/demo/combogrid/setvalue.html @@ -1,52 +1,52 @@ - - - - - Set Value for ComboGrid - jQuery EasyUI Demo - - - - - - - -

Set Value for ComboGrid

-

Click the buttons below to perform actions.

-
- GetValue - SetValue1 - SetValue2 -
- - - + + + + + Set Value for ComboGrid - jQuery EasyUI Demo + + + + + + + +

Set Value for ComboGrid

+

Click the buttons below to perform actions.

+
+ GetValue + SetValue1 + SetValue2 +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combotree/actions.html b/vendor/FHC-vendor/easyui/demo/combotree/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combotree/actions.html rename to vendor/FHC-vendor/easyui/demo/combotree/actions.html index c1290bb86..d5d86a3ae --- a/vendor/easyui/demo/combotree/actions.html +++ b/vendor/FHC-vendor/easyui/demo/combotree/actions.html @@ -1,39 +1,39 @@ - - - - - ComboTree Actions - jQuery EasyUI Demo - - - - - - - -

ComboTree Actions

-

Click the buttons below to perform actions

-
- GetValue - SetValue - Disable - Enable -
- - - - + + + + + ComboTree Actions - jQuery EasyUI Demo + + + + + + + +

ComboTree Actions

+

Click the buttons below to perform actions

+
+ GetValue + SetValue + Disable + Enable +
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/combotree/basic.html b/vendor/FHC-vendor/easyui/demo/combotree/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combotree/basic.html rename to vendor/FHC-vendor/easyui/demo/combotree/basic.html index 4b62c8857..c168d7af5 --- a/vendor/easyui/demo/combotree/basic.html +++ b/vendor/FHC-vendor/easyui/demo/combotree/basic.html @@ -1,19 +1,19 @@ - - - - - Basic ComboTree - jQuery EasyUI Demo - - - - - - - -

Basic ComboTree

-

Click the right arrow button to show the tree panel.

-
- - - + + + + + Basic ComboTree - jQuery EasyUI Demo + + + + + + + +

Basic ComboTree

+

Click the right arrow button to show the tree panel.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combotree/fluid.html b/vendor/FHC-vendor/easyui/demo/combotree/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combotree/fluid.html rename to vendor/FHC-vendor/easyui/demo/combotree/fluid.html index 5b7830660..be131de4e --- a/vendor/easyui/demo/combotree/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/combotree/fluid.html @@ -1,22 +1,22 @@ - - - - - Fluid ComboTree - jQuery EasyUI Demo - - - - - - - -

Fluid ComboTree

-

This example shows how to set the width of ComboTree to a percentage of its parent container.

-
-

width: 50%

- -

width: 30%, height: 26px

- - - + + + + + Fluid ComboTree - jQuery EasyUI Demo + + + + + + + +

Fluid ComboTree

+

This example shows how to set the width of ComboTree to a percentage of its parent container.

+
+

width: 50%

+ +

width: 30%, height: 26px

+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combotree/initvalue.html b/vendor/FHC-vendor/easyui/demo/combotree/initvalue.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combotree/initvalue.html rename to vendor/FHC-vendor/easyui/demo/combotree/initvalue.html index 801113a23..a5ac8a8ab --- a/vendor/easyui/demo/combotree/initvalue.html +++ b/vendor/FHC-vendor/easyui/demo/combotree/initvalue.html @@ -1,19 +1,19 @@ - - - - - Initialize Value for ComboTree - jQuery EasyUI Demo - - - - - - - -

Initialize Value for ComboTree

-

Initialize Value when ComboTree is created.

-
- - - + + + + + Initialize Value for ComboTree - jQuery EasyUI Demo + + + + + + + +

Initialize Value for ComboTree

+

Initialize Value when ComboTree is created.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combotree/multiple.html b/vendor/FHC-vendor/easyui/demo/combotree/multiple.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/combotree/multiple.html rename to vendor/FHC-vendor/easyui/demo/combotree/multiple.html index feb3bbecf..704e86e4b --- a/vendor/easyui/demo/combotree/multiple.html +++ b/vendor/FHC-vendor/easyui/demo/combotree/multiple.html @@ -1,22 +1,22 @@ - - - - - Multiple ComboTree - jQuery EasyUI Demo - - - - - - - -

Multiple ComboTree

-

Click the right arrow button to show the tree panel and select multiple nodes.

-
- Cascade Check: - -
- - - + + + + + Multiple ComboTree - jQuery EasyUI Demo + + + + + + + +

Multiple ComboTree

+

Click the right arrow button to show the tree panel and select multiple nodes.

+
+ Cascade Check: + +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/combotree/tree_data1.json b/vendor/FHC-vendor/easyui/demo/combotree/tree_data1.json old mode 100755 new mode 100644 similarity index 93% rename from vendor/easyui/demo/combotree/tree_data1.json rename to vendor/FHC-vendor/easyui/demo/combotree/tree_data1.json index e0c619226..83fb0d619 --- a/vendor/easyui/demo/combotree/tree_data1.json +++ b/vendor/FHC-vendor/easyui/demo/combotree/tree_data1.json @@ -1,49 +1,49 @@ -[{ - "id":1, - "text":"My Documents", - "children":[{ - "id":11, - "text":"Photos", - "state":"closed", - "children":[{ - "id":111, - "text":"Friend" - },{ - "id":112, - "text":"Wife" - },{ - "id":113, - "text":"Company" - }] - },{ - "id":12, - "text":"Program Files", - "children":[{ - "id":121, - "text":"Intel" - },{ - "id":122, - "text":"Java", - "attributes":{ - "p1":"Custom Attribute1", - "p2":"Custom Attribute2" - } - },{ - "id":123, - "text":"Microsoft Office" - },{ - "id":124, - "text":"Games", - "checked":true - }] - },{ - "id":13, - "text":"index.html" - },{ - "id":14, - "text":"about.html" - },{ - "id":15, - "text":"welcome.html" - }] -}] +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/vendor/easyui/demo/datagrid/aligncolumns.html b/vendor/FHC-vendor/easyui/demo/datagrid/aligncolumns.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/aligncolumns.html rename to vendor/FHC-vendor/easyui/demo/datagrid/aligncolumns.html index 602196211..cc86de670 --- a/vendor/easyui/demo/datagrid/aligncolumns.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/aligncolumns.html @@ -1,32 +1,32 @@ - - - - - Aligning Columns in DataGrid - jQuery EasyUI Demo - - - - - - - -

Aligning Columns in DataGrid

-

Use align and halign properties to set the alignment of the columns and their header.

-
- - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + Aligning Columns in DataGrid - jQuery EasyUI Demo + + + + + + + +

Aligning Columns in DataGrid

+

Use align and halign properties to set the alignment of the columns and their header.

+
+ + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/basic.html b/vendor/FHC-vendor/easyui/demo/datagrid/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/basic.html rename to vendor/FHC-vendor/easyui/demo/datagrid/basic.html index 6870ac217..8dcc2f346 --- a/vendor/easyui/demo/datagrid/basic.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/basic.html @@ -1,32 +1,32 @@ - - - - - Basic DataGrid - jQuery EasyUI Demo - - - - - - - -

Basic DataGrid

-

The DataGrid is created from markup, no JavaScript code needed.

-
- - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + Basic DataGrid - jQuery EasyUI Demo + + + + + + + +

Basic DataGrid

+

The DataGrid is created from markup, no JavaScript code needed.

+
+ + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/cacheeditor.html b/vendor/FHC-vendor/easyui/demo/datagrid/cacheeditor.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/cacheeditor.html rename to vendor/FHC-vendor/easyui/demo/datagrid/cacheeditor.html index df55e30f6..c793c427f --- a/vendor/easyui/demo/datagrid/cacheeditor.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/cacheeditor.html @@ -1,149 +1,149 @@ - - - - - Cache Editor for DataGrid - jQuery EasyUI Demo - - - - - - - -

Cache Editor for DataGrid

-

This example shows how to cache the editors for datagrid to improve the editing speed.

-
- - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- -
- Accept - Reject - GetChanges -
- - - - + + + + + Cache Editor for DataGrid - jQuery EasyUI Demo + + + + + + + +

Cache Editor for DataGrid

+

This example shows how to cache the editors for datagrid to improve the editing speed.

+
+ + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ +
+ Accept + Reject + GetChanges +
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/cellediting.html b/vendor/FHC-vendor/easyui/demo/datagrid/cellediting.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/cellediting.html rename to vendor/FHC-vendor/easyui/demo/datagrid/cellediting.html index 385b2d4d8..b971c2533 --- a/vendor/easyui/demo/datagrid/cellediting.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/cellediting.html @@ -1,94 +1,94 @@ - - - - - Cell Editing in DataGrid - jQuery EasyUI Demo - - - - - - - -

Cell Editing in DataGrid

-

Click a cell to start editing.

-
- - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - - + + + + + Cell Editing in DataGrid - jQuery EasyUI Demo + + + + + + + +

Cell Editing in DataGrid

+

Click a cell to start editing.

+
+ + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/cellstyle.html b/vendor/FHC-vendor/easyui/demo/datagrid/cellstyle.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/cellstyle.html rename to vendor/FHC-vendor/easyui/demo/datagrid/cellstyle.html index 9230ac214..3140fa363 --- a/vendor/easyui/demo/datagrid/cellstyle.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/cellstyle.html @@ -1,42 +1,42 @@ - - - - - DataGrid Cell Style - jQuery EasyUI Demo - - - - - - - -

DataGrid Cell Style

-

The cells which listprice value is less than 30 are highlighted.

-
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + DataGrid Cell Style - jQuery EasyUI Demo + + + + + + + +

DataGrid Cell Style

+

The cells which listprice value is less than 30 are highlighted.

+
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/checkbox.html b/vendor/FHC-vendor/easyui/demo/datagrid/checkbox.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/checkbox.html rename to vendor/FHC-vendor/easyui/demo/datagrid/checkbox.html index ca1c81c2e..3ea251d5e --- a/vendor/easyui/demo/datagrid/checkbox.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/checkbox.html @@ -1,42 +1,42 @@ - - - - - CheckBox Selection on DataGrid - jQuery EasyUI Demo - - - - - - - -

CheckBox Selection on DataGrid

-

Click the checkbox on header to select or unselect all selections.

-
- - - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
-
- Selection Mode: -
- SelectOnCheck:
- CheckOnSelect: -
- - + + + + + CheckBox Selection on DataGrid - jQuery EasyUI Demo + + + + + + + +

CheckBox Selection on DataGrid

+

Click the checkbox on header to select or unselect all selections.

+
+ + + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+
+ Selection Mode: +
+ SelectOnCheck:
+ CheckOnSelect: +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/clientpagination.html b/vendor/FHC-vendor/easyui/demo/datagrid/clientpagination.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/clientpagination.html rename to vendor/FHC-vendor/easyui/demo/datagrid/clientpagination.html index 3bec54cd8..7b63b78fc --- a/vendor/easyui/demo/datagrid/clientpagination.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/clientpagination.html @@ -1,160 +1,160 @@ - - - - - Client Side Pagination in DataGrid - jQuery EasyUI Demo - - - - - - - -

Client Side Pagination in DataGrid

-

This sample shows how to implement client side pagination in DataGrid.

-
- - - - - - - - - - - - - -
Inv NoDateNameAmountPriceCostNote
- - + + + + + Client Side Pagination in DataGrid - jQuery EasyUI Demo + + + + + + + +

Client Side Pagination in DataGrid

+

This sample shows how to implement client side pagination in DataGrid.

+
+ + + + + + + + + + + + + +
Inv NoDateNameAmountPriceCostNote
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/columngroup.html b/vendor/FHC-vendor/easyui/demo/datagrid/columngroup.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/columngroup.html rename to vendor/FHC-vendor/easyui/demo/datagrid/columngroup.html index 9c3340e11..af8f0f960 --- a/vendor/easyui/demo/datagrid/columngroup.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/columngroup.html @@ -1,34 +1,34 @@ - - - - - Column Group - jQuery EasyUI Demo - - - - - - - -

Column Group

-

The header cells can be merged. Useful to group columns under a category.

-
- - - - - - - - - - - - - - -
Item IDProductItem Details
List PriceUnit CostAttributeStatus
- - + + + + + Column Group - jQuery EasyUI Demo + + + + + + + +

Column Group

+

The header cells can be merged. Useful to group columns under a category.

+
+ + + + + + + + + + + + + + +
Item IDProductItem Details
List PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/complextoolbar.html b/vendor/FHC-vendor/easyui/demo/datagrid/complextoolbar.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/complextoolbar.html rename to vendor/FHC-vendor/easyui/demo/datagrid/complextoolbar.html index 35c9ba186..2ee44a58b --- a/vendor/easyui/demo/datagrid/complextoolbar.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/complextoolbar.html @@ -1,50 +1,50 @@ - - - - - DataGrid Complex Toolbar - jQuery EasyUI Demo - - - - - - - -

DataGrid Complex Toolbar

-

The DataGrid toolbar can be defined from a <div> markup, so you can define the layout of toolbar easily.

-
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
-
- Date From: - To: - Language: - - Search -
-
- - - - - -
- + + + + + DataGrid Complex Toolbar - jQuery EasyUI Demo + + + + + + + +

DataGrid Complex Toolbar

+

The DataGrid toolbar can be defined from a <div> markup, so you can define the layout of toolbar easily.

+
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+
+ Date From: + To: + Language: + + Search +
+
+ + + + + +
+ \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/contextmenu.html b/vendor/FHC-vendor/easyui/demo/datagrid/contextmenu.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/datagrid/contextmenu.html rename to vendor/FHC-vendor/easyui/demo/datagrid/contextmenu.html index 96f3c6d40..e9a64faea --- a/vendor/easyui/demo/datagrid/contextmenu.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/contextmenu.html @@ -1,81 +1,81 @@ - - - - - Context Menu on DataGrid - jQuery EasyUI Demo - - - - - - - -

Context Menu on DataGrid

-

Right click on the header of DataGrid to display context menu.

-
-
- - + + + + + Context Menu on DataGrid - jQuery EasyUI Demo + + + + + + + +

Context Menu on DataGrid

+

Right click on the header of DataGrid to display context menu.

+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/custompager.html b/vendor/FHC-vendor/easyui/demo/datagrid/custompager.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/custompager.html rename to vendor/FHC-vendor/easyui/demo/datagrid/custompager.html index c4c62d707..baa66a422 --- a/vendor/easyui/demo/datagrid/custompager.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/custompager.html @@ -1,53 +1,53 @@ - - - - - Custom DataGrid Pager - jQuery EasyUI Demo - - - - - - - -

Custom DataGrid Pager

-

You can append some buttons to the standard datagrid pager bar.

-
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + Custom DataGrid Pager - jQuery EasyUI Demo + + + + + + + +

Custom DataGrid Pager

+

You can append some buttons to the standard datagrid pager bar.

+
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/datagrid_data1.json b/vendor/FHC-vendor/easyui/demo/datagrid/datagrid_data1.json old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/demo/datagrid/datagrid_data1.json rename to vendor/FHC-vendor/easyui/demo/datagrid/datagrid_data1.json index 63d647358..e9a5be2f8 --- a/vendor/easyui/demo/datagrid/datagrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/datagrid/datagrid_data1.json @@ -1,12 +1,12 @@ -{"total":28,"rows":[ - {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, - {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, - {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, - {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} -]} +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/vendor/easyui/demo/datagrid/datagrid_data2.json b/vendor/FHC-vendor/easyui/demo/datagrid/datagrid_data2.json old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/datagrid/datagrid_data2.json rename to vendor/FHC-vendor/easyui/demo/datagrid/datagrid_data2.json index ce91babf0..4a27e1434 --- a/vendor/easyui/demo/datagrid/datagrid_data2.json +++ b/vendor/FHC-vendor/easyui/demo/datagrid/datagrid_data2.json @@ -1,15 +1,15 @@ -{"total":28,"rows":[ - {"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, - {"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, - {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":28.50,"attr1":"Venomless","itemid":"EST-11"}, - {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, - {"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, - {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, - {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, - {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":63.50,"attr1":"Adult Female","itemid":"EST-16"}, - {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, - {"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} -],"footer":[ - {"unitcost":19.80,"listprice":60.40,"productid":"Average:"}, - {"unitcost":198.00,"listprice":604.00,"productid":"Total:"} -]} +{"total":28,"rows":[ + {"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":28.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":63.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +],"footer":[ + {"unitcost":19.80,"listprice":60.40,"productid":"Average:"}, + {"unitcost":198.00,"listprice":604.00,"productid":"Total:"} +]} diff --git a/vendor/easyui/demo/datagrid/fluid.html b/vendor/FHC-vendor/easyui/demo/datagrid/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/fluid.html rename to vendor/FHC-vendor/easyui/demo/datagrid/fluid.html index 463f570c5..b67e9ca66 --- a/vendor/easyui/demo/datagrid/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/fluid.html @@ -1,32 +1,32 @@ - - - - - Fluid DataGrid - jQuery EasyUI Demo - - - - - - - -

Fluid DataGrid

-

This example shows how to assign percentage width to a column in DataGrid.

-
- - - - - - - - - - - - -
Item ID(15%)Product(15%)List Price(15%)Unit Cost(15%)Attribute(25%)Status(15%)
- - + + + + + Fluid DataGrid - jQuery EasyUI Demo + + + + + + + +

Fluid DataGrid

+

This example shows how to assign percentage width to a column in DataGrid.

+
+ + + + + + + + + + + + +
Item ID(15%)Product(15%)List Price(15%)Unit Cost(15%)Attribute(25%)Status(15%)
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/footer.html b/vendor/FHC-vendor/easyui/demo/datagrid/footer.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/footer.html rename to vendor/FHC-vendor/easyui/demo/datagrid/footer.html index ccb8885fa..53a3fbd9e --- a/vendor/easyui/demo/datagrid/footer.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/footer.html @@ -1,38 +1,38 @@ - - - - - Footer Rows in DataGrid - jQuery EasyUI Demo - - - - - - - -

Footer Rows in DataGrid

-

The summary informations can be displayed in footer rows.

-
- - - - - - - - - - - -
Item IDProduct IDList PriceUnit CostAttributeStatus
- - + + + + + Footer Rows in DataGrid - jQuery EasyUI Demo + + + + + + + +

Footer Rows in DataGrid

+

The summary informations can be displayed in footer rows.

+
+ + + + + + + + + + + +
Item IDProduct IDList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/formatcolumns.html b/vendor/FHC-vendor/easyui/demo/datagrid/formatcolumns.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/formatcolumns.html rename to vendor/FHC-vendor/easyui/demo/datagrid/formatcolumns.html index e5a2e0252..c2b007651 --- a/vendor/easyui/demo/datagrid/formatcolumns.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/formatcolumns.html @@ -1,39 +1,39 @@ - - - - - Format DataGrid Columns - jQuery EasyUI Demo - - - - - - - -

Format DataGrid Columns

-

The list price value will show red color when less than 30.

-
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + Format DataGrid Columns - jQuery EasyUI Demo + + + + + + + +

Format DataGrid Columns

+

The list price value will show red color when less than 30.

+
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/frozencolumns.html b/vendor/FHC-vendor/easyui/demo/datagrid/frozencolumns.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/frozencolumns.html rename to vendor/FHC-vendor/easyui/demo/datagrid/frozencolumns.html index 3542017b4..2bc21b1fc --- a/vendor/easyui/demo/datagrid/frozencolumns.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/frozencolumns.html @@ -1,35 +1,35 @@ - - - - - Frozen Columns in DataGrid - jQuery EasyUI Demo - - - - - - - -

Frozen Columns in DataGrid

-

You can freeze some columns that can't scroll out of view.

-
- - - - - - - - - - - - - - - -
Item IDProduct
List PriceUnit CostAttributeStatus
- - + + + + + Frozen Columns in DataGrid - jQuery EasyUI Demo + + + + + + + +

Frozen Columns in DataGrid

+

You can freeze some columns that can't scroll out of view.

+
+ + + + + + + + + + + + + + + +
Item IDProduct
List PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/frozenrows.html b/vendor/FHC-vendor/easyui/demo/datagrid/frozenrows.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/frozenrows.html rename to vendor/FHC-vendor/easyui/demo/datagrid/frozenrows.html index be27afd83..72310dd07 --- a/vendor/easyui/demo/datagrid/frozenrows.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/frozenrows.html @@ -1,44 +1,44 @@ - - - - - Frozen Rows in DataGrid - jQuery EasyUI Demo - - - - - - - -

Frozen Rows in DataGrid

-

This sample shows how to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.

-
- - - - - - - - - - - - - - - -
Item IDProduct
List PriceUnit CostAttributeStatus
- - + + + + + Frozen Rows in DataGrid - jQuery EasyUI Demo + + + + + + + +

Frozen Rows in DataGrid

+

This sample shows how to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.

+
+ + + + + + + + + + + + + + + +
Item IDProduct
List PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/mergecells.html b/vendor/FHC-vendor/easyui/demo/datagrid/mergecells.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/datagrid/mergecells.html rename to vendor/FHC-vendor/easyui/demo/datagrid/mergecells.html index 3d0ff75e8..a50f93466 --- a/vendor/easyui/demo/datagrid/mergecells.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/mergecells.html @@ -1,58 +1,58 @@ - - - - - Merge Cells for DataGrid - jQuery EasyUI Demo - - - - - - - -

Merge Cells for DataGrid

-

Cells in DataGrid body can be merged.

-
- - - - - - - - - - - -
ProductItem IDList PriceUnit CostAttributeStatus
- - + + + + + Merge Cells for DataGrid - jQuery EasyUI Demo + + + + + + + +

Merge Cells for DataGrid

+

Cells in DataGrid body can be merged.

+
+ + + + + + + + + + + +
ProductItem IDList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/multisorting.html b/vendor/FHC-vendor/easyui/demo/datagrid/multisorting.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/multisorting.html rename to vendor/FHC-vendor/easyui/demo/datagrid/multisorting.html index d7337f3d8..a04c3eff6 --- a/vendor/easyui/demo/datagrid/multisorting.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/multisorting.html @@ -1,37 +1,37 @@ - - - - - Multiple Sorting - jQuery EasyUI Demo - - - - - - - -

Multiple Sorting

-

Set 'multiSort' property to true to enable multiple column sorting.

-
- - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + Multiple Sorting - jQuery EasyUI Demo + + + + + + + +

Multiple Sorting

+

Set 'multiSort' property to true to enable multiple column sorting.

+
+ + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/products.json b/vendor/FHC-vendor/easyui/demo/datagrid/products.json old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/products.json rename to vendor/FHC-vendor/easyui/demo/datagrid/products.json index b0b6a936e..2c512bcf6 --- a/vendor/easyui/demo/datagrid/products.json +++ b/vendor/FHC-vendor/easyui/demo/datagrid/products.json @@ -1,9 +1,9 @@ -[ -{"productid":"FI-SW-01","productname":"Koi"}, -{"productid":"K9-DL-01","productname":"Dalmation"}, -{"productid":"RP-SN-01","productname":"Rattlesnake"}, -{"productid":"RP-LI-02","productname":"Iguana"}, -{"productid":"FL-DSH-01","productname":"Manx"}, -{"productid":"FL-DLH-02","productname":"Persian"}, -{"productid":"AV-CB-01","productname":"Amazon Parrot"} -] +[ +{"productid":"FI-SW-01","productname":"Koi"}, +{"productid":"K9-DL-01","productname":"Dalmation"}, +{"productid":"RP-SN-01","productname":"Rattlesnake"}, +{"productid":"RP-LI-02","productname":"Iguana"}, +{"productid":"FL-DSH-01","productname":"Manx"}, +{"productid":"FL-DLH-02","productname":"Persian"}, +{"productid":"AV-CB-01","productname":"Amazon Parrot"} +] diff --git a/vendor/easyui/demo/datagrid/rowborder.html b/vendor/FHC-vendor/easyui/demo/datagrid/rowborder.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/rowborder.html rename to vendor/FHC-vendor/easyui/demo/datagrid/rowborder.html index 21843f451..24a18b71f --- a/vendor/easyui/demo/datagrid/rowborder.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/rowborder.html @@ -1,60 +1,60 @@ - - - - - Row Border in DataGrid - jQuery EasyUI Demo - - - - - - - -

Row Border in DataGrid

-

This sample shows how to change the row border style of datagrid.

-
- Border: - - Striped: - -
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - - - + + + + + Row Border in DataGrid - jQuery EasyUI Demo + + + + + + + +

Row Border in DataGrid

+

This sample shows how to change the row border style of datagrid.

+
+ Border: + + Striped: + +
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/rowediting.html b/vendor/FHC-vendor/easyui/demo/datagrid/rowediting.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/rowediting.html rename to vendor/FHC-vendor/easyui/demo/datagrid/rowediting.html index ace946754..ab8c4d1d4 --- a/vendor/easyui/demo/datagrid/rowediting.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/rowediting.html @@ -1,118 +1,118 @@ - - - - - Row Editing in DataGrid - jQuery EasyUI Demo - - - - - - - -

Row Editing in DataGrid

-

Click the row to start editing.

-
- - - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- -
- Append - Remove - Accept - Reject - GetChanges -
- - - + + + + + Row Editing in DataGrid - jQuery EasyUI Demo + + + + + + + +

Row Editing in DataGrid

+

Click the row to start editing.

+
+ + + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ +
+ Append + Remove + Accept + Reject + GetChanges +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/rowstyle.html b/vendor/FHC-vendor/easyui/demo/datagrid/rowstyle.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/rowstyle.html rename to vendor/FHC-vendor/easyui/demo/datagrid/rowstyle.html index d4e36a877..d65a5c805 --- a/vendor/easyui/demo/datagrid/rowstyle.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/rowstyle.html @@ -1,41 +1,41 @@ - - - - - DataGrid Row Style - jQuery EasyUI Demo - - - - - - - -

DataGrid Row Style

-

The rows which listprice value is less than 30 are highlighted.

-
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + DataGrid Row Style - jQuery EasyUI Demo + + + + + + + +

DataGrid Row Style

+

The rows which listprice value is less than 30 are highlighted.

+
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/selection.html b/vendor/FHC-vendor/easyui/demo/datagrid/selection.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/selection.html rename to vendor/FHC-vendor/easyui/demo/datagrid/selection.html index d6b4047bc..111856143 --- a/vendor/easyui/demo/datagrid/selection.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/selection.html @@ -1,57 +1,57 @@ - - - - - DataGrid Selection - jQuery EasyUI Demo - - - - - - - -

DataGrid Selection

-

Choose a selection mode and select one or more rows.

-
- GetSelected - GetSelections -
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
-
- Selection Mode: - -
- - + + + + + DataGrid Selection - jQuery EasyUI Demo + + + + + + + +

DataGrid Selection

+

Choose a selection mode and select one or more rows.

+
+ GetSelected + GetSelections +
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+
+ Selection Mode: + +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/simpletoolbar.html b/vendor/FHC-vendor/easyui/demo/datagrid/simpletoolbar.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/simpletoolbar.html rename to vendor/FHC-vendor/easyui/demo/datagrid/simpletoolbar.html index 4c67f56e7..cbb918b85 --- a/vendor/easyui/demo/datagrid/simpletoolbar.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/simpletoolbar.html @@ -1,45 +1,45 @@ - - - - - DataGrid with Toolbar - jQuery EasyUI Demo - - - - - - - -

DataGrid with Toolbar

-

Put buttons on top toolbar of DataGrid.

-
- - - - - - - - - - - -
Item IDProductList PriceUnit CostAttributeStatus
- - + + + + + DataGrid with Toolbar - jQuery EasyUI Demo + + + + + + + +

DataGrid with Toolbar

+

Put buttons on top toolbar of DataGrid.

+
+ + + + + + + + + + + +
Item IDProductList PriceUnit CostAttributeStatus
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datagrid/transform.html b/vendor/FHC-vendor/easyui/demo/datagrid/transform.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datagrid/transform.html rename to vendor/FHC-vendor/easyui/demo/datagrid/transform.html index 9379832ae..ddc3a3049 --- a/vendor/easyui/demo/datagrid/transform.html +++ b/vendor/FHC-vendor/easyui/demo/datagrid/transform.html @@ -1,46 +1,46 @@ - - - - - Transform DataGrid from Table - jQuery EasyUI Demo - - - - - - - -

Transform DataGrid from Table

-

Transform DataGrid from an existing, unformatted html table.

-
- Transform -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Item IDProductList PriceAttribute
EST-1FI-SW-0136.50Large
EST-10K9-DL-0118.50Spotted Adult Female
EST-11RP-SN-0128.50Venomless
EST-12RP-SN-0126.50Rattleless
EST-13RP-LI-0235.50Green Adult
- + + + + + Transform DataGrid from Table - jQuery EasyUI Demo + + + + + + + +

Transform DataGrid from Table

+

Transform DataGrid from an existing, unformatted html table.

+
+ Transform +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Item IDProductList PriceAttribute
EST-1FI-SW-0136.50Large
EST-10K9-DL-0118.50Spotted Adult Female
EST-11RP-SN-0128.50Venomless
EST-12RP-SN-0126.50Rattleless
EST-13RP-LI-0235.50Green Adult
+ \ No newline at end of file diff --git a/vendor/easyui/demo/datalist/basic.html b/vendor/FHC-vendor/easyui/demo/datalist/basic.html similarity index 100% rename from vendor/easyui/demo/datalist/basic.html rename to vendor/FHC-vendor/easyui/demo/datalist/basic.html diff --git a/vendor/easyui/demo/datalist/checkbox.html b/vendor/FHC-vendor/easyui/demo/datalist/checkbox.html similarity index 100% rename from vendor/easyui/demo/datalist/checkbox.html rename to vendor/FHC-vendor/easyui/demo/datalist/checkbox.html diff --git a/vendor/easyui/demo/datalist/datalist_data1.json b/vendor/FHC-vendor/easyui/demo/datalist/datalist_data1.json similarity index 100% rename from vendor/easyui/demo/datalist/datalist_data1.json rename to vendor/FHC-vendor/easyui/demo/datalist/datalist_data1.json diff --git a/vendor/easyui/demo/datalist/group.html b/vendor/FHC-vendor/easyui/demo/datalist/group.html similarity index 100% rename from vendor/easyui/demo/datalist/group.html rename to vendor/FHC-vendor/easyui/demo/datalist/group.html diff --git a/vendor/easyui/demo/datalist/multiselect.html b/vendor/FHC-vendor/easyui/demo/datalist/multiselect.html similarity index 100% rename from vendor/easyui/demo/datalist/multiselect.html rename to vendor/FHC-vendor/easyui/demo/datalist/multiselect.html diff --git a/vendor/easyui/demo/datalist/remotedata.html b/vendor/FHC-vendor/easyui/demo/datalist/remotedata.html similarity index 100% rename from vendor/easyui/demo/datalist/remotedata.html rename to vendor/FHC-vendor/easyui/demo/datalist/remotedata.html diff --git a/vendor/easyui/demo/datebox/basic.html b/vendor/FHC-vendor/easyui/demo/datebox/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/basic.html rename to vendor/FHC-vendor/easyui/demo/datebox/basic.html index 2a55d8c03..eb3417b9d --- a/vendor/easyui/demo/datebox/basic.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/basic.html @@ -1,18 +1,18 @@ - - - - - Basic DateBox - jQuery EasyUI Demo - - - - - - - -

Basic DateBox

-

Click the calendar image on the right side.

-
- - + + + + + Basic DateBox - jQuery EasyUI Demo + + + + + + + +

Basic DateBox

+

Click the calendar image on the right side.

+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/buttons.html b/vendor/FHC-vendor/easyui/demo/datebox/buttons.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/buttons.html rename to vendor/FHC-vendor/easyui/demo/datebox/buttons.html index 357316c4a..7ba5e5c4a --- a/vendor/easyui/demo/datebox/buttons.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/buttons.html @@ -1,28 +1,28 @@ - - - - - DateBox Buttons - jQuery EasyUI Demo - - - - - - - -

DateBox Buttons

-

This example shows how to customize the datebox buttons underneath the calendar.

-
- - - - + + + + + DateBox Buttons - jQuery EasyUI Demo + + + + + + + +

DateBox Buttons

+

This example shows how to customize the datebox buttons underneath the calendar.

+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/clone.html b/vendor/FHC-vendor/easyui/demo/datebox/clone.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/clone.html rename to vendor/FHC-vendor/easyui/demo/datebox/clone.html index 75948b035..1decfa701 --- a/vendor/easyui/demo/datebox/clone.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/clone.html @@ -1,27 +1,27 @@ - - - - - Clone DateBox - jQuery EasyUI Demo - - - - - - - -

Clone DateBox

-

Click the 'Clone' button to clone datebox components from the exiting datebox.

-
- Clone -
- -
- - + + + + + Clone DateBox - jQuery EasyUI Demo + + + + + + + +

Clone DateBox

+

Click the 'Clone' button to clone datebox components from the exiting datebox.

+
+ Clone +
+ +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/dateformat.html b/vendor/FHC-vendor/easyui/demo/datebox/dateformat.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/dateformat.html rename to vendor/FHC-vendor/easyui/demo/datebox/dateformat.html index 5aff0440e..ead2064e0 --- a/vendor/easyui/demo/datebox/dateformat.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/dateformat.html @@ -1,39 +1,39 @@ - - - - - Date Format - jQuery EasyUI Demo - - - - - - - -

Date Format

-

Different date formats are applied to different DateBox components.

-
- - - - + + + + + Date Format - jQuery EasyUI Demo + + + + + + + +

Date Format

+

Different date formats are applied to different DateBox components.

+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/events.html b/vendor/FHC-vendor/easyui/demo/datebox/events.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/events.html rename to vendor/FHC-vendor/easyui/demo/datebox/events.html index 21d1c6ef4..bf5c912cf --- a/vendor/easyui/demo/datebox/events.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/events.html @@ -1,27 +1,27 @@ - - - - - DateBox Events - jQuery EasyUI Demo - - - - - - - -

DateBox Events

-

Click the calendar image on the right side.

-
- -
- Selected Date: - -
- - + + + + + DateBox Events - jQuery EasyUI Demo + + + + + + + +

DateBox Events

+

Click the calendar image on the right side.

+
+ +
+ Selected Date: + +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/fluid.html b/vendor/FHC-vendor/easyui/demo/datebox/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/fluid.html rename to vendor/FHC-vendor/easyui/demo/datebox/fluid.html index fdf40ac67..b30f70ae9 --- a/vendor/easyui/demo/datebox/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid DateBox - jQuery EasyUI Demo - - - - - - - -

Fluid DateBox

-

This example shows how to set the width of DateBox to a percentage of its parent container.

-
-

width: 50%

- -

width: 30%

- - + + + + + Fluid DateBox - jQuery EasyUI Demo + + + + + + + +

Fluid DateBox

+

This example shows how to set the width of DateBox to a percentage of its parent container.

+
+

width: 50%

+ +

width: 30%

+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/restrict.html b/vendor/FHC-vendor/easyui/demo/datebox/restrict.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/restrict.html rename to vendor/FHC-vendor/easyui/demo/datebox/restrict.html index 3a4b10597..84c8884d8 --- a/vendor/easyui/demo/datebox/restrict.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/restrict.html @@ -1,30 +1,30 @@ - - - - - Restrict Date Range in DateBox - jQuery EasyUI Demo - - - - - - - -

Restrict Date Range in DateBox

-

This example shows how to restrict the user to select only ten days from now.

-
- - - + + + + + Restrict Date Range in DateBox - jQuery EasyUI Demo + + + + + + + +

Restrict Date Range in DateBox

+

This example shows how to restrict the user to select only ten days from now.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/datebox/sharedcalendar.html b/vendor/FHC-vendor/easyui/demo/datebox/sharedcalendar.html similarity index 100% rename from vendor/easyui/demo/datebox/sharedcalendar.html rename to vendor/FHC-vendor/easyui/demo/datebox/sharedcalendar.html diff --git a/vendor/easyui/demo/datebox/validate.html b/vendor/FHC-vendor/easyui/demo/datebox/validate.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datebox/validate.html rename to vendor/FHC-vendor/easyui/demo/datebox/validate.html index ae45228d8..fae9b070c --- a/vendor/easyui/demo/datebox/validate.html +++ b/vendor/FHC-vendor/easyui/demo/datebox/validate.html @@ -1,30 +1,30 @@ - - - - - Validate DateBox - jQuery EasyUI Demo - - - - - - - -

Validate DateBox

-

When the selected date is greater than specified date. The field validator will raise an error.

-
- - - + + + + + Validate DateBox - jQuery EasyUI Demo + + + + + + + +

Validate DateBox

+

When the selected date is greater than specified date. The field validator will raise an error.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/datetimebox/basic.html b/vendor/FHC-vendor/easyui/demo/datetimebox/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datetimebox/basic.html rename to vendor/FHC-vendor/easyui/demo/datetimebox/basic.html index fa92ff3fe..a09f2452c --- a/vendor/easyui/demo/datetimebox/basic.html +++ b/vendor/FHC-vendor/easyui/demo/datetimebox/basic.html @@ -1,18 +1,18 @@ - - - - - Basic DateTimeBox - jQuery EasyUI Demo - - - - - - - -

Basic DateTimeBox

-

Click the calendar image on the right side.

-
- - + + + + + Basic DateTimeBox - jQuery EasyUI Demo + + + + + + + +

Basic DateTimeBox

+

Click the calendar image on the right side.

+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datetimebox/fluid.html b/vendor/FHC-vendor/easyui/demo/datetimebox/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datetimebox/fluid.html rename to vendor/FHC-vendor/easyui/demo/datetimebox/fluid.html index af4f08fa5..87b1ca208 --- a/vendor/easyui/demo/datetimebox/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/datetimebox/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid DateTimeBox - jQuery EasyUI Demo - - - - - - - -

Fluid DateTimeBox

-

This example shows how to set the width of DateTimeBox to a percentage of its parent container.

-
-

width: 50%

- -

width: 30%

- - + + + + + Fluid DateTimeBox - jQuery EasyUI Demo + + + + + + + +

Fluid DateTimeBox

+

This example shows how to set the width of DateTimeBox to a percentage of its parent container.

+
+

width: 50%

+ +

width: 30%

+ + \ No newline at end of file diff --git a/vendor/easyui/demo/datetimebox/initvalue.html b/vendor/FHC-vendor/easyui/demo/datetimebox/initvalue.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datetimebox/initvalue.html rename to vendor/FHC-vendor/easyui/demo/datetimebox/initvalue.html index 26f6c61cf..c9d2e11d0 --- a/vendor/easyui/demo/datetimebox/initvalue.html +++ b/vendor/FHC-vendor/easyui/demo/datetimebox/initvalue.html @@ -1,19 +1,19 @@ - - - - - Initialize Value for DateTime - jQuery EasyUI Demo - - - - - - - -

Initialize Value for DateTime

-

The value is initialized when DateTimeBox has been created.

-
- - - + + + + + Initialize Value for DateTime - jQuery EasyUI Demo + + + + + + + +

Initialize Value for DateTime

+

The value is initialized when DateTimeBox has been created.

+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/datetimebox/showseconds.html b/vendor/FHC-vendor/easyui/demo/datetimebox/showseconds.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/datetimebox/showseconds.html rename to vendor/FHC-vendor/easyui/demo/datetimebox/showseconds.html index 938d9b897..54f9c3725 --- a/vendor/easyui/demo/datetimebox/showseconds.html +++ b/vendor/FHC-vendor/easyui/demo/datetimebox/showseconds.html @@ -1,22 +1,22 @@ - - - - - Display Seconds - jQuery EasyUI Demo - - - - - - - -

Display Seconds

-

The user can decide to display seconds part or not.

-
- Show Seconds: - -
- - - + + + + + Display Seconds - jQuery EasyUI Demo + + + + + + + +

Display Seconds

+

The user can decide to display seconds part or not.

+
+ Show Seconds: + +
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/datetimespinner/basic.html b/vendor/FHC-vendor/easyui/demo/datetimespinner/basic.html similarity index 100% rename from vendor/easyui/demo/datetimespinner/basic.html rename to vendor/FHC-vendor/easyui/demo/datetimespinner/basic.html diff --git a/vendor/easyui/demo/datetimespinner/clearicon.html b/vendor/FHC-vendor/easyui/demo/datetimespinner/clearicon.html similarity index 100% rename from vendor/easyui/demo/datetimespinner/clearicon.html rename to vendor/FHC-vendor/easyui/demo/datetimespinner/clearicon.html diff --git a/vendor/easyui/demo/datetimespinner/fluid.html b/vendor/FHC-vendor/easyui/demo/datetimespinner/fluid.html similarity index 100% rename from vendor/easyui/demo/datetimespinner/fluid.html rename to vendor/FHC-vendor/easyui/demo/datetimespinner/fluid.html diff --git a/vendor/easyui/demo/datetimespinner/format.html b/vendor/FHC-vendor/easyui/demo/datetimespinner/format.html similarity index 100% rename from vendor/easyui/demo/datetimespinner/format.html rename to vendor/FHC-vendor/easyui/demo/datetimespinner/format.html diff --git a/vendor/easyui/demo/demo.css b/vendor/FHC-vendor/easyui/demo/demo.css old mode 100755 new mode 100644 similarity index 93% rename from vendor/easyui/demo/demo.css rename to vendor/FHC-vendor/easyui/demo/demo.css index 72ffb547d..5c0146769 --- a/vendor/easyui/demo/demo.css +++ b/vendor/FHC-vendor/easyui/demo/demo.css @@ -1,21 +1,21 @@ -*{ - font-size:12px; -} -body { - font-family:verdana,helvetica,arial,sans-serif; - padding:20px; - font-size:12px; - margin:0; -} -h2 { - font-size:18px; - font-weight:bold; - margin:0; - margin-bottom:15px; -} -.demo-info{ - padding:0 0 12px 0; -} -.demo-tip{ - display:none; -} +*{ + font-size:12px; +} +body { + font-family:verdana,helvetica,arial,sans-serif; + padding:20px; + font-size:12px; + margin:0; +} +h2 { + font-size:18px; + font-weight:bold; + margin:0; + margin-bottom:15px; +} +.demo-info{ + padding:0 0 12px 0; +} +.demo-tip{ + display:none; +} diff --git a/vendor/easyui/demo/dialog/basic.html b/vendor/FHC-vendor/easyui/demo/dialog/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/dialog/basic.html rename to vendor/FHC-vendor/easyui/demo/dialog/basic.html index 37ca83059..e745b373c --- a/vendor/easyui/demo/dialog/basic.html +++ b/vendor/FHC-vendor/easyui/demo/dialog/basic.html @@ -1,23 +1,23 @@ - - - - - Basic Dialog - jQuery EasyUI Demo - - - - - - - -

Basic Dialog

-

Click below button to open or close dialog.

-
- Open - Close -
-
- The dialog content. -
- + + + + + Basic Dialog - jQuery EasyUI Demo + + + + + + + +

Basic Dialog

+

Click below button to open or close dialog.

+
+ Open + Close +
+
+ The dialog content. +
+ \ No newline at end of file diff --git a/vendor/easyui/demo/dialog/complextoolbar.html b/vendor/FHC-vendor/easyui/demo/dialog/complextoolbar.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/dialog/complextoolbar.html rename to vendor/FHC-vendor/easyui/demo/dialog/complextoolbar.html index adaa97b7b..175fa731f --- a/vendor/easyui/demo/dialog/complextoolbar.html +++ b/vendor/FHC-vendor/easyui/demo/dialog/complextoolbar.html @@ -1,46 +1,46 @@ - - - - - Complex Toolbar on Dialog - jQuery EasyUI Demo - - - - - - - -

Complex Toolbar on Dialog

-

This sample shows how to create complex toolbar on dialog.

-
- Open - Close -
-
- The dialog content. -
-
- - - - - -
- Edit - Help - - -
-
-
- Save - Close -
- - + + + + + Complex Toolbar on Dialog - jQuery EasyUI Demo + + + + + + + +

Complex Toolbar on Dialog

+

This sample shows how to create complex toolbar on dialog.

+
+ Open + Close +
+
+ The dialog content. +
+
+ + + + + +
+ Edit + Help + + +
+
+
+ Save + Close +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/dialog/fluid.html b/vendor/FHC-vendor/easyui/demo/dialog/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/dialog/fluid.html rename to vendor/FHC-vendor/easyui/demo/dialog/fluid.html index f64f72e0d..b9809f06e --- a/vendor/easyui/demo/dialog/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/dialog/fluid.html @@ -1,24 +1,24 @@ - - - - - Fluid Dialog - jQuery EasyUI Demo - - - - - - - -

Fluid Dialog

-

This example shows how to set the width of Dialog to a percentage of its parent container.

-
-
-

width: 80%; height: 200px

-
- + + + + + Fluid Dialog - jQuery EasyUI Demo + + + + + + + +

Fluid Dialog

+

This example shows how to set the width of Dialog to a percentage of its parent container.

+
+
+

width: 80%; height: 200px

+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/dialog/toolbarbuttons.html b/vendor/FHC-vendor/easyui/demo/dialog/toolbarbuttons.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/dialog/toolbarbuttons.html rename to vendor/FHC-vendor/easyui/demo/dialog/toolbarbuttons.html index 12e230758..35013a5aa --- a/vendor/easyui/demo/dialog/toolbarbuttons.html +++ b/vendor/FHC-vendor/easyui/demo/dialog/toolbarbuttons.html @@ -1,52 +1,52 @@ - - - - - Toolbar and Buttons - jQuery EasyUI Demo - - - - - - - -

Toolbar and Buttons

-

The toolbar and buttons can be added to dialog.

-
- Open - Close -
-
- The dialog content. -
- - + + + + + Toolbar and Buttons - jQuery EasyUI Demo + + + + + + + +

Toolbar and Buttons

+

The toolbar and buttons can be added to dialog.

+
+ Open + Close +
+
+ The dialog content. +
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/draggable/basic.html b/vendor/FHC-vendor/easyui/demo/draggable/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/draggable/basic.html rename to vendor/FHC-vendor/easyui/demo/draggable/basic.html index 3a73cf230..0c96a0598 --- a/vendor/easyui/demo/draggable/basic.html +++ b/vendor/FHC-vendor/easyui/demo/draggable/basic.html @@ -1,21 +1,21 @@ - - - - - Basic Draggable - jQuery EasyUI Demo - - - - - - - -

Basic Draggable

-

Move the boxes below by clicking on it with mouse.

-
-
-
-
Title
-
- + + + + + Basic Draggable - jQuery EasyUI Demo + + + + + + + +

Basic Draggable

+

Move the boxes below by clicking on it with mouse.

+
+
+
+
Title
+
+ \ No newline at end of file diff --git a/vendor/easyui/demo/draggable/constrain.html b/vendor/FHC-vendor/easyui/demo/draggable/constrain.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/draggable/constrain.html rename to vendor/FHC-vendor/easyui/demo/draggable/constrain.html index b72e3ff44..a2dfa6cc2 --- a/vendor/easyui/demo/draggable/constrain.html +++ b/vendor/FHC-vendor/easyui/demo/draggable/constrain.html @@ -1,35 +1,35 @@ - - - - - Constrain Draggable - jQuery EasyUI Demo - - - - - - - -

Constrain Draggable

-

The draggable object can only be moved within its parent container.

-
-
-
-
-
- - - + + + + + Constrain Draggable - jQuery EasyUI Demo + + + + + + + +

Constrain Draggable

+

The draggable object can only be moved within its parent container.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/draggable/snap.html b/vendor/FHC-vendor/easyui/demo/draggable/snap.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/draggable/snap.html rename to vendor/FHC-vendor/easyui/demo/draggable/snap.html index c3ddd0584..5f0103a7a --- a/vendor/easyui/demo/draggable/snap.html +++ b/vendor/FHC-vendor/easyui/demo/draggable/snap.html @@ -1,37 +1,37 @@ - - - - - Snap Draggable - jQuery EasyUI Demo - - - - - - - -

Snap Draggable

-

This sample shows how to snap a draggable object to a 20x20 grid.

-
-
-
-
-
- - - + + + + + Snap Draggable - jQuery EasyUI Demo + + + + + + + +

Snap Draggable

+

This sample shows how to snap a draggable object to a 20x20 grid.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/droppable/accept.html b/vendor/FHC-vendor/easyui/demo/droppable/accept.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/droppable/accept.html rename to vendor/FHC-vendor/easyui/demo/droppable/accept.html index 8da0d42cd..cf56d084b --- a/vendor/easyui/demo/droppable/accept.html +++ b/vendor/FHC-vendor/easyui/demo/droppable/accept.html @@ -1,78 +1,78 @@ - - - - - Accept a Drop - jQuery EasyUI Demo - - - - - - - -

Accept a Drop

-

Some draggable object can not be accepted.

-
-
- drag me! -
Drag 1
-
Drag 2
-
Drag 3
-
-
- drop here! -
-
- - - - + + + + + Accept a Drop - jQuery EasyUI Demo + + + + + + + +

Accept a Drop

+

Some draggable object can not be accepted.

+
+
+ drag me! +
Drag 1
+
Drag 2
+
Drag 3
+
+
+ drop here! +
+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/droppable/basic.html b/vendor/FHC-vendor/easyui/demo/droppable/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/droppable/basic.html rename to vendor/FHC-vendor/easyui/demo/droppable/basic.html index 7738c0688..ecf803a93 --- a/vendor/easyui/demo/droppable/basic.html +++ b/vendor/FHC-vendor/easyui/demo/droppable/basic.html @@ -1,77 +1,77 @@ - - - - - Basic Droppable - jQuery EasyUI Demo - - - - - - - -

Basic Droppable

-

Drag the boxed on left to the target area on right.

-
-
-
Source
-
-
Apple
-
Peach
-
Orange
-
-
-
-
Target
-
-
-
-
- - - + + + + + Basic Droppable - jQuery EasyUI Demo + + + + + + + +

Basic Droppable

+

Drag the boxed on left to the target area on right.

+
+
+
Source
+
+
Apple
+
Peach
+
Orange
+
+
+
+
Target
+
+
+
+
+ + + \ No newline at end of file diff --git a/vendor/easyui/demo/droppable/sort.html b/vendor/FHC-vendor/easyui/demo/droppable/sort.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/droppable/sort.html rename to vendor/FHC-vendor/easyui/demo/droppable/sort.html index 1d99cd822..37c0d2f41 --- a/vendor/easyui/demo/droppable/sort.html +++ b/vendor/FHC-vendor/easyui/demo/droppable/sort.html @@ -1,71 +1,71 @@ - - - - - Change Items Order - jQuery EasyUI Demo - - - - - - - -

Change Items Order

-

Drag the list items to change their order.

-
- - - - - + + + + + Change Items Order - jQuery EasyUI Demo + + + + + + + +

Change Items Order

+

Drag the list items to change their order.

+
+ + + + + \ No newline at end of file diff --git a/vendor/easyui/demo/easyloader/basic.html b/vendor/FHC-vendor/easyui/demo/easyloader/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/easyloader/basic.html rename to vendor/FHC-vendor/easyui/demo/easyloader/basic.html index 0d7ba7b12..44a09ebba --- a/vendor/easyui/demo/easyloader/basic.html +++ b/vendor/FHC-vendor/easyui/demo/easyloader/basic.html @@ -1,75 +1,75 @@ - - - - - Basic EasyLoader - jQuery EasyUI Demo - - - - - - - -

Basic EasyLoader

-
-
-
Click the buttons below to load components dynamically.
-
-
- Load Calendar - Load Dialog - Load DataGrid -
-
-
-
- - - - + + + + + Basic EasyLoader - jQuery EasyUI Demo + + + + + + + +

Basic EasyLoader

+
+
+
Click the buttons below to load components dynamically.
+
+
+ Load Calendar + Load Dialog + Load DataGrid +
+
+
+
+ + + + \ No newline at end of file diff --git a/vendor/easyui/demo/filebox/basic.html b/vendor/FHC-vendor/easyui/demo/filebox/basic.html similarity index 100% rename from vendor/easyui/demo/filebox/basic.html rename to vendor/FHC-vendor/easyui/demo/filebox/basic.html diff --git a/vendor/easyui/demo/filebox/buttonalign.html b/vendor/FHC-vendor/easyui/demo/filebox/buttonalign.html similarity index 100% rename from vendor/easyui/demo/filebox/buttonalign.html rename to vendor/FHC-vendor/easyui/demo/filebox/buttonalign.html diff --git a/vendor/easyui/demo/filebox/fluid.html b/vendor/FHC-vendor/easyui/demo/filebox/fluid.html similarity index 100% rename from vendor/easyui/demo/filebox/fluid.html rename to vendor/FHC-vendor/easyui/demo/filebox/fluid.html diff --git a/vendor/easyui/demo/form/basic.html b/vendor/FHC-vendor/easyui/demo/form/basic.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/form/basic.html rename to vendor/FHC-vendor/easyui/demo/form/basic.html index 1aac45ff1..65e25c285 --- a/vendor/easyui/demo/form/basic.html +++ b/vendor/FHC-vendor/easyui/demo/form/basic.html @@ -1,59 +1,59 @@ - - - - - Basic Form - jQuery EasyUI Demo - - - - - - - -

Basic Form

-

Fill the form and submit it.

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - -
Name:
Email:
Subject:
Message:
Language: - -
-
-
- Submit - Clear -
-
-
- - + + + + + Basic Form - jQuery EasyUI Demo + + + + + + + +

Basic Form

+

Fill the form and submit it.

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
Name:
Email:
Subject:
Message:
Language: + +
+
+
+ Submit + Clear +
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/form/form_data1.json b/vendor/FHC-vendor/easyui/demo/form/form_data1.json old mode 100755 new mode 100644 similarity index 95% rename from vendor/easyui/demo/form/form_data1.json rename to vendor/FHC-vendor/easyui/demo/form/form_data1.json index 3a5856716..7103c8384 --- a/vendor/easyui/demo/form/form_data1.json +++ b/vendor/FHC-vendor/easyui/demo/form/form_data1.json @@ -1,7 +1,7 @@ -{ - "name":"easyui", - "email":"easyui@gmail.com", - "subject":"Subject Title", - "message":"Message Content", - "language":"de" +{ + "name":"easyui", + "email":"easyui@gmail.com", + "subject":"Subject Title", + "message":"Message Content", + "language":"de" } \ No newline at end of file diff --git a/vendor/easyui/demo/form/load.html b/vendor/FHC-vendor/easyui/demo/form/load.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/form/load.html rename to vendor/FHC-vendor/easyui/demo/form/load.html index c6689703c..8c0788da2 --- a/vendor/easyui/demo/form/load.html +++ b/vendor/FHC-vendor/easyui/demo/form/load.html @@ -1,68 +1,68 @@ - - - - - Load Form Data - jQuery EasyUI Demo - - - - - - - -

Load Form Data

-

Click the buttons below to load form data.

-
- LoadLocal - LoadRemote - Clear -
-
-
-
- - - - - - - - - - - - - - - - - - - - - -
Name:
Email:
Subject:
Message:
Language: - -
-
-
-
- - + + + + + Load Form Data - jQuery EasyUI Demo + + + + + + + +

Load Form Data

+

Click the buttons below to load form data.

+
+ LoadLocal + LoadRemote + Clear +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
Name:
Email:
Subject:
Message:
Language: + +
+
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/form/validateonsubmit.html b/vendor/FHC-vendor/easyui/demo/form/validateonsubmit.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/form/validateonsubmit.html rename to vendor/FHC-vendor/easyui/demo/form/validateonsubmit.html index 119206cc8..15f8c5dc3 --- a/vendor/easyui/demo/form/validateonsubmit.html +++ b/vendor/FHC-vendor/easyui/demo/form/validateonsubmit.html @@ -1,63 +1,63 @@ - - - - - Validate Form on Submit - jQuery EasyUI Demo - - - - - - - -

Validate Form on Submit

-

The form does not perform validation before being submitted.

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - -
Name:
Email:
Subject:
Message:
Language: - -
-
-
- Submit - Clear -
-
-
- - + + + + + Validate Form on Submit - jQuery EasyUI Demo + + + + + + + +

Validate Form on Submit

+

The form does not perform validation before being submitted.

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
Name:
Email:
Subject:
Message:
Language: + +
+
+
+ Submit + Clear +
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/_content.html b/vendor/FHC-vendor/easyui/demo/layout/_content.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/_content.html rename to vendor/FHC-vendor/easyui/demo/layout/_content.html index 76f2506a6..66c1bd5a1 --- a/vendor/easyui/demo/layout/_content.html +++ b/vendor/FHC-vendor/easyui/demo/layout/_content.html @@ -1,18 +1,18 @@ - - - - - AJAX Content - - -

jQuery EasyUI framework help you build your web page easily.

- - + + + + + AJAX Content + + +

jQuery EasyUI framework help you build your web page easily.

+ + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/addremove.html b/vendor/FHC-vendor/easyui/demo/layout/addremove.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/addremove.html rename to vendor/FHC-vendor/easyui/demo/layout/addremove.html index ede288918..34977c4b4 --- a/vendor/easyui/demo/layout/addremove.html +++ b/vendor/FHC-vendor/easyui/demo/layout/addremove.html @@ -1,53 +1,53 @@ - - - - - Add and Remove Layout - jQuery EasyUI Demo - - - - - - - -

Add and Remove Layout

-

Click the buttons below to add or remove region panel of layout.

-
- Select Region Panel: - - Add - Remove -
-
-
-
-
-
-
-
- - + + + + + Add and Remove Layout - jQuery EasyUI Demo + + + + + + + +

Add and Remove Layout

+

Click the buttons below to add or remove region panel of layout.

+
+ Select Region Panel: + + Add + Remove +
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/autoheight.html b/vendor/FHC-vendor/easyui/demo/layout/autoheight.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/autoheight.html rename to vendor/FHC-vendor/easyui/demo/layout/autoheight.html index b9ccc7e3d..0c882f2cc --- a/vendor/easyui/demo/layout/autoheight.html +++ b/vendor/FHC-vendor/easyui/demo/layout/autoheight.html @@ -1,59 +1,59 @@ - - - - - Auto Height for Layout - jQuery EasyUI Demo - - - - - - - -

Auto Height for Layout

-

This example shows how to auto adjust layout height after dynamically adding items.

-
- Add Item - Remove Item -
-
-
-
-
-
-

Panel Content.

-

Panel Content.

-

Panel Content.

-

Panel Content.

-

Panel Content.

-
-
- - + + + + + Auto Height for Layout - jQuery EasyUI Demo + + + + + + + +

Auto Height for Layout

+

This example shows how to auto adjust layout height after dynamically adding items.

+
+ Add Item + Remove Item +
+
+
+
+
+
+

Panel Content.

+

Panel Content.

+

Panel Content.

+

Panel Content.

+

Panel Content.

+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/basic.html b/vendor/FHC-vendor/easyui/demo/layout/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/basic.html rename to vendor/FHC-vendor/easyui/demo/layout/basic.html index f428724fe..29e2c393f --- a/vendor/easyui/demo/layout/basic.html +++ b/vendor/FHC-vendor/easyui/demo/layout/basic.html @@ -1,39 +1,39 @@ - - - - - Basic Layout - jQuery EasyUI Demo - - - - - - - -

Basic Layout

-

The layout contains north,south,west,east and center regions.

-
-
-
-
-
-
-
- - - - - - - - - - - -
Item IDProduct IDList PriceUnit CostAttributeStatus
-
-
- - + + + + + Basic Layout - jQuery EasyUI Demo + + + + + + + +

Basic Layout

+

The layout contains north,south,west,east and center regions.

+
+
+
+
+
+
+
+ + + + + + + + + + + +
Item IDProduct IDList PriceUnit CostAttributeStatus
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/collapsetitle.html b/vendor/FHC-vendor/easyui/demo/layout/collapsetitle.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/collapsetitle.html rename to vendor/FHC-vendor/easyui/demo/layout/collapsetitle.html index 0d103e65f..2c8a59705 --- a/vendor/easyui/demo/layout/collapsetitle.html +++ b/vendor/FHC-vendor/easyui/demo/layout/collapsetitle.html @@ -1,39 +1,39 @@ - - - - - Collapse Title in Layout - jQuery EasyUI Demo - - - - - - - -

Collapse Title in Layout

-

The title bar will display while collapse a region panel.

-
-
-
-
-
-
-
- - - - - - - - - - - -
Item IDProduct IDList PriceUnit CostAttributeStatus
-
-
- - + + + + + Collapse Title in Layout - jQuery EasyUI Demo + + + + + + + +

Collapse Title in Layout

+

The title bar will display while collapse a region panel.

+
+
+
+
+
+
+
+ + + + + + + + + + + +
Item IDProduct IDList PriceUnit CostAttributeStatus
+
+
+ + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/complex.html b/vendor/FHC-vendor/easyui/demo/layout/complex.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/complex.html rename to vendor/FHC-vendor/easyui/demo/layout/complex.html index 9d1ab66a0..833eb09f6 --- a/vendor/easyui/demo/layout/complex.html +++ b/vendor/FHC-vendor/easyui/demo/layout/complex.html @@ -1,57 +1,57 @@ - - - - - Complex Layout - jQuery EasyUI Demo - - - - - - - -

Complex Layout

-

This sample shows how to create a complex layout.

-
-
-
-
-
-
    -
    -
    -
    -
    - content1 -
    -
    - content2 -
    -
    - content3 -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - -
    Item IDProduct IDList PriceUnit CostAttributeStatus
    -
    -
    -
    -
    - + + + + + Complex Layout - jQuery EasyUI Demo + + + + + + + +

    Complex Layout

    +

    This sample shows how to create a complex layout.

    +
    +
    +
    +
    +
    +
      +
      +
      +
      +
      + content1 +
      +
      + content2 +
      +
      + content3 +
      +
      +
      +
      +
      +
      +
      + + + + + + + + + + + +
      Item IDProduct IDList PriceUnit CostAttributeStatus
      +
      +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/customcollapsetitle.html b/vendor/FHC-vendor/easyui/demo/layout/customcollapsetitle.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/layout/customcollapsetitle.html rename to vendor/FHC-vendor/easyui/demo/layout/customcollapsetitle.html index 945b6afaa..3a4517e66 --- a/vendor/easyui/demo/layout/customcollapsetitle.html +++ b/vendor/FHC-vendor/easyui/demo/layout/customcollapsetitle.html @@ -1,51 +1,51 @@ - - - - - Custom Collapse Title in Layout - jQuery EasyUI Demo - - - - - - - -

      Custom Collapse Title in Layout

      -

      Any components can display on the title bar of a collapsed panel.

      -
      -
      -
      -
      -
      - - - - - - - - - - - -
      Item IDProduct IDList PriceUnit CostAttributeStatus
      -
      -
      -
      - - Picture - Shapes - SmartArt - Chart -
      - + + + + + Custom Collapse Title in Layout - jQuery EasyUI Demo + + + + + + + +

      Custom Collapse Title in Layout

      +

      Any components can display on the title bar of a collapsed panel.

      +
      +
      +
      +
      +
      + + + + + + + + + + + +
      Item IDProduct IDList PriceUnit CostAttributeStatus
      +
      +
      +
      + + Picture + Shapes + SmartArt + Chart +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/datagrid_data1.json b/vendor/FHC-vendor/easyui/demo/layout/datagrid_data1.json old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/demo/layout/datagrid_data1.json rename to vendor/FHC-vendor/easyui/demo/layout/datagrid_data1.json index 63d647358..e9a5be2f8 --- a/vendor/easyui/demo/layout/datagrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/layout/datagrid_data1.json @@ -1,12 +1,12 @@ -{"total":28,"rows":[ - {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, - {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, - {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, - {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, - {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, - {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, - {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} -]} +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/vendor/easyui/demo/layout/fluid.html b/vendor/FHC-vendor/easyui/demo/layout/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/fluid.html rename to vendor/FHC-vendor/easyui/demo/layout/fluid.html index 8ddd50fc4..42f8c5525 --- a/vendor/easyui/demo/layout/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/layout/fluid.html @@ -1,24 +1,24 @@ - - - - - Fluid Layout - jQuery EasyUI Demo - - - - - - - -

      Fluid Layout

      -

      Percentage width of region panel in a layout.

      -
      -
      -
      -

      width: 30%

      -
      -
      -
      -
      - + + + + + Fluid Layout - jQuery EasyUI Demo + + + + + + + +

      Fluid Layout

      +

      Percentage width of region panel in a layout.

      +
      +
      +
      +

      width: 30%

      +
      +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/full.html b/vendor/FHC-vendor/easyui/demo/layout/full.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/layout/full.html rename to vendor/FHC-vendor/easyui/demo/layout/full.html index 13eb94ade..c83bf07db --- a/vendor/easyui/demo/layout/full.html +++ b/vendor/FHC-vendor/easyui/demo/layout/full.html @@ -1,19 +1,19 @@ - - - - - Full Layout - jQuery EasyUI Demo - - - - - - - -
      north region
      -
      west content
      -
      east region
      -
      south region
      -
      - + + + + + Full Layout - jQuery EasyUI Demo + + + + + + + +
      north region
      +
      west content
      +
      east region
      +
      south region
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/nestedlayout.html b/vendor/FHC-vendor/easyui/demo/layout/nestedlayout.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/nestedlayout.html rename to vendor/FHC-vendor/easyui/demo/layout/nestedlayout.html index b0e1b2c18..9a346b193 --- a/vendor/easyui/demo/layout/nestedlayout.html +++ b/vendor/FHC-vendor/easyui/demo/layout/nestedlayout.html @@ -1,31 +1,31 @@ - - - - - Nested Layout - jQuery EasyUI Demo - - - - - - - -

      Nested Layout

      -

      The layout region panel contains another layout or other components.

      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - + + + + + Nested Layout - jQuery EasyUI Demo + + + + + + + +

      Nested Layout

      +

      The layout region panel contains another layout or other components.

      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/nocollapsible.html b/vendor/FHC-vendor/easyui/demo/layout/nocollapsible.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/nocollapsible.html rename to vendor/FHC-vendor/easyui/demo/layout/nocollapsible.html index 5854b2d0b..a6914a035 --- a/vendor/easyui/demo/layout/nocollapsible.html +++ b/vendor/FHC-vendor/easyui/demo/layout/nocollapsible.html @@ -1,34 +1,34 @@ - - - - - No collapsible button in Layout - jQuery EasyUI Demo - - - - - - - -

      No collapsible button in Layout

      -

      The layout region panel has no collapsible button.

      -
      -
      -
      -
      -
      - -
      -
      -
      -
      -
      - - + + + + + No collapsible button in Layout - jQuery EasyUI Demo + + + + + + + +

      No collapsible button in Layout

      +

      The layout region panel has no collapsible button.

      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/layout/propertygrid_data1.json b/vendor/FHC-vendor/easyui/demo/layout/propertygrid_data1.json old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/layout/propertygrid_data1.json rename to vendor/FHC-vendor/easyui/demo/layout/propertygrid_data1.json index a458d83fc..12b2d0074 --- a/vendor/easyui/demo/layout/propertygrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/layout/propertygrid_data1.json @@ -1,20 +1,20 @@ -{"total":7,"rows":[ - {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, - {"name":"Address","value":"","group":"ID Settings","editor":"text"}, - {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, - {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, - {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, - {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ - "type":"validatebox", - "options":{ - "validType":"email" - } - }}, - {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ - "type":"checkbox", - "options":{ - "on":true, - "off":false - } - }} +{"total":7,"rows":[ + {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, + {"name":"Address","value":"","group":"ID Settings","editor":"text"}, + {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, + {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, + {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, + {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ + "type":"validatebox", + "options":{ + "validType":"email" + } + }}, + {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ + "type":"checkbox", + "options":{ + "on":true, + "off":false + } + }} ]} \ No newline at end of file diff --git a/vendor/easyui/demo/layout/tree_data1.json b/vendor/FHC-vendor/easyui/demo/layout/tree_data1.json old mode 100755 new mode 100644 similarity index 93% rename from vendor/easyui/demo/layout/tree_data1.json rename to vendor/FHC-vendor/easyui/demo/layout/tree_data1.json index e0c619226..83fb0d619 --- a/vendor/easyui/demo/layout/tree_data1.json +++ b/vendor/FHC-vendor/easyui/demo/layout/tree_data1.json @@ -1,49 +1,49 @@ -[{ - "id":1, - "text":"My Documents", - "children":[{ - "id":11, - "text":"Photos", - "state":"closed", - "children":[{ - "id":111, - "text":"Friend" - },{ - "id":112, - "text":"Wife" - },{ - "id":113, - "text":"Company" - }] - },{ - "id":12, - "text":"Program Files", - "children":[{ - "id":121, - "text":"Intel" - },{ - "id":122, - "text":"Java", - "attributes":{ - "p1":"Custom Attribute1", - "p2":"Custom Attribute2" - } - },{ - "id":123, - "text":"Microsoft Office" - },{ - "id":124, - "text":"Games", - "checked":true - }] - },{ - "id":13, - "text":"index.html" - },{ - "id":14, - "text":"about.html" - },{ - "id":15, - "text":"welcome.html" - }] -}] +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/vendor/easyui/demo/linkbutton/basic.html b/vendor/FHC-vendor/easyui/demo/linkbutton/basic.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/linkbutton/basic.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/basic.html index d46c47f63..741d68c49 --- a/vendor/easyui/demo/linkbutton/basic.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/basic.html @@ -1,33 +1,33 @@ - - - - - Basic LinkButton - jQuery EasyUI Demo - - - - - - - -

      Basic LinkButton

      -

      Buttons can be created from <a> or <button> elements.

      -
      -

      Basic Buttons

      -
      - Add - Remove - Save - Cut - Text Button -
      -

      Fixed Width Buttons

      -
      - Search - Print - Reload - Help -
      - - + + + + + Basic LinkButton - jQuery EasyUI Demo + + + + + + + +

      Basic LinkButton

      +

      Buttons can be created from <a> or <button> elements.

      +
      +

      Basic Buttons

      +
      + Add + Remove + Save + Cut + Text Button +
      +

      Fixed Width Buttons

      +
      + Search + Print + Reload + Help +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/fluid.html b/vendor/FHC-vendor/easyui/demo/linkbutton/fluid.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/linkbutton/fluid.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/fluid.html index cb033e774..b1027b99e --- a/vendor/easyui/demo/linkbutton/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/fluid.html @@ -1,33 +1,33 @@ - - - - - Fluid LinkButton - jQuery EasyUI Demo - - - - - - - -

      Fluid LinkButton

      -

      This example shows how to set the width of LinkButton to a percentage of its parent container.

      -
      -

      width: 15%

      -
      - Add - Remove - Save - Cut - Text Button -
      -

      width: 20%

      -
      - Search - Print - Reload - Help -
      - - + + + + + Fluid LinkButton - jQuery EasyUI Demo + + + + + + + +

      Fluid LinkButton

      +

      This example shows how to set the width of LinkButton to a percentage of its parent container.

      +
      +

      width: 15%

      +
      + Add + Remove + Save + Cut + Text Button +
      +

      width: 20%

      +
      + Search + Print + Reload + Help +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/group.html b/vendor/FHC-vendor/easyui/demo/linkbutton/group.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/linkbutton/group.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/group.html index 4c1293d9b..852db671d --- a/vendor/easyui/demo/linkbutton/group.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/group.html @@ -1,33 +1,33 @@ - - - - - Button Group - jQuery EasyUI Demo - - - - - - - -

      Button Group

      -

      In a button group only one button can be selected.

      -
      -
      - Button 1 - Button 2 - Button 3 - Button 4 - Button 5 -
      -
      -
      - Button 1 - Button 2 - Button 3 - Button 4 - Button 5 -
      - - + + + + + Button Group - jQuery EasyUI Demo + + + + + + + +

      Button Group

      +

      In a button group only one button can be selected.

      +
      +
      + Button 1 + Button 2 + Button 3 + Button 4 + Button 5 +
      +
      +
      + Button 1 + Button 2 + Button 3 + Button 4 + Button 5 +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/iconalign.html b/vendor/FHC-vendor/easyui/demo/linkbutton/iconalign.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/linkbutton/iconalign.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/iconalign.html index 21835f089..99a8ec2c2 --- a/vendor/easyui/demo/linkbutton/iconalign.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/iconalign.html @@ -1,32 +1,32 @@ - - - - - Icon Align on LinkButton - jQuery EasyUI Demo - - - - - - - -

      Icon Align on LinkButton

      -

      Change the icon align to place icon on left, right, top or bottom of button.

      -
      -
      - Select Icon Align: - -
      -
      - Add - Remove - Save - Cut -
      - + + + + + Icon Align on LinkButton - jQuery EasyUI Demo + + + + + + + +

      Icon Align on LinkButton

      +

      Change the icon align to place icon on left, right, top or bottom of button.

      +
      +
      + Select Icon Align: + +
      +
      + Add + Remove + Save + Cut +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/plain.html b/vendor/FHC-vendor/easyui/demo/linkbutton/plain.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/linkbutton/plain.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/plain.html index 71c89cd65..0143c20e5 --- a/vendor/easyui/demo/linkbutton/plain.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/plain.html @@ -1,28 +1,28 @@ - - - - - Plain LinkButton - jQuery EasyUI Demo - - - - - - - -

      Plain LinkButton

      -

      The buttons with plain style have transparent background.

      -
      -
      - Cancel - Refresh - Search - Text Button - Print - - - -
      - - + + + + + Plain LinkButton - jQuery EasyUI Demo + + + + + + + +

      Plain LinkButton

      +

      The buttons with plain style have transparent background.

      +
      +
      + Cancel + Refresh + Search + Text Button + Print + + + +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/size.html b/vendor/FHC-vendor/easyui/demo/linkbutton/size.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/linkbutton/size.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/size.html index 3e121bb4c..265ecb58b --- a/vendor/easyui/demo/linkbutton/size.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/size.html @@ -1,34 +1,34 @@ - - - - - LinkButton Size - jQuery EasyUI Demo - - - - - - - -

      LinkButton Size

      -

      This sample shows how to display small buttons and large buttons.

      -
      -

      Small Buttons

      -
      - Add - Remove - Save - Cut - Text Button -
      -

      Large Buttons

      -
      - Picture - Clip Art - Shapes - SmartArt - Chart -
      - - + + + + + LinkButton Size - jQuery EasyUI Demo + + + + + + + +

      LinkButton Size

      +

      This sample shows how to display small buttons and large buttons.

      +
      +

      Small Buttons

      +
      + Add + Remove + Save + Cut + Text Button +
      +

      Large Buttons

      +
      + Picture + Clip Art + Shapes + SmartArt + Chart +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/style.html b/vendor/FHC-vendor/easyui/demo/linkbutton/style.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/linkbutton/style.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/style.html index fe61dd927..fd46c2bfc --- a/vendor/easyui/demo/linkbutton/style.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/style.html @@ -1,31 +1,31 @@ - - - - - Style LinkButton - jQuery EasyUI Demo - - - - - - - -

      Style LinkButton

      -

      This example shows how to style a linkbutton.

      -
      -
      - Button1 - Button2 - Button3 - Button4 -
      -
      - Button5 - Button6 - Button7 - Button8 -
      - - - + + + + + Style LinkButton - jQuery EasyUI Demo + + + + + + + +

      Style LinkButton

      +

      This example shows how to style a linkbutton.

      +
      +
      + Button1 + Button2 + Button3 + Button4 +
      +
      + Button5 + Button6 + Button7 + Button8 +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/linkbutton/toggle.html b/vendor/FHC-vendor/easyui/demo/linkbutton/toggle.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/linkbutton/toggle.html rename to vendor/FHC-vendor/easyui/demo/linkbutton/toggle.html index 352001a3e..ebab0d141 --- a/vendor/easyui/demo/linkbutton/toggle.html +++ b/vendor/FHC-vendor/easyui/demo/linkbutton/toggle.html @@ -1,25 +1,25 @@ - - - - - Toggle Button - jQuery EasyUI Demo - - - - - - - -

      Toggle Button

      -

      Click the button below to switch its selected state.

      -
      -
      - Add - Remove - Save - Cut - Text Button -
      - - + + + + + Toggle Button - jQuery EasyUI Demo + + + + + + + +

      Toggle Button

      +

      Click the button below to switch its selected state.

      +
      +
      + Add + Remove + Save + Cut + Text Button +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/menu/basic.html b/vendor/FHC-vendor/easyui/demo/menu/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/menu/basic.html rename to vendor/FHC-vendor/easyui/demo/menu/basic.html index c1bf0d35e..ac6e17199 --- a/vendor/easyui/demo/menu/basic.html +++ b/vendor/FHC-vendor/easyui/demo/menu/basic.html @@ -1,68 +1,68 @@ - - - - - Basic Menu - jQuery EasyUI Demo - - - - - - - -

      Basic Menu

      -

      Right click on page to display menu.

      -
      - -
      -
      New
      -
      - Open -
      -
      Word
      -
      Excel
      -
      PowerPoint
      -
      - M1 -
      -
      sub1
      -
      sub2
      -
      - Sub -
      -
      sub21
      -
      sub22
      -
      sub23
      -
      -
      -
      sub3
      -
      -
      -
      - Window Demos -
      -
      Window
      -
      Dialog
      - -
      -
      -
      -
      -
      Save
      -
      Print
      - -
      Exit
      -
      - - + + + + + Basic Menu - jQuery EasyUI Demo + + + + + + + +

      Basic Menu

      +

      Right click on page to display menu.

      +
      + +
      +
      New
      +
      + Open +
      +
      Word
      +
      Excel
      +
      PowerPoint
      +
      + M1 +
      +
      sub1
      +
      sub2
      +
      + Sub +
      +
      sub21
      +
      sub22
      +
      sub23
      +
      +
      +
      sub3
      +
      +
      +
      + Window Demos +
      +
      Window
      +
      Dialog
      + +
      +
      +
      +
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/menu/customitem.html b/vendor/FHC-vendor/easyui/demo/menu/customitem.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/menu/customitem.html rename to vendor/FHC-vendor/easyui/demo/menu/customitem.html index e42013105..bf4df9cf4 --- a/vendor/easyui/demo/menu/customitem.html +++ b/vendor/FHC-vendor/easyui/demo/menu/customitem.html @@ -1,55 +1,55 @@ - - - - - Custom Menu Item - jQuery EasyUI Demo - - - - - - - -

      Custom Menu Item

      -

      Right click on page to display menu, move to the 'Open' item to display its custom sub content.

      -
      -
      -
      New
      -
      - Open - -
      -
      Save
      -
      Print
      - -
      Exit
      -
      - - - + + + + + Custom Menu Item - jQuery EasyUI Demo + + + + + + + +

      Custom Menu Item

      +

      Right click on page to display menu, move to the 'Open' item to display its custom sub content.

      +
      +
      +
      New
      +
      + Open + +
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/menu/events.html b/vendor/FHC-vendor/easyui/demo/menu/events.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/menu/events.html rename to vendor/FHC-vendor/easyui/demo/menu/events.html index c26b060d5..41f4b570d --- a/vendor/easyui/demo/menu/events.html +++ b/vendor/FHC-vendor/easyui/demo/menu/events.html @@ -1,40 +1,40 @@ - - - - - Menu Events - jQuery EasyUI Demo - - - - - - - -

      Menu Events

      -

      Right click on page to display menu and click an item.

      -
      -
      -
      New
      -
      Save
      -
      Print
      - -
      Exit
      -
      -
      -
      - - + + + + + Menu Events - jQuery EasyUI Demo + + + + + + + +

      Menu Events

      +

      Right click on page to display menu and click an item.

      +
      +
      +
      New
      +
      Save
      +
      Print
      + +
      Exit
      +
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/menu/inline.html b/vendor/FHC-vendor/easyui/demo/menu/inline.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/menu/inline.html rename to vendor/FHC-vendor/easyui/demo/menu/inline.html index e23e3ae75..5fa0d99ec --- a/vendor/easyui/demo/menu/inline.html +++ b/vendor/FHC-vendor/easyui/demo/menu/inline.html @@ -1,59 +1,59 @@ - - - - - Inline Menu - jQuery EasyUI Demo - - - - - - - -

      Inline Menu

      -

      The inline menu stays inside its parent container.

      -
      - -
      -
      -
      New
      -
      - Open -
      -
      Word
      -
      Excel
      -
      PowerPoint
      -
      - M1 -
      -
      sub1
      -
      sub2
      -
      - Sub -
      -
      sub21
      -
      sub22
      -
      sub23
      -
      -
      -
      sub3
      -
      -
      -
      - Window Demos -
      -
      Window
      -
      Dialog
      - -
      -
      -
      -
      -
      Save
      -
      Print
      - -
      Exit
      -
      -
      - + + + + + Inline Menu - jQuery EasyUI Demo + + + + + + + +

      Inline Menu

      +

      The inline menu stays inside its parent container.

      +
      + +
      +
      +
      New
      +
      + Open +
      +
      Word
      +
      Excel
      +
      PowerPoint
      +
      + M1 +
      +
      sub1
      +
      sub2
      +
      + Sub +
      +
      sub21
      +
      sub22
      +
      sub23
      +
      +
      +
      sub3
      +
      +
      +
      + Window Demos +
      +
      Window
      +
      Dialog
      + +
      +
      +
      +
      +
      Save
      +
      Print
      + +
      Exit
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/menu/nav.html b/vendor/FHC-vendor/easyui/demo/menu/nav.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/menu/nav.html rename to vendor/FHC-vendor/easyui/demo/menu/nav.html index 1985af095..b200f2a0e --- a/vendor/easyui/demo/menu/nav.html +++ b/vendor/FHC-vendor/easyui/demo/menu/nav.html @@ -1,132 +1,132 @@ - - - - - Keyboard Navigation in Menu - jQuery EasyUI Demo - - - - - - - -

      Keyboard Navigation in Menu

      -

      Press Alt+W to focus the menu. Once the menu get focus, you will be able to navigate menu using keyboard keys.

      -
      - -
      -
      -
      New
      -
      - Open -
      -
      Word
      -
      Excel
      -
      PowerPoint
      -
      - M1 -
      -
      sub1
      -
      sub2
      -
      - Sub -
      -
      sub21
      -
      sub22
      -
      sub23
      -
      -
      -
      sub3
      -
      -
      -
      - Window Demos -
      -
      Window
      -
      Dialog
      -
      EasyUI
      -
      -
      -
      -
      -
      Save
      -
      Print
      - -
      Exit
      -
      -
      - - + + + + + Keyboard Navigation in Menu - jQuery EasyUI Demo + + + + + + + +

      Keyboard Navigation in Menu

      +

      Press Alt+W to focus the menu. Once the menu get focus, you will be able to navigate menu using keyboard keys.

      +
      + +
      +
      +
      New
      +
      + Open +
      +
      Word
      +
      Excel
      +
      PowerPoint
      +
      + M1 +
      +
      sub1
      +
      sub2
      +
      + Sub +
      +
      sub21
      +
      sub22
      +
      sub23
      +
      +
      +
      sub3
      +
      +
      +
      + Window Demos +
      +
      Window
      +
      Dialog
      +
      EasyUI
      +
      +
      +
      +
      +
      Save
      +
      Print
      + +
      Exit
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/menubutton/actions.html b/vendor/FHC-vendor/easyui/demo/menubutton/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/menubutton/actions.html rename to vendor/FHC-vendor/easyui/demo/menubutton/actions.html index 5d447fe98..6623d3dad --- a/vendor/easyui/demo/menubutton/actions.html +++ b/vendor/FHC-vendor/easyui/demo/menubutton/actions.html @@ -1,58 +1,58 @@ - - - - - MenuButton Actions - jQuery EasyUI Demo - - - - - - - -

      MenuButton Actions

      -

      Click the buttons below to perform actions.

      -
      - Disable Edit - Enable Edit -
      -
      - Home - Edit - Help - About -
      -
      -
      Undo
      -
      Redo
      - -
      Cut
      -
      Copy
      -
      Paste
      - -
      - Toolbar -
      -
      Address
      -
      Link
      -
      Navigation Toolbar
      -
      Bookmark Toolbar
      - -
      New Toolbar...
      -
      -
      -
      Delete
      -
      Select All
      -
      -
      -
      Help
      -
      Update
      -
      About
      -
      - - - + + + + + MenuButton Actions - jQuery EasyUI Demo + + + + + + + +

      MenuButton Actions

      +

      Click the buttons below to perform actions.

      +
      + Disable Edit + Enable Edit +
      +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/menubutton/alignment.html b/vendor/FHC-vendor/easyui/demo/menubutton/alignment.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/menubutton/alignment.html rename to vendor/FHC-vendor/easyui/demo/menubutton/alignment.html index f34f89a03..5362745ed --- a/vendor/easyui/demo/menubutton/alignment.html +++ b/vendor/FHC-vendor/easyui/demo/menubutton/alignment.html @@ -1,69 +1,69 @@ - - - - - Menu Alignment on MenuButton - jQuery EasyUI Demo - - - - - - - -

      Menu Alignment on MenuButton

      -

      This example shows how to change the alignment of the top level menu.

      -
      - Change Alignment: - -
      -
      - Home - Edit - Help - About - -
      -
      -
      Undo
      -
      Redo
      - -
      Cut
      -
      Copy
      -
      Paste
      - -
      - Toolbar -
      -
      Address
      -
      Link
      -
      Navigation Toolbar
      -
      Bookmark Toolbar
      - -
      New Toolbar...
      -
      -
      -
      Delete
      -
      Select All
      -
      -
      -
      Help
      -
      Update
      -
      About
      -
      -
      -
      History
      -
      Faq
      -
      Our Team
      -
      - - + + + + + Menu Alignment on MenuButton - jQuery EasyUI Demo + + + + + + + +

      Menu Alignment on MenuButton

      +

      This example shows how to change the alignment of the top level menu.

      +
      + Change Alignment: + +
      +
      + Home + Edit + Help + About + +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      +
      +
      History
      +
      Faq
      +
      Our Team
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/menubutton/basic.html b/vendor/FHC-vendor/easyui/demo/menubutton/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/menubutton/basic.html rename to vendor/FHC-vendor/easyui/demo/menubutton/basic.html index 932309b76..e277296bf --- a/vendor/easyui/demo/menubutton/basic.html +++ b/vendor/FHC-vendor/easyui/demo/menubutton/basic.html @@ -1,54 +1,54 @@ - - - - - Basic MenuButton - jQuery EasyUI Demo - - - - - - - -

      Basic MenuButton

      -

      Move mouse over the button to drop down menu.

      -
      -
      - Home - Edit - Help - About -
      -
      -
      Undo
      -
      Redo
      - -
      Cut
      -
      Copy
      -
      Paste
      - -
      - Toolbar -
      -
      Address
      -
      Link
      -
      Navigation Toolbar
      -
      Bookmark Toolbar
      - -
      New Toolbar...
      -
      -
      -
      Delete
      -
      Select All
      -
      -
      -
      Help
      -
      Update
      -
      About
      -
      - - + + + + + Basic MenuButton - jQuery EasyUI Demo + + + + + + + +

      Basic MenuButton

      +

      Move mouse over the button to drop down menu.

      +
      +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/menubutton/nav.html b/vendor/FHC-vendor/easyui/demo/menubutton/nav.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/menubutton/nav.html rename to vendor/FHC-vendor/easyui/demo/menubutton/nav.html index a2c700170..3dfdc5a28 --- a/vendor/easyui/demo/menubutton/nav.html +++ b/vendor/FHC-vendor/easyui/demo/menubutton/nav.html @@ -1,152 +1,152 @@ - - - - - Keyboard Navigation in MenuButton - jQuery EasyUI Demo - - - - - - - -

      Keyboard Navigation in MenuButton

      -

      Press Alt+W to focus the menubutton. Once the menubutton get focus, you will be able to navigate menubutton using keyboard keys.

      -
      -
      - Home - Edit - Help - About -
      -
      -
      Undo
      -
      Redo
      - -
      Cut
      -
      Copy
      -
      Paste
      - -
      - Toolbar -
      -
      Address
      -
      Link
      -
      Navigation Toolbar
      -
      Bookmark Toolbar
      - -
      New Toolbar...
      -
      -
      -
      Delete
      -
      Select All
      -
      -
      -
      Help
      -
      Update
      -
      About
      -
      - - - - + + + + + Keyboard Navigation in MenuButton - jQuery EasyUI Demo + + + + + + + +

      Keyboard Navigation in MenuButton

      +

      Press Alt+W to focus the menubutton. Once the menubutton get focus, you will be able to navigate menubutton using keyboard keys.

      +
      +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + + + \ No newline at end of file diff --git a/vendor/easyui/demo/messager/alert.html b/vendor/FHC-vendor/easyui/demo/messager/alert.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/messager/alert.html rename to vendor/FHC-vendor/easyui/demo/messager/alert.html index a69c16603..ff7129d70 --- a/vendor/easyui/demo/messager/alert.html +++ b/vendor/FHC-vendor/easyui/demo/messager/alert.html @@ -1,40 +1,40 @@ - - - - - Alert Messager - jQuery EasyUI Demo - - - - - - - -

      Alert Messager

      -

      Click on each button to display different alert message box.

      -
      - Alert - Error - Info - Question - Warning -
      - - + + + + + Alert Messager - jQuery EasyUI Demo + + + + + + + +

      Alert Messager

      +

      Click on each button to display different alert message box.

      +
      + Alert + Error + Info + Question + Warning +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/messager/basic.html b/vendor/FHC-vendor/easyui/demo/messager/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/messager/basic.html rename to vendor/FHC-vendor/easyui/demo/messager/basic.html index 65026efc4..373c7ca78 --- a/vendor/easyui/demo/messager/basic.html +++ b/vendor/FHC-vendor/easyui/demo/messager/basic.html @@ -1,56 +1,56 @@ - - - - - Basic Messager - jQuery EasyUI Demo - - - - - - - -

      Basic Messager

      -

      Click on each button to see a distinct message box.

      -
      - Show - Slide - Fade - Progress -
      - - + + + + + Basic Messager - jQuery EasyUI Demo + + + + + + + +

      Basic Messager

      +

      Click on each button to see a distinct message box.

      +
      + Show + Slide + Fade + Progress +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/messager/interactive.html b/vendor/FHC-vendor/easyui/demo/messager/interactive.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/messager/interactive.html rename to vendor/FHC-vendor/easyui/demo/messager/interactive.html index e71224312..9ba70bf01 --- a/vendor/easyui/demo/messager/interactive.html +++ b/vendor/FHC-vendor/easyui/demo/messager/interactive.html @@ -1,36 +1,36 @@ - - - - - Interactive Messager - jQuery EasyUI Demo - - - - - - - -

      Interactive Messager

      -

      Click on each button to display interactive message box.

      -
      - Confirm - Prompt -
      - - + + + + + Interactive Messager - jQuery EasyUI Demo + + + + + + + +

      Interactive Messager

      +

      Click on each button to display interactive message box.

      +
      + Confirm + Prompt +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/messager/position.html b/vendor/FHC-vendor/easyui/demo/messager/position.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/messager/position.html rename to vendor/FHC-vendor/easyui/demo/messager/position.html index 6a6273e96..58886f120 --- a/vendor/easyui/demo/messager/position.html +++ b/vendor/FHC-vendor/easyui/demo/messager/position.html @@ -1,140 +1,140 @@ - - - - - Message Box Position - jQuery EasyUI Demo - - - - - - - -

      Message Box Position

      -

      Click the buttons below to display message box on different position.

      -
      -

      - TopLeft - TopCenter - TopRight -

      -

      - CenterLeft - Center - CenterRight -

      -

      - BottomLeft - BottomCenter - BottomRight -

      -
      - - + + + + + Message Box Position - jQuery EasyUI Demo + + + + + + + +

      Message Box Position

      +

      Click the buttons below to display message box on different position.

      +
      +

      + TopLeft + TopCenter + TopRight +

      +

      + CenterLeft + Center + CenterRight +

      +

      + BottomLeft + BottomCenter + BottomRight +

      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/numberbox/basic.html b/vendor/FHC-vendor/easyui/demo/numberbox/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberbox/basic.html rename to vendor/FHC-vendor/easyui/demo/numberbox/basic.html index 57ec060a3..ba6276bae --- a/vendor/easyui/demo/numberbox/basic.html +++ b/vendor/FHC-vendor/easyui/demo/numberbox/basic.html @@ -1,28 +1,28 @@ - - - - - Basic NumberBox - jQuery EasyUI Demo - - - - - - - -

      Basic NumberBox

      -

      The NumberBox can only accept inputing numbers.

      -
      -
      -
      -
      List Price:
      - -
      -
      -
      Amount:
      - -
      -
      - - + + + + + Basic NumberBox - jQuery EasyUI Demo + + + + + + + +

      Basic NumberBox

      +

      The NumberBox can only accept inputing numbers.

      +
      +
      +
      +
      List Price:
      + +
      +
      +
      Amount:
      + +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/numberbox/fluid.html b/vendor/FHC-vendor/easyui/demo/numberbox/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberbox/fluid.html rename to vendor/FHC-vendor/easyui/demo/numberbox/fluid.html index da84534a2..7adbd2c86 --- a/vendor/easyui/demo/numberbox/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/numberbox/fluid.html @@ -1,28 +1,28 @@ - - - - - Fluid NumberBox - jQuery EasyUI Demo - - - - - - - -

      Fluid NumberBox

      -

      This example shows how to set the width of NumberBox to a percentage of its parent container.

      -
      -
      -
      -
      width: 100%
      - -
      -
      -
      width: 50%
      - -
      -
      - - + + + + + Fluid NumberBox - jQuery EasyUI Demo + + + + + + + +

      Fluid NumberBox

      +

      This example shows how to set the width of NumberBox to a percentage of its parent container.

      +
      +
      +
      +
      width: 100%
      + +
      +
      +
      width: 50%
      + +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/numberbox/format.html b/vendor/FHC-vendor/easyui/demo/numberbox/format.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberbox/format.html rename to vendor/FHC-vendor/easyui/demo/numberbox/format.html index 6dfe901be..ec5b6ff2f --- a/vendor/easyui/demo/numberbox/format.html +++ b/vendor/FHC-vendor/easyui/demo/numberbox/format.html @@ -1,40 +1,40 @@ - - - - - Format NumberBox - jQuery EasyUI Demo - - - - - - - -

      Format NumberBox

      -

      Number formatting is the ability to control how a number is displayed.

      -
      - - - - - - - - - - - - - - - - - - - - - -
      Number in the United States
      Number in France
      Currency:USD
      Currency:EUR
      - - + + + + + Format NumberBox - jQuery EasyUI Demo + + + + + + + +

      Format NumberBox

      +

      Number formatting is the ability to control how a number is displayed.

      +
      + + + + + + + + + + + + + + + + + + + + + +
      Number in the United States
      Number in France
      Currency:USD
      Currency:EUR
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/numberbox/range.html b/vendor/FHC-vendor/easyui/demo/numberbox/range.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberbox/range.html rename to vendor/FHC-vendor/easyui/demo/numberbox/range.html index 9dcd6d71d..9d8176f74 --- a/vendor/easyui/demo/numberbox/range.html +++ b/vendor/FHC-vendor/easyui/demo/numberbox/range.html @@ -1,31 +1,31 @@ - - - - - Number Range - jQuery EasyUI Demo - - - - - - - -

      Number Range

      -

      The value is constrained to a specified range.

      -
      -
      -
      -
      Amount:
      - -
      -
      -
      Weight:
      - -
      -
      -
      Age:
      - -
      -
      - + + + + + Number Range - jQuery EasyUI Demo + + + + + + + +

      Number Range

      +

      The value is constrained to a specified range.

      +
      +
      +
      +
      Amount:
      + +
      +
      +
      Weight:
      + +
      +
      +
      Age:
      + +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/numberspinner/basic.html b/vendor/FHC-vendor/easyui/demo/numberspinner/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberspinner/basic.html rename to vendor/FHC-vendor/easyui/demo/numberspinner/basic.html index 38fc05bd1..a8b88637d --- a/vendor/easyui/demo/numberspinner/basic.html +++ b/vendor/FHC-vendor/easyui/demo/numberspinner/basic.html @@ -1,25 +1,25 @@ - - - - - Basic NumberSpinner - jQuery EasyUI Demo - - - - - - - -

      Basic NumberSpinner

      -

      Click spinner button to change value.

      -
      - -
      - Value: -
      - + + + + + Basic NumberSpinner - jQuery EasyUI Demo + + + + + + + +

      Basic NumberSpinner

      +

      Click spinner button to change value.

      +
      + +
      + Value: +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/numberspinner/fluid.html b/vendor/FHC-vendor/easyui/demo/numberspinner/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberspinner/fluid.html rename to vendor/FHC-vendor/easyui/demo/numberspinner/fluid.html index 668822db9..e0ce15596 --- a/vendor/easyui/demo/numberspinner/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/numberspinner/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid NumberSpinner - jQuery EasyUI Demo - - - - - - - -

      Fluid NumberSpinner

      -

      This example shows how to set the width of NumberSpinner to a percentage of its parent container.

      -
      -

      width: 50%

      - -

      width: 30%

      - - + + + + + Fluid NumberSpinner - jQuery EasyUI Demo + + + + + + + +

      Fluid NumberSpinner

      +

      This example shows how to set the width of NumberSpinner to a percentage of its parent container.

      +
      +

      width: 50%

      + +

      width: 30%

      + + \ No newline at end of file diff --git a/vendor/easyui/demo/numberspinner/increment.html b/vendor/FHC-vendor/easyui/demo/numberspinner/increment.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberspinner/increment.html rename to vendor/FHC-vendor/easyui/demo/numberspinner/increment.html index 75625737d..95b5a5f59 --- a/vendor/easyui/demo/numberspinner/increment.html +++ b/vendor/FHC-vendor/easyui/demo/numberspinner/increment.html @@ -1,18 +1,18 @@ - - - - - Increment Number - jQuery EasyUI Demo - - - - - - - -

      Increment Number

      -

      The sample shows how to set the increment step.

      -
      - - + + + + + Increment Number - jQuery EasyUI Demo + + + + + + + +

      Increment Number

      +

      The sample shows how to set the increment step.

      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/numberspinner/range.html b/vendor/FHC-vendor/easyui/demo/numberspinner/range.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/numberspinner/range.html rename to vendor/FHC-vendor/easyui/demo/numberspinner/range.html index f31d81cd8..00e130741 --- a/vendor/easyui/demo/numberspinner/range.html +++ b/vendor/FHC-vendor/easyui/demo/numberspinner/range.html @@ -1,18 +1,18 @@ - - - - - Number Range - jQuery EasyUI Demo - - - - - - - -

      Number Range

      -

      The value is constrained to a range between 10 and 100.

      -
      - - + + + + + Number Range - jQuery EasyUI Demo + + + + + + + +

      Number Range

      +

      The value is constrained to a range between 10 and 100.

      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/pagination/attaching.html b/vendor/FHC-vendor/easyui/demo/pagination/attaching.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/pagination/attaching.html rename to vendor/FHC-vendor/easyui/demo/pagination/attaching.html index 0e56bb35e..5c87427e3 --- a/vendor/easyui/demo/pagination/attaching.html +++ b/vendor/FHC-vendor/easyui/demo/pagination/attaching.html @@ -1,32 +1,32 @@ - - - - - Attaching Other Components - jQuery EasyUI Demo - - - - - - - -

      Attaching Other Components

      -

      Any other components can be attached to page bar.

      -
      -
      -
      -
      -
      - - - - - -
      - - - -
      -
      - + + + + + Attaching Other Components - jQuery EasyUI Demo + + + + + + + +

      Attaching Other Components

      +

      Any other components can be attached to page bar.

      +
      +
      +
      +
      +
      + + + + + +
      + + + +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/pagination/basic.html b/vendor/FHC-vendor/easyui/demo/pagination/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/pagination/basic.html rename to vendor/FHC-vendor/easyui/demo/pagination/basic.html index bcdba63df..98f7c4950 --- a/vendor/easyui/demo/pagination/basic.html +++ b/vendor/FHC-vendor/easyui/demo/pagination/basic.html @@ -1,20 +1,20 @@ - - - - - Basic Pagination - jQuery EasyUI Demo - - - - - - - -

      Basic Pagination

      -

      The user can change page number and page size on page bar.

      -
      -
      -
      -
      - + + + + + Basic Pagination - jQuery EasyUI Demo + + + + + + + +

      Basic Pagination

      +

      The user can change page number and page size on page bar.

      +
      +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/pagination/custombuttons.html b/vendor/FHC-vendor/easyui/demo/pagination/custombuttons.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/pagination/custombuttons.html rename to vendor/FHC-vendor/easyui/demo/pagination/custombuttons.html index 113e92116..2a75b88f7 --- a/vendor/easyui/demo/pagination/custombuttons.html +++ b/vendor/FHC-vendor/easyui/demo/pagination/custombuttons.html @@ -1,38 +1,38 @@ - - - - - Custom Pagination Buttons - jQuery EasyUI Demo - - - - - - - -

      Custom Pagination Buttons

      -

      The customized buttons can be appended to page bar.

      -
      -
      -
      -
      - - + + + + + Custom Pagination Buttons - jQuery EasyUI Demo + + + + + + + +

      Custom Pagination Buttons

      +

      The customized buttons can be appended to page bar.

      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/pagination/layout.html b/vendor/FHC-vendor/easyui/demo/pagination/layout.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/pagination/layout.html rename to vendor/FHC-vendor/easyui/demo/pagination/layout.html index 1288397f9..dcb679ab3 --- a/vendor/easyui/demo/pagination/layout.html +++ b/vendor/FHC-vendor/easyui/demo/pagination/layout.html @@ -1,62 +1,62 @@ - - - - - Pagination Layout - jQuery EasyUI Demo - - - - - - - -

      Pagination Layout

      -

      The pagination layout supports various types of pages which you can choose.

      -
      -
      -
      -
      -
      - -
      - - + + + + + Pagination Layout - jQuery EasyUI Demo + + + + + + + +

      Pagination Layout

      +

      The pagination layout supports various types of pages which you can choose.

      +
      +
      +
      +
      +
      + +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/pagination/links.html b/vendor/FHC-vendor/easyui/demo/pagination/links.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/pagination/links.html rename to vendor/FHC-vendor/easyui/demo/pagination/links.html index 3b7ee251e..5ec8b3826 --- a/vendor/easyui/demo/pagination/links.html +++ b/vendor/FHC-vendor/easyui/demo/pagination/links.html @@ -1,23 +1,23 @@ - - - - - Pagination Links - jQuery EasyUI Demo - - - - - - - -

      Pagination Links

      -

      The example shows how to customize numbered pagination links.

      -
      -
      -
      -
      - + + + + + Pagination Links - jQuery EasyUI Demo + + + + + + + +

      Pagination Links

      +

      The example shows how to customize numbered pagination links.

      +
      +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/pagination/simple.html b/vendor/FHC-vendor/easyui/demo/pagination/simple.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/pagination/simple.html rename to vendor/FHC-vendor/easyui/demo/pagination/simple.html index 521f75fee..ca59ae2c6 --- a/vendor/easyui/demo/pagination/simple.html +++ b/vendor/FHC-vendor/easyui/demo/pagination/simple.html @@ -1,25 +1,25 @@ - - - - - Simplify Pagination - jQuery EasyUI Demo - - - - - - - -

      Simplify Pagination

      -

      The sample shows how to simplify pagination.

      -
      -
      -
      -
      - + + + + + Simplify Pagination - jQuery EasyUI Demo + + + + + + + +

      Simplify Pagination

      +

      The sample shows how to simplify pagination.

      +
      +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/_content.html b/vendor/FHC-vendor/easyui/demo/panel/_content.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/panel/_content.html rename to vendor/FHC-vendor/easyui/demo/panel/_content.html index 996740274..f7b8e2ee7 --- a/vendor/easyui/demo/panel/_content.html +++ b/vendor/FHC-vendor/easyui/demo/panel/_content.html @@ -1,18 +1,18 @@ - - - - - AJAX Content - - -

      Here is the content loaded via AJAX.

      - - + + + + + AJAX Content + + +

      Here is the content loaded via AJAX.

      + + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/basic.html b/vendor/FHC-vendor/easyui/demo/panel/basic.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/panel/basic.html rename to vendor/FHC-vendor/easyui/demo/panel/basic.html index ec0e535d9..e2220dfbb --- a/vendor/easyui/demo/panel/basic.html +++ b/vendor/FHC-vendor/easyui/demo/panel/basic.html @@ -1,31 +1,31 @@ - - - - - Basic Panel - jQuery EasyUI Demo - - - - - - - -

      Basic Panel

      -

      The panel is a container for other components or elements.

      -
      - Open - Close -
      -
      -

      jQuery EasyUI framework helps you build your web pages easily.

      - -
      - + + + + + Basic Panel - jQuery EasyUI Demo + + + + + + + +

      Basic Panel

      +

      The panel is a container for other components or elements.

      +
      + Open + Close +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      + +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/customtools.html b/vendor/FHC-vendor/easyui/demo/panel/customtools.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/panel/customtools.html rename to vendor/FHC-vendor/easyui/demo/panel/customtools.html index 670001e9b..299b7fa2f --- a/vendor/easyui/demo/panel/customtools.html +++ b/vendor/FHC-vendor/easyui/demo/panel/customtools.html @@ -1,35 +1,35 @@ - - - - - Custom Panel Tools - jQuery EasyUI Demo - - - - - - - -

      Custom Panel Tools

      -

      Click the right top buttons to perform actions with panel.

      -
      -
      -

      jQuery EasyUI framework helps you build your web pages easily.

      - -
      -
      - - - - -
      - + + + + + Custom Panel Tools - jQuery EasyUI Demo + + + + + + + +

      Custom Panel Tools

      +

      Click the right top buttons to perform actions with panel.

      +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      + +
      +
      + + + + +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/fluid.html b/vendor/FHC-vendor/easyui/demo/panel/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/panel/fluid.html rename to vendor/FHC-vendor/easyui/demo/panel/fluid.html index 72510f23d..ff2be8815 --- a/vendor/easyui/demo/panel/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/panel/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid Panel - jQuery EasyUI Demo - - - - - - - -

      Fluid Panel

      -

      This example shows how to set the width of Panel to a percentage of its parent container.

      -
      -
      -
      -

      The panel has a width of 100%.

      -

      - + + + + + Fluid Panel - jQuery EasyUI Demo + + + + + + + +

      Fluid Panel

      +

      This example shows how to set the width of Panel to a percentage of its parent container.

      +
      +
      +
      +

      The panel has a width of 100%.

      +

      + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/footer.html b/vendor/FHC-vendor/easyui/demo/panel/footer.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/panel/footer.html rename to vendor/FHC-vendor/easyui/demo/panel/footer.html index 31e6385c2..e04a87b6a --- a/vendor/easyui/demo/panel/footer.html +++ b/vendor/FHC-vendor/easyui/demo/panel/footer.html @@ -1,22 +1,22 @@ - - - - - Panel Footer - jQuery EasyUI Demo - - - - - - - -

      Panel Footer

      -

      The panel footer is displayed at the bottom of the panel and can consist of any other components.

      -
      -
      -
      - - + + + + + Panel Footer - jQuery EasyUI Demo + + + + + + + +

      Panel Footer

      +

      The panel footer is displayed at the bottom of the panel and can consist of any other components.

      +
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/loadcontent.html b/vendor/FHC-vendor/easyui/demo/panel/loadcontent.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/panel/loadcontent.html rename to vendor/FHC-vendor/easyui/demo/panel/loadcontent.html index 6db638d39..c4b141749 --- a/vendor/easyui/demo/panel/loadcontent.html +++ b/vendor/FHC-vendor/easyui/demo/panel/loadcontent.html @@ -1,27 +1,27 @@ - - - - - Load Panel Content - jQuery EasyUI Demo - - - - - - - -

      Load Panel Content

      -

      Click the refresh button on top right of panel to load content.

      -
      -
      -
      - + + + + + Load Panel Content - jQuery EasyUI Demo + + + + + + + +

      Load Panel Content

      +

      Click the refresh button on top right of panel to load content.

      +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/nestedpanel.html b/vendor/FHC-vendor/easyui/demo/panel/nestedpanel.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/panel/nestedpanel.html rename to vendor/FHC-vendor/easyui/demo/panel/nestedpanel.html index 28f51703d..a2c1320c3 --- a/vendor/easyui/demo/panel/nestedpanel.html +++ b/vendor/FHC-vendor/easyui/demo/panel/nestedpanel.html @@ -1,30 +1,30 @@ - - - - - Nested Panel - jQuery EasyUI Demo - - - - - - - -

      Nested Panel

      -

      The panel can be placed inside containers and can contain other components.

      -
      -
      -
      -
      - Left Content -
      -
      - Right Content -
      -
      - Center Content -
      -
      -
      - + + + + + Nested Panel - jQuery EasyUI Demo + + + + + + + +

      Nested Panel

      +

      The panel can be placed inside containers and can contain other components.

      +
      +
      +
      +
      + Left Content +
      +
      + Right Content +
      +
      + Center Content +
      +
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/panel/paneltools.html b/vendor/FHC-vendor/easyui/demo/panel/paneltools.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/panel/paneltools.html rename to vendor/FHC-vendor/easyui/demo/panel/paneltools.html index 47efc11f7..eb0d87f06 --- a/vendor/easyui/demo/panel/paneltools.html +++ b/vendor/FHC-vendor/easyui/demo/panel/paneltools.html @@ -1,37 +1,37 @@ - - - - - Panel Tools - jQuery EasyUI Demo - - - - - - - -

      Panel Tools

      -

      Click the right top buttons to perform actions with panel.

      -
      - Open - Close - Expand - Collapse -
      -
      -
      -

      jQuery EasyUI framework helps you build your web pages easily.

      -
        -
      • easyui is a collection of user-interface plugin based on jQuery.
      • -
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • -
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • -
      • complete framework for HTML5 web page.
      • -
      • easyui save your time and scales while developing your products.
      • -
      • easyui is very easy but powerful.
      • -
      -
      -
      - - + + + + + Panel Tools - jQuery EasyUI Demo + + + + + + + +

      Panel Tools

      +

      Click the right top buttons to perform actions with panel.

      +
      + Open + Close + Expand + Collapse +
      +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/progressbar/basic.html b/vendor/FHC-vendor/easyui/demo/progressbar/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/progressbar/basic.html rename to vendor/FHC-vendor/easyui/demo/progressbar/basic.html index 966d5560f..910777b04 --- a/vendor/easyui/demo/progressbar/basic.html +++ b/vendor/FHC-vendor/easyui/demo/progressbar/basic.html @@ -1,30 +1,30 @@ - - - - - Basic ProgressBar - jQuery EasyUI Demo - - - - - - - -

      Basic ProgressBar

      -

      Click the button below to show progress information.

      -
      - Start -
      -
      - - + + + + + Basic ProgressBar - jQuery EasyUI Demo + + + + + + + +

      Basic ProgressBar

      +

      Click the button below to show progress information.

      +
      + Start +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/progressbar/fluid.html b/vendor/FHC-vendor/easyui/demo/progressbar/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/progressbar/fluid.html rename to vendor/FHC-vendor/easyui/demo/progressbar/fluid.html index 613e180f1..de88af209 --- a/vendor/easyui/demo/progressbar/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/progressbar/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid ProgressBar - jQuery EasyUI Demo - - - - - - - -

      Fluid ProgressBar

      -

      This example shows how to set the width of ProgressBar to a percentage of its parent container.

      -
      -

      width: 50%

      -
      -

      width: 30%

      -
      - + + + + + Fluid ProgressBar - jQuery EasyUI Demo + + + + + + + +

      Fluid ProgressBar

      +

      This example shows how to set the width of ProgressBar to a percentage of its parent container.

      +
      +

      width: 50%

      +
      +

      width: 30%

      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/propertygrid/basic.html b/vendor/FHC-vendor/easyui/demo/propertygrid/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/propertygrid/basic.html rename to vendor/FHC-vendor/easyui/demo/propertygrid/basic.html index 8f7743c4e..a7c3cb530 --- a/vendor/easyui/demo/propertygrid/basic.html +++ b/vendor/FHC-vendor/easyui/demo/propertygrid/basic.html @@ -1,61 +1,61 @@ - - - - - Basic PropertyGrid - jQuery EasyUI Demo - - - - - - - -

      Basic PropertyGrid

      -

      Click on row to change each property value.

      -
      - ShowGroup - HideGroup - ShowHeader - HideHeader - GetChanges -
      - -
      - - - + + + + + Basic PropertyGrid - jQuery EasyUI Demo + + + + + + + +

      Basic PropertyGrid

      +

      Click on row to change each property value.

      +
      + ShowGroup + HideGroup + ShowHeader + HideHeader + GetChanges +
      + +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/propertygrid/customcolumns.html b/vendor/FHC-vendor/easyui/demo/propertygrid/customcolumns.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/propertygrid/customcolumns.html rename to vendor/FHC-vendor/easyui/demo/propertygrid/customcolumns.html index 0a683ef3e..a8aabd3c2 --- a/vendor/easyui/demo/propertygrid/customcolumns.html +++ b/vendor/FHC-vendor/easyui/demo/propertygrid/customcolumns.html @@ -1,31 +1,31 @@ - - - - - Customize Columns of PropertyGrid - jQuery EasyUI Demo - - - - - - - -

      Customize Columns of PropertyGrid

      -

      The columns of PropertyGrid can be changed.

      -
      - -
      - - + + + + + Customize Columns of PropertyGrid - jQuery EasyUI Demo + + + + + + + +

      Customize Columns of PropertyGrid

      +

      The columns of PropertyGrid can be changed.

      +
      + +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/propertygrid/groupformat.html b/vendor/FHC-vendor/easyui/demo/propertygrid/groupformat.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/propertygrid/groupformat.html rename to vendor/FHC-vendor/easyui/demo/propertygrid/groupformat.html index d4eb883ce..27cc30508 --- a/vendor/easyui/demo/propertygrid/groupformat.html +++ b/vendor/FHC-vendor/easyui/demo/propertygrid/groupformat.html @@ -1,30 +1,30 @@ - - - - - Group Format - jQuery EasyUI Demo - - - - - - - -

      Group Format

      -

      The user can change the group information.

      -
      - -
      - - + + + + + Group Format - jQuery EasyUI Demo + + + + + + + +

      Group Format

      +

      The user can change the group information.

      +
      + +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/propertygrid/propertygrid_data1.json b/vendor/FHC-vendor/easyui/demo/propertygrid/propertygrid_data1.json old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/propertygrid/propertygrid_data1.json rename to vendor/FHC-vendor/easyui/demo/propertygrid/propertygrid_data1.json index a458d83fc..12b2d0074 --- a/vendor/easyui/demo/propertygrid/propertygrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/propertygrid/propertygrid_data1.json @@ -1,20 +1,20 @@ -{"total":7,"rows":[ - {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, - {"name":"Address","value":"","group":"ID Settings","editor":"text"}, - {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, - {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, - {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, - {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ - "type":"validatebox", - "options":{ - "validType":"email" - } - }}, - {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ - "type":"checkbox", - "options":{ - "on":true, - "off":false - } - }} +{"total":7,"rows":[ + {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, + {"name":"Address","value":"","group":"ID Settings","editor":"text"}, + {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, + {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, + {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, + {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ + "type":"validatebox", + "options":{ + "validType":"email" + } + }}, + {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ + "type":"checkbox", + "options":{ + "on":true, + "off":false + } + }} ]} \ No newline at end of file diff --git a/vendor/easyui/demo/resizable/basic.html b/vendor/FHC-vendor/easyui/demo/resizable/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/resizable/basic.html rename to vendor/FHC-vendor/easyui/demo/resizable/basic.html index 7b9e74773..a4d5a61ac --- a/vendor/easyui/demo/resizable/basic.html +++ b/vendor/FHC-vendor/easyui/demo/resizable/basic.html @@ -1,24 +1,24 @@ - - - - - Basic Resizable - jQuery EasyUI Demo - - - - - - - -

      Basic Resizable

      -

      Click on the edge of box and move the edge to resize the box.

      -
      -
      -
      Resize Me
      -
      -
      -
      Title
      -
      Drag and Resize Me
      -
      - + + + + + Basic Resizable - jQuery EasyUI Demo + + + + + + + +

      Basic Resizable

      +

      Click on the edge of box and move the edge to resize the box.

      +
      +
      +
      Resize Me
      +
      +
      +
      Title
      +
      Drag and Resize Me
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/searchbox/basic.html b/vendor/FHC-vendor/easyui/demo/searchbox/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/searchbox/basic.html rename to vendor/FHC-vendor/easyui/demo/searchbox/basic.html index a4f0151d9..1eb527567 --- a/vendor/easyui/demo/searchbox/basic.html +++ b/vendor/FHC-vendor/easyui/demo/searchbox/basic.html @@ -1,23 +1,23 @@ - - - - - Basic SearchBox - jQuery EasyUI Demo - - - - - - - -

      Basic SearchBox

      -

      Click search button or press enter key in input box to do searching.

      -
      - - - + + + + + Basic SearchBox - jQuery EasyUI Demo + + + + + + + +

      Basic SearchBox

      +

      Click search button or press enter key in input box to do searching.

      +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/searchbox/category.html b/vendor/FHC-vendor/easyui/demo/searchbox/category.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/searchbox/category.html rename to vendor/FHC-vendor/easyui/demo/searchbox/category.html index dad44764c..5a2b866ee --- a/vendor/easyui/demo/searchbox/category.html +++ b/vendor/FHC-vendor/easyui/demo/searchbox/category.html @@ -1,28 +1,28 @@ - - - - - Search Category - jQuery EasyUI Demo - - - - - - - -

      Search Category

      -

      Select a category and click search button or press enter key in input box to do searching.

      -
      - -
      -
      All News
      -
      Sports News
      -
      - - - + + + + + Search Category - jQuery EasyUI Demo + + + + + + + +

      Search Category

      +

      Select a category and click search button or press enter key in input box to do searching.

      +
      + +
      +
      All News
      +
      Sports News
      +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/searchbox/fluid.html b/vendor/FHC-vendor/easyui/demo/searchbox/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/searchbox/fluid.html rename to vendor/FHC-vendor/easyui/demo/searchbox/fluid.html index 8539c5bd8..946aaff14 --- a/vendor/easyui/demo/searchbox/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/searchbox/fluid.html @@ -1,25 +1,25 @@ - - - - - Fluid SearchBox - jQuery EasyUI Demo - - - - - - - -

      Fluid SearchBox

      -

      This example shows how to set the width of SearchBox to a percentage of its parent container.

      -
      -

      width: 50%

      - -

      width: 30%

      - -
      -
      All News
      -
      Sports News
      -
      - + + + + + Fluid SearchBox - jQuery EasyUI Demo + + + + + + + +

      Fluid SearchBox

      +

      This example shows how to set the width of SearchBox to a percentage of its parent container.

      +
      +

      width: 50%

      + +

      width: 30%

      + +
      +
      All News
      +
      Sports News
      +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/basic.html b/vendor/FHC-vendor/easyui/demo/slider/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/slider/basic.html rename to vendor/FHC-vendor/easyui/demo/slider/basic.html index a71f0e4c3..e2a0f5983 --- a/vendor/easyui/demo/slider/basic.html +++ b/vendor/FHC-vendor/easyui/demo/slider/basic.html @@ -1,18 +1,18 @@ - - - - - Basic Slider - jQuery EasyUI Demo - - - - - - - -

      Basic Slider

      -

      Drag the slider to change value.

      -
      - - + + + + + Basic Slider - jQuery EasyUI Demo + + + + + + + +

      Basic Slider

      +

      Drag the slider to change value.

      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/fluid.html b/vendor/FHC-vendor/easyui/demo/slider/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/slider/fluid.html rename to vendor/FHC-vendor/easyui/demo/slider/fluid.html index 745927687..17ff2ddd2 --- a/vendor/easyui/demo/slider/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/slider/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid Slider - jQuery EasyUI Demo - - - - - - - -

      Fluid Slider

      -

      This example shows how to set the width of Slider to a percentage of its parent container.

      -
      -

      width: 50%

      - -

      width: 30%

      - - + + + + + Fluid Slider - jQuery EasyUI Demo + + + + + + + +

      Fluid Slider

      +

      This example shows how to set the width of Slider to a percentage of its parent container.

      +
      +

      width: 50%

      + +

      width: 30%

      + + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/formattip.html b/vendor/FHC-vendor/easyui/demo/slider/formattip.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/slider/formattip.html rename to vendor/FHC-vendor/easyui/demo/slider/formattip.html index 6b5c39835..f0d666b1a --- a/vendor/easyui/demo/slider/formattip.html +++ b/vendor/FHC-vendor/easyui/demo/slider/formattip.html @@ -1,28 +1,28 @@ - - - - - Format Tip Information - jQuery EasyUI Demo - - - - - - - -

      Format Tip Information

      -

      This sample shows how to format tip information.

      -
      - -
      jQuery EasyUI
      - - + + + + + Format Tip Information - jQuery EasyUI Demo + + + + + + + +

      Format Tip Information

      +

      This sample shows how to format tip information.

      +
      + +
      jQuery EasyUI
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/nonlinear.html b/vendor/FHC-vendor/easyui/demo/slider/nonlinear.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/slider/nonlinear.html rename to vendor/FHC-vendor/easyui/demo/slider/nonlinear.html index b07c61bd5..757083386 --- a/vendor/easyui/demo/slider/nonlinear.html +++ b/vendor/FHC-vendor/easyui/demo/slider/nonlinear.html @@ -1,58 +1,58 @@ - - - - - Non Linear Slider - jQuery EasyUI Demo - - - - - - - -

      Non Linear Slider

      -

      This example shows how to create a slider with a non-linear scale.

      -
      -
      - -
      -
      -
      -
      - - - + + + + + Non Linear Slider - jQuery EasyUI Demo + + + + + + + +

      Non Linear Slider

      +

      This example shows how to create a slider with a non-linear scale.

      +
      +
      + +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/range.html b/vendor/FHC-vendor/easyui/demo/slider/range.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/slider/range.html rename to vendor/FHC-vendor/easyui/demo/slider/range.html index c7e6cf533..a994e577a --- a/vendor/easyui/demo/slider/range.html +++ b/vendor/FHC-vendor/easyui/demo/slider/range.html @@ -1,23 +1,23 @@ - - - - - Range Slider - jQuery EasyUI Demo - - - - - - - -

      Range Slider

      -

      This sample shows how to define a range slider.

      -
      - - + + + + + Range Slider - jQuery EasyUI Demo + + + + + + + +

      Range Slider

      +

      This sample shows how to define a range slider.

      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/rule.html b/vendor/FHC-vendor/easyui/demo/slider/rule.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/slider/rule.html rename to vendor/FHC-vendor/easyui/demo/slider/rule.html index 652b4e52b..6f0e08c5b --- a/vendor/easyui/demo/slider/rule.html +++ b/vendor/FHC-vendor/easyui/demo/slider/rule.html @@ -1,21 +1,21 @@ - - - - - Slider Rule - jQuery EasyUI Demo - - - - - - - -

      Slider Rule

      -

      This sample shows how to define slider rule.

      -
      - - + + + + + Slider Rule - jQuery EasyUI Demo + + + + + + + +

      Slider Rule

      +

      This sample shows how to define slider rule.

      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/slider/vertical.html b/vendor/FHC-vendor/easyui/demo/slider/vertical.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/slider/vertical.html rename to vendor/FHC-vendor/easyui/demo/slider/vertical.html index 59d3b4994..6bc8b59f6 --- a/vendor/easyui/demo/slider/vertical.html +++ b/vendor/FHC-vendor/easyui/demo/slider/vertical.html @@ -1,25 +1,25 @@ - - - - - Vertical Slider - jQuery EasyUI Demo - - - - - - - -

      Vertical Slider

      -

      This sample shows how to create a vertical slider.

      -
      -
      - -
      - + + + + + Vertical Slider - jQuery EasyUI Demo + + + + + + + +

      Vertical Slider

      +

      This sample shows how to create a vertical slider.

      +
      +
      + +
      + \ No newline at end of file diff --git a/vendor/easyui/demo/splitbutton/actions.html b/vendor/FHC-vendor/easyui/demo/splitbutton/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/splitbutton/actions.html rename to vendor/FHC-vendor/easyui/demo/splitbutton/actions.html index 311048468..0fa343ed8 --- a/vendor/easyui/demo/splitbutton/actions.html +++ b/vendor/FHC-vendor/easyui/demo/splitbutton/actions.html @@ -1,64 +1,64 @@ - - - - - SplitButton Actions - jQuery EasyUI Demo - - - - - - - -

      SplitButton Actions

      -

      Click the buttons below to perform actions.

      -
      - Disable Edit - Enable Edit -
      -
      - Home - Edit - Ok - Help -
      -
      -
      Undo
      -
      Redo
      - -
      Cut
      -
      Copy
      -
      Paste
      - -
      - Toolbar -
      -
      Address
      -
      Link
      -
      Navigation Toolbar
      -
      Bookmark Toolbar
      - -
      New Toolbar...
      -
      -
      -
      Delete
      -
      Select All
      -
      -
      -
      Ok
      -
      Cancel
      -
      -
      -
      Help
      -
      Update
      -
      - About - -
      -
      - - + + + + + SplitButton Actions - jQuery EasyUI Demo + + + + + + + +

      SplitButton Actions

      +

      Click the buttons below to perform actions.

      +
      + Disable Edit + Enable Edit +
      +
      + Home + Edit + Ok + Help +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Ok
      +
      Cancel
      +
      +
      +
      Help
      +
      Update
      +
      + About + +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/splitbutton/basic.html b/vendor/FHC-vendor/easyui/demo/splitbutton/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/splitbutton/basic.html rename to vendor/FHC-vendor/easyui/demo/splitbutton/basic.html index 795d526e8..2f31ec1b0 --- a/vendor/easyui/demo/splitbutton/basic.html +++ b/vendor/FHC-vendor/easyui/demo/splitbutton/basic.html @@ -1,61 +1,61 @@ - - - - - Basic SplitButton - jQuery EasyUI Demo - - - - - - - -

      Basic SplitButton

      -

      Move mouse over the arrow area of button to drop down menu.

      -
      -
      - Home - Edit - Ok - Help -
      -
      -
      Undo
      -
      Redo
      - -
      Cut
      -
      Copy
      -
      Paste
      - -
      - Toolbar -
      -
      Address
      -
      Link
      -
      Navigation Toolbar
      -
      Bookmark Toolbar
      - -
      New Toolbar...
      -
      -
      -
      Delete
      -
      Select All
      -
      -
      -
      Ok
      -
      Cancel
      -
      -
      -
      Help
      -
      Update
      -
      - About - -
      -
      - - + + + + + Basic SplitButton - jQuery EasyUI Demo + + + + + + + +

      Basic SplitButton

      +

      Move mouse over the arrow area of button to drop down menu.

      +
      +
      + Home + Edit + Ok + Help +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Ok
      +
      Cancel
      +
      +
      +
      Help
      +
      Update
      +
      + About + +
      +
      + + \ No newline at end of file diff --git a/vendor/easyui/demo/switchbutton/action.html b/vendor/FHC-vendor/easyui/demo/switchbutton/action.html similarity index 100% rename from vendor/easyui/demo/switchbutton/action.html rename to vendor/FHC-vendor/easyui/demo/switchbutton/action.html diff --git a/vendor/easyui/demo/switchbutton/basic.html b/vendor/FHC-vendor/easyui/demo/switchbutton/basic.html similarity index 100% rename from vendor/easyui/demo/switchbutton/basic.html rename to vendor/FHC-vendor/easyui/demo/switchbutton/basic.html diff --git a/vendor/FHC-vendor/easyui/demo/tabs/_content.html b/vendor/FHC-vendor/easyui/demo/tabs/_content.html new file mode 100644 index 000000000..f7b8e2ee7 --- /dev/null +++ b/vendor/FHC-vendor/easyui/demo/tabs/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

      Here is the content loaded via AJAX.

      + + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/autoheight.html b/vendor/FHC-vendor/easyui/demo/tabs/autoheight.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/autoheight.html rename to vendor/FHC-vendor/easyui/demo/tabs/autoheight.html index 8fd287ad6..e34a3dc8e --- a/vendor/easyui/demo/tabs/autoheight.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/autoheight.html @@ -1,36 +1,36 @@ - - - - - Auto Height for Tabs - jQuery EasyUI Demo - - - - - - - -

      Auto Height for Tabs

      -

      The tabs height is auto adjusted according to tab panel content.

      -
      -
      -
      -

      jQuery EasyUI framework helps you build your web pages easily.

      -
        -
      • easyui is a collection of user-interface plugin based on jQuery.
      • -
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • -
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • -
      • complete framework for HTML5 web page.
      • -
      • easyui save your time and scales while developing your products.
      • -
      • easyui is very easy but powerful.
      • -
      -
      -
      -
        -
        -
        - This is the help content. -
        -
        - + + + + + Auto Height for Tabs - jQuery EasyUI Demo + + + + + + + +

        Auto Height for Tabs

        +

        The tabs height is auto adjusted according to tab panel content.

        +
        +
        +
        +

        jQuery EasyUI framework helps you build your web pages easily.

        +
          +
        • easyui is a collection of user-interface plugin based on jQuery.
        • +
        • easyui provides essential functionality for building modem, interactive, javascript applications.
        • +
        • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
        • +
        • complete framework for HTML5 web page.
        • +
        • easyui save your time and scales while developing your products.
        • +
        • easyui is very easy but powerful.
        • +
        +
        +
        +
          +
          +
          + This is the help content. +
          +
          + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/basic.html b/vendor/FHC-vendor/easyui/demo/tabs/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/basic.html rename to vendor/FHC-vendor/easyui/demo/tabs/basic.html index c5a7ce675..293b91ce7 --- a/vendor/easyui/demo/tabs/basic.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/basic.html @@ -1,36 +1,36 @@ - - - - - Basic Tabs - jQuery EasyUI Demo - - - - - - - -

          Basic Tabs

          -

          Click tab strip to swap tab panel content.

          -
          -
          -
          -

          jQuery EasyUI framework helps you build your web pages easily.

          -
            -
          • easyui is a collection of user-interface plugin based on jQuery.
          • -
          • easyui provides essential functionality for building modem, interactive, javascript applications.
          • -
          • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
          • -
          • complete framework for HTML5 web page.
          • -
          • easyui save your time and scales while developing your products.
          • -
          • easyui is very easy but powerful.
          • -
          -
          -
          -
            -
            -
            - This is the help content. -
            -
            - + + + + + Basic Tabs - jQuery EasyUI Demo + + + + + + + +

            Basic Tabs

            +

            Click tab strip to swap tab panel content.

            +
            +
            +
            +

            jQuery EasyUI framework helps you build your web pages easily.

            +
              +
            • easyui is a collection of user-interface plugin based on jQuery.
            • +
            • easyui provides essential functionality for building modem, interactive, javascript applications.
            • +
            • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
            • +
            • complete framework for HTML5 web page.
            • +
            • easyui save your time and scales while developing your products.
            • +
            • easyui is very easy but powerful.
            • +
            +
            +
            +
              +
              +
              + This is the help content. +
              +
              + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/dropdown.html b/vendor/FHC-vendor/easyui/demo/tabs/dropdown.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/dropdown.html rename to vendor/FHC-vendor/easyui/demo/tabs/dropdown.html index e13426c39..7c9daacf3 --- a/vendor/easyui/demo/tabs/dropdown.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/dropdown.html @@ -1,55 +1,55 @@ - - - - - Tabs with DropDown - jQuery EasyUI Demo - - - - - - - -

              Tabs with DropDown

              -

              This sample shows how to add a dropdown menu over a tab strip.

              -
              -
              -
              -

              jQuery EasyUI framework helps you build your web pages easily.

              -
                -
              • easyui is a collection of user-interface plugin based on jQuery.
              • -
              • easyui provides essential functionality for building modem, interactive, javascript applications.
              • -
              • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
              • -
              • complete framework for HTML5 web page.
              • -
              • easyui save your time and scales while developing your products.
              • -
              • easyui is very easy but powerful.
              • -
              -
              -
              -
                -
                -
                - This is the help content. -
                -
                -
                -
                Welcome
                -
                Help Contents
                -
                Search
                -
                Dynamic Help
                -
                - - - + + + + + Tabs with DropDown - jQuery EasyUI Demo + + + + + + + +

                Tabs with DropDown

                +

                This sample shows how to add a dropdown menu over a tab strip.

                +
                +
                +
                +

                jQuery EasyUI framework helps you build your web pages easily.

                +
                  +
                • easyui is a collection of user-interface plugin based on jQuery.
                • +
                • easyui provides essential functionality for building modem, interactive, javascript applications.
                • +
                • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                • +
                • complete framework for HTML5 web page.
                • +
                • easyui save your time and scales while developing your products.
                • +
                • easyui is very easy but powerful.
                • +
                +
                +
                +
                  +
                  +
                  + This is the help content. +
                  +
                  +
                  +
                  Welcome
                  +
                  Help Contents
                  +
                  Search
                  +
                  Dynamic Help
                  +
                  + + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/fixedwidth.html b/vendor/FHC-vendor/easyui/demo/tabs/fixedwidth.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/fixedwidth.html rename to vendor/FHC-vendor/easyui/demo/tabs/fixedwidth.html index 18030664a..390e9878e --- a/vendor/easyui/demo/tabs/fixedwidth.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/fixedwidth.html @@ -1,37 +1,37 @@ - - - - - Fixed Tab Width - jQuery EasyUI Demo - - - - - - - -

                  Fixed Tab Width

                  -

                  The tab strips have fixed width and height.

                  -
                  -
                  -
                  -

                  Home Content.

                  -
                  -
                  -

                  Maps Content.

                  -
                  -
                  -

                  Journal Content.

                  -
                  -
                  -

                  History Content.

                  -
                  -
                  -

                  References Content.

                  -
                  -
                  -

                  Contact Content.

                  -
                  -
                  - + + + + + Fixed Tab Width - jQuery EasyUI Demo + + + + + + + +

                  Fixed Tab Width

                  +

                  The tab strips have fixed width and height.

                  +
                  +
                  +
                  +

                  Home Content.

                  +
                  +
                  +

                  Maps Content.

                  +
                  +
                  +

                  Journal Content.

                  +
                  +
                  +

                  History Content.

                  +
                  +
                  +

                  References Content.

                  +
                  +
                  +

                  Contact Content.

                  +
                  +
                  + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/fluid.html b/vendor/FHC-vendor/easyui/demo/tabs/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/fluid.html rename to vendor/FHC-vendor/easyui/demo/tabs/fluid.html index 42cf7fc36..d31d6fb65 --- a/vendor/easyui/demo/tabs/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/fluid.html @@ -1,24 +1,24 @@ - - - - - Fluid Tabs - jQuery EasyUI Demo - - - - - - - -

                  Fluid Tabs

                  -

                  This example shows how to set the width of Tabs to a percentage of its parent container.

                  -
                  -
                  -
                  -

                  The tabs has a width of 100%.

                  -
                  -
                  -
                  -
                  - + + + + + Fluid Tabs - jQuery EasyUI Demo + + + + + + + +

                  Fluid Tabs

                  +

                  This example shows how to set the width of Tabs to a percentage of its parent container.

                  +
                  +
                  +
                  +

                  The tabs has a width of 100%.

                  +
                  +
                  +
                  +
                  + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/hover.html b/vendor/FHC-vendor/easyui/demo/tabs/hover.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/hover.html rename to vendor/FHC-vendor/easyui/demo/tabs/hover.html index 04419c852..5b62ac90b --- a/vendor/easyui/demo/tabs/hover.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/hover.html @@ -1,46 +1,46 @@ - - - - - Hover Tabs - jQuery EasyUI Demo - - - - - - - -

                  Hover Tabs

                  -

                  Move mouse over the tab strip to open the tab panel.

                  -
                  -
                  -
                  -

                  jQuery EasyUI framework helps you build your web pages easily.

                  -
                    -
                  • easyui is a collection of user-interface plugin based on jQuery.
                  • -
                  • easyui provides essential functionality for building modem, interactive, javascript applications.
                  • -
                  • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                  • -
                  • complete framework for HTML5 web page.
                  • -
                  • easyui save your time and scales while developing your products.
                  • -
                  • easyui is very easy but powerful.
                  • -
                  -
                  -
                  -
                    -
                    -
                    - This is the help content. -
                    -
                    - - + + + + + Hover Tabs - jQuery EasyUI Demo + + + + + + + +

                    Hover Tabs

                    +

                    Move mouse over the tab strip to open the tab panel.

                    +
                    +
                    +
                    +

                    jQuery EasyUI framework helps you build your web pages easily.

                    +
                      +
                    • easyui is a collection of user-interface plugin based on jQuery.
                    • +
                    • easyui provides essential functionality for building modem, interactive, javascript applications.
                    • +
                    • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                    • +
                    • complete framework for HTML5 web page.
                    • +
                    • easyui save your time and scales while developing your products.
                    • +
                    • easyui is very easy but powerful.
                    • +
                    +
                    +
                    +
                      +
                      +
                      + This is the help content. +
                      +
                      + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/images/modem.png b/vendor/FHC-vendor/easyui/demo/tabs/images/modem.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo/tabs/images/modem.png rename to vendor/FHC-vendor/easyui/demo/tabs/images/modem.png diff --git a/vendor/easyui/demo/tabs/images/pda.png b/vendor/FHC-vendor/easyui/demo/tabs/images/pda.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo/tabs/images/pda.png rename to vendor/FHC-vendor/easyui/demo/tabs/images/pda.png diff --git a/vendor/easyui/demo/tabs/images/scanner.png b/vendor/FHC-vendor/easyui/demo/tabs/images/scanner.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo/tabs/images/scanner.png rename to vendor/FHC-vendor/easyui/demo/tabs/images/scanner.png diff --git a/vendor/easyui/demo/tabs/images/tablet.png b/vendor/FHC-vendor/easyui/demo/tabs/images/tablet.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/demo/tabs/images/tablet.png rename to vendor/FHC-vendor/easyui/demo/tabs/images/tablet.png diff --git a/vendor/easyui/demo/tabs/nestedtabs.html b/vendor/FHC-vendor/easyui/demo/tabs/nestedtabs.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/nestedtabs.html rename to vendor/FHC-vendor/easyui/demo/tabs/nestedtabs.html index 6f78600e7..94c2ac5dd --- a/vendor/easyui/demo/tabs/nestedtabs.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/nestedtabs.html @@ -1,54 +1,54 @@ - - - - - Nested Tabs - jQuery EasyUI Demo - - - - - - - -

                      Nested Tabs

                      -

                      The tab panel can contain sub tabs or other components.

                      -
                      -
                      -
                      -
                      -
                      Content 1
                      -
                      Content 2
                      -
                      Content 3
                      -
                      -
                      -
                      -
                      - -
                      -
                      - - - - - - - - - - - - - - - - - - - - -
                      Title1Title2Title3
                      d11d12d13
                      d21d22d23
                      -
                      -
                      - - + + + + + Nested Tabs - jQuery EasyUI Demo + + + + + + + +

                      Nested Tabs

                      +

                      The tab panel can contain sub tabs or other components.

                      +
                      +
                      +
                      +
                      +
                      Content 1
                      +
                      Content 2
                      +
                      Content 3
                      +
                      +
                      +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + + + + + + + +
                      Title1Title2Title3
                      d11d12d13
                      d21d22d23
                      +
                      +
                      + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/striptools.html b/vendor/FHC-vendor/easyui/demo/tabs/striptools.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/striptools.html rename to vendor/FHC-vendor/easyui/demo/tabs/striptools.html index 13ca5b458..83e6ba0d1 --- a/vendor/easyui/demo/tabs/striptools.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/striptools.html @@ -1,39 +1,39 @@ - - - - - Tabs Strip Tools - jQuery EasyUI Demo - - - - - - - -

                      Tabs Strip Tools

                      -

                      Click the mini-buttons on the tab strip to perform actions.

                      -
                      -
                      -
                      -

                      jQuery EasyUI framework helps you build your web pages easily.

                      -
                        -
                      • easyui is a collection of user-interface plugin based on jQuery.
                      • -
                      • easyui provides essential functionality for building modem, interactive, javascript applications.
                      • -
                      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                      • -
                      • complete framework for HTML5 web page.
                      • -
                      • easyui save your time and scales while developing your products.
                      • -
                      • easyui is very easy but powerful.
                      • -
                      -
                      -
                      - This is the help content. -
                      -
                      -
                      - - - -
                      - - + + + + + Tabs Strip Tools - jQuery EasyUI Demo + + + + + + + +

                      Tabs Strip Tools

                      +

                      Click the mini-buttons on the tab strip to perform actions.

                      +
                      +
                      +
                      +

                      jQuery EasyUI framework helps you build your web pages easily.

                      +
                        +
                      • easyui is a collection of user-interface plugin based on jQuery.
                      • +
                      • easyui provides essential functionality for building modem, interactive, javascript applications.
                      • +
                      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                      • +
                      • complete framework for HTML5 web page.
                      • +
                      • easyui save your time and scales while developing your products.
                      • +
                      • easyui is very easy but powerful.
                      • +
                      +
                      +
                      + This is the help content. +
                      +
                      +
                      + + + +
                      + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/style.html b/vendor/FHC-vendor/easyui/demo/tabs/style.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/style.html rename to vendor/FHC-vendor/easyui/demo/tabs/style.html index adcb50771..f27eae1de --- a/vendor/easyui/demo/tabs/style.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/style.html @@ -1,51 +1,51 @@ - - - - - Tabs Style - jQuery EasyUI Demo - - - - - - - -

                      Tabs Style

                      -

                      Click the options below to change the tabs style.

                      -
                      - plain
                      - narrow
                      - pill
                      - justified -
                      -
                      -
                      -

                      jQuery EasyUI framework helps you build your web pages easily.

                      -
                        -
                      • easyui is a collection of user-interface plugin based on jQuery.
                      • -
                      • easyui provides essential functionality for building modem, interactive, javascript applications.
                      • -
                      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                      • -
                      • complete framework for HTML5 web page.
                      • -
                      • easyui save your time and scales while developing your products.
                      • -
                      • easyui is very easy but powerful.
                      • -
                      -
                      -
                      -
                        -
                        -
                        - This is the help content. -
                        -
                        - - + + + + + Tabs Style - jQuery EasyUI Demo + + + + + + + +

                        Tabs Style

                        +

                        Click the options below to change the tabs style.

                        +
                        + plain
                        + narrow
                        + pill
                        + justified +
                        +
                        +
                        +

                        jQuery EasyUI framework helps you build your web pages easily.

                        +
                          +
                        • easyui is a collection of user-interface plugin based on jQuery.
                        • +
                        • easyui provides essential functionality for building modem, interactive, javascript applications.
                        • +
                        • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                        • +
                        • complete framework for HTML5 web page.
                        • +
                        • easyui save your time and scales while developing your products.
                        • +
                        • easyui is very easy but powerful.
                        • +
                        +
                        +
                        +
                          +
                          +
                          + This is the help content. +
                          +
                          + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/tabimage.html b/vendor/FHC-vendor/easyui/demo/tabs/tabimage.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/tabs/tabimage.html rename to vendor/FHC-vendor/easyui/demo/tabs/tabimage.html index 415cbef86..e9df65de8 --- a/vendor/easyui/demo/tabs/tabimage.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/tabimage.html @@ -1,41 +1,41 @@ - - - - - Tabs with Images - jQuery EasyUI Demo - - - - - - - -

                          Tabs with Images

                          -

                          The tab strip can display big images.

                          -
                          -
                          -
                          -

                          A modem (modulator-demodulator) is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information.

                          -
                          -
                          -

                          In computing, an image scanner—often abbreviated to just scanner—is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image.

                          -
                          -
                          -

                          A personal digital assistant (PDA), also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. PDAs are largely considered obsolete with the widespread adoption of smartphones.

                          -
                          -
                          -

                          A tablet computer, or simply tablet, is a one-piece mobile computer. Devices typically have a touchscreen, with finger or stylus gestures replacing the conventional computer mouse.

                          -
                          -
                          - - + + + + + Tabs with Images - jQuery EasyUI Demo + + + + + + + +

                          Tabs with Images

                          +

                          The tab strip can display big images.

                          +
                          +
                          +
                          +

                          A modem (modulator-demodulator) is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information.

                          +
                          +
                          +

                          In computing, an image scanner—often abbreviated to just scanner—is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image.

                          +
                          +
                          +

                          A personal digital assistant (PDA), also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. PDAs are largely considered obsolete with the widespread adoption of smartphones.

                          +
                          +
                          +

                          A tablet computer, or simply tablet, is a one-piece mobile computer. Devices typically have a touchscreen, with finger or stylus gestures replacing the conventional computer mouse.

                          +
                          +
                          + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/tabposition.html b/vendor/FHC-vendor/easyui/demo/tabs/tabposition.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/tabposition.html rename to vendor/FHC-vendor/easyui/demo/tabs/tabposition.html index 43547367c..9f1bc19ea --- a/vendor/easyui/demo/tabs/tabposition.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/tabposition.html @@ -1,45 +1,45 @@ - - - - - Tab Position - jQuery EasyUI Demo - - - - - - - -

                          Tab Position

                          -

                          Click the 'position' drop-down list and select an item to change the tab position.

                          -
                          - Position: - -
                          -
                          -
                          -

                          jQuery EasyUI framework helps you build your web pages easily.

                          -
                            -
                          • easyui is a collection of user-interface plugin based on jQuery.
                          • -
                          • easyui provides essential functionality for building modem, interactive, javascript applications.
                          • -
                          • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                          • -
                          • complete framework for HTML5 web page.
                          • -
                          • easyui save your time and scales while developing your products.
                          • -
                          • easyui is very easy but powerful.
                          • -
                          -
                          -
                          -
                            -
                            -
                            - This is the help content. -
                            -
                            - - + + + + + Tab Position - jQuery EasyUI Demo + + + + + + + +

                            Tab Position

                            +

                            Click the 'position' drop-down list and select an item to change the tab position.

                            +
                            + Position: + +
                            +
                            +
                            +

                            jQuery EasyUI framework helps you build your web pages easily.

                            +
                              +
                            • easyui is a collection of user-interface plugin based on jQuery.
                            • +
                            • easyui provides essential functionality for building modem, interactive, javascript applications.
                            • +
                            • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                            • +
                            • complete framework for HTML5 web page.
                            • +
                            • easyui save your time and scales while developing your products.
                            • +
                            • easyui is very easy but powerful.
                            • +
                            +
                            +
                            +
                              +
                              +
                              + This is the help content. +
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/tabstools.html b/vendor/FHC-vendor/easyui/demo/tabs/tabstools.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tabs/tabstools.html rename to vendor/FHC-vendor/easyui/demo/tabs/tabstools.html index 9c8fa1012..48bdda83e --- a/vendor/easyui/demo/tabs/tabstools.html +++ b/vendor/FHC-vendor/easyui/demo/tabs/tabstools.html @@ -1,41 +1,41 @@ - - - - - Tabs Tools - jQuery EasyUI Demo - - - - - - - -

                              Tabs Tools

                              -

                              Click the buttons on the top right of tabs header to add or remove tab panel.

                              -
                              -
                              -
                              -
                              - - -
                              - - + + + + + Tabs Tools - jQuery EasyUI Demo + + + + + + + +

                              Tabs Tools

                              +

                              Click the buttons on the top right of tabs header to add or remove tab panel.

                              +
                              +
                              +
                              +
                              + + +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/tree_data1.json b/vendor/FHC-vendor/easyui/demo/tabs/tree_data1.json old mode 100755 new mode 100644 similarity index 93% rename from vendor/easyui/demo/tree/tree_data1.json rename to vendor/FHC-vendor/easyui/demo/tabs/tree_data1.json index e0c619226..83fb0d619 --- a/vendor/easyui/demo/tree/tree_data1.json +++ b/vendor/FHC-vendor/easyui/demo/tabs/tree_data1.json @@ -1,49 +1,49 @@ -[{ - "id":1, - "text":"My Documents", - "children":[{ - "id":11, - "text":"Photos", - "state":"closed", - "children":[{ - "id":111, - "text":"Friend" - },{ - "id":112, - "text":"Wife" - },{ - "id":113, - "text":"Company" - }] - },{ - "id":12, - "text":"Program Files", - "children":[{ - "id":121, - "text":"Intel" - },{ - "id":122, - "text":"Java", - "attributes":{ - "p1":"Custom Attribute1", - "p2":"Custom Attribute2" - } - },{ - "id":123, - "text":"Microsoft Office" - },{ - "id":124, - "text":"Games", - "checked":true - }] - },{ - "id":13, - "text":"index.html" - },{ - "id":14, - "text":"about.html" - },{ - "id":15, - "text":"welcome.html" - }] -}] +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/vendor/easyui/demo/textbox/basic.html b/vendor/FHC-vendor/easyui/demo/textbox/basic.html similarity index 100% rename from vendor/easyui/demo/textbox/basic.html rename to vendor/FHC-vendor/easyui/demo/textbox/basic.html diff --git a/vendor/easyui/demo/textbox/button.html b/vendor/FHC-vendor/easyui/demo/textbox/button.html similarity index 100% rename from vendor/easyui/demo/textbox/button.html rename to vendor/FHC-vendor/easyui/demo/textbox/button.html diff --git a/vendor/easyui/demo/textbox/clearicon.html b/vendor/FHC-vendor/easyui/demo/textbox/clearicon.html similarity index 100% rename from vendor/easyui/demo/textbox/clearicon.html rename to vendor/FHC-vendor/easyui/demo/textbox/clearicon.html diff --git a/vendor/easyui/demo/textbox/custom.html b/vendor/FHC-vendor/easyui/demo/textbox/custom.html similarity index 100% rename from vendor/easyui/demo/textbox/custom.html rename to vendor/FHC-vendor/easyui/demo/textbox/custom.html diff --git a/vendor/easyui/demo/textbox/fluid.html b/vendor/FHC-vendor/easyui/demo/textbox/fluid.html similarity index 100% rename from vendor/easyui/demo/textbox/fluid.html rename to vendor/FHC-vendor/easyui/demo/textbox/fluid.html diff --git a/vendor/easyui/demo/textbox/icons.html b/vendor/FHC-vendor/easyui/demo/textbox/icons.html similarity index 100% rename from vendor/easyui/demo/textbox/icons.html rename to vendor/FHC-vendor/easyui/demo/textbox/icons.html diff --git a/vendor/easyui/demo/textbox/multiline.html b/vendor/FHC-vendor/easyui/demo/textbox/multiline.html similarity index 100% rename from vendor/easyui/demo/textbox/multiline.html rename to vendor/FHC-vendor/easyui/demo/textbox/multiline.html diff --git a/vendor/easyui/demo/textbox/size.html b/vendor/FHC-vendor/easyui/demo/textbox/size.html similarity index 100% rename from vendor/easyui/demo/textbox/size.html rename to vendor/FHC-vendor/easyui/demo/textbox/size.html diff --git a/vendor/easyui/demo/timespinner/actions.html b/vendor/FHC-vendor/easyui/demo/timespinner/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/timespinner/actions.html rename to vendor/FHC-vendor/easyui/demo/timespinner/actions.html index b03229fdc..62a70bfd5 --- a/vendor/easyui/demo/timespinner/actions.html +++ b/vendor/FHC-vendor/easyui/demo/timespinner/actions.html @@ -1,38 +1,38 @@ - - - - - TimeSpinner Actions - jQuery EasyUI Demo - - - - - - - -

                              TimeSpinner Actions

                              -

                              Click the buttons below to perform actions.

                              -
                              - GetValue - SetValue - Disable - Enable -
                              - - - + + + + + TimeSpinner Actions - jQuery EasyUI Demo + + + + + + + +

                              TimeSpinner Actions

                              +

                              Click the buttons below to perform actions.

                              +
                              + GetValue + SetValue + Disable + Enable +
                              + + + \ No newline at end of file diff --git a/vendor/easyui/demo/timespinner/basic.html b/vendor/FHC-vendor/easyui/demo/timespinner/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/timespinner/basic.html rename to vendor/FHC-vendor/easyui/demo/timespinner/basic.html index 55c88b9f8..8c32d3006 --- a/vendor/easyui/demo/timespinner/basic.html +++ b/vendor/FHC-vendor/easyui/demo/timespinner/basic.html @@ -1,18 +1,18 @@ - - - - - Basic TimeSpinner - jQuery EasyUI Demo - - - - - - - -

                              Basic TimeSpinner

                              -

                              Click spin button to adjust time.

                              -
                              - - + + + + + Basic TimeSpinner - jQuery EasyUI Demo + + + + + + + +

                              Basic TimeSpinner

                              +

                              Click spin button to adjust time.

                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/timespinner/fluid.html b/vendor/FHC-vendor/easyui/demo/timespinner/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/timespinner/fluid.html rename to vendor/FHC-vendor/easyui/demo/timespinner/fluid.html index 1b3ce46bf..8588fe953 --- a/vendor/easyui/demo/timespinner/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/timespinner/fluid.html @@ -1,21 +1,21 @@ - - - - - Fluid TimeSpinner - jQuery EasyUI Demo - - - - - - - -

                              Fluid TimeSpinner

                              -

                              This example shows how to set the width of TimeSpinner to a percentage of its parent container.

                              -
                              -

                              width: 50%

                              - -

                              width: 30%

                              - - + + + + + Fluid TimeSpinner - jQuery EasyUI Demo + + + + + + + +

                              Fluid TimeSpinner

                              +

                              This example shows how to set the width of TimeSpinner to a percentage of its parent container.

                              +
                              +

                              width: 50%

                              + +

                              width: 30%

                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/timespinner/range.html b/vendor/FHC-vendor/easyui/demo/timespinner/range.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/timespinner/range.html rename to vendor/FHC-vendor/easyui/demo/timespinner/range.html index 24ece6615..63bbf55c8 --- a/vendor/easyui/demo/timespinner/range.html +++ b/vendor/FHC-vendor/easyui/demo/timespinner/range.html @@ -1,20 +1,20 @@ - - - - - Time Range - jQuery EasyUI Demo - - - - - - - -

                              Time Range

                              -

                              The time value is constrained in specified range.

                              -
                              - From 08:30 to 18:00 -
                              - - + + + + + Time Range - jQuery EasyUI Demo + + + + + + + +

                              Time Range

                              +

                              The time value is constrained in specified range.

                              +
                              + From 08:30 to 18:00 +
                              + + \ No newline at end of file diff --git a/vendor/FHC-vendor/easyui/demo/tooltip/_content.html b/vendor/FHC-vendor/easyui/demo/tooltip/_content.html new file mode 100644 index 000000000..f7b8e2ee7 --- /dev/null +++ b/vendor/FHC-vendor/easyui/demo/tooltip/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

                              Here is the content loaded via AJAX.

                              + + + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/_dialog.html b/vendor/FHC-vendor/easyui/demo/tooltip/_dialog.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/tooltip/_dialog.html rename to vendor/FHC-vendor/easyui/demo/tooltip/_dialog.html index ddcdc074c..2c1b464d2 --- a/vendor/easyui/demo/tooltip/_dialog.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/_dialog.html @@ -1,23 +1,23 @@ - - - - - Dialog Content - - -
                              -
                              -
                              User Name:
                              - -
                              -
                              -
                              Password:
                              - -
                              -
                              - Login - Cancel -
                              -
                              - + + + + + Dialog Content + + +
                              +
                              +
                              User Name:
                              + +
                              +
                              +
                              Password:
                              + +
                              +
                              + Login + Cancel +
                              +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/ajax.html b/vendor/FHC-vendor/easyui/demo/tooltip/ajax.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tooltip/ajax.html rename to vendor/FHC-vendor/easyui/demo/tooltip/ajax.html index c0095fa2b..2de45de7e --- a/vendor/easyui/demo/tooltip/ajax.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/ajax.html @@ -1,32 +1,32 @@ - - - - - Ajax Tooltip - jQuery EasyUI Demo - - - - - - - -

                              Ajax Tooltip

                              -

                              The tooltip content can be loaded via AJAX.

                              -
                              - Hove me to display tooltip content via AJAX. - + + + + + Ajax Tooltip - jQuery EasyUI Demo + + + + + + + +

                              Ajax Tooltip

                              +

                              The tooltip content can be loaded via AJAX.

                              +
                              + Hove me to display tooltip content via AJAX. + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/basic.html b/vendor/FHC-vendor/easyui/demo/tooltip/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tooltip/basic.html rename to vendor/FHC-vendor/easyui/demo/tooltip/basic.html index 3fb13625b..b9ad0e0d3 --- a/vendor/easyui/demo/tooltip/basic.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/basic.html @@ -1,20 +1,20 @@ - - - - - Basic Tooltip - jQuery EasyUI Demo - - - - - - - -

                              Basic Tooltip

                              -

                              Hover the links to display tooltip message.

                              -
                              -

                              The tooltip can use each elements title attribute. - Hover me to display tooltip. -

                              - + + + + + Basic Tooltip - jQuery EasyUI Demo + + + + + + + +

                              Basic Tooltip

                              +

                              Hover the links to display tooltip message.

                              +
                              +

                              The tooltip can use each elements title attribute. + Hover me to display tooltip. +

                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/customcontent.html b/vendor/FHC-vendor/easyui/demo/tooltip/customcontent.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/tooltip/customcontent.html rename to vendor/FHC-vendor/easyui/demo/tooltip/customcontent.html index 68ce13c20..3e1ce9766 --- a/vendor/easyui/demo/tooltip/customcontent.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/customcontent.html @@ -1,32 +1,32 @@ - - - - - Custom Tooltip Content - jQuery EasyUI Demo - - - - - - - -

                              Custom Tooltip Content

                              -

                              Access to each elements attribute to get the tooltip content.

                              -
                              -
                              -
                              -
                              - - - + + + + + Custom Tooltip Content - jQuery EasyUI Demo + + + + + + + +

                              Custom Tooltip Content

                              +

                              Access to each elements attribute to get the tooltip content.

                              +
                              +
                              +
                              +
                              + + + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/customstyle.html b/vendor/FHC-vendor/easyui/demo/tooltip/customstyle.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tooltip/customstyle.html rename to vendor/FHC-vendor/easyui/demo/tooltip/customstyle.html index 13f10ac59..b5c8f3ec0 --- a/vendor/easyui/demo/tooltip/customstyle.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/customstyle.html @@ -1,52 +1,52 @@ - - - - - Custom Tooltip Style - jQuery EasyUI Demo - - - - - - - -

                              Custom Tooltip Style

                              -

                              This sample shows how to change the tooltip style.

                              -
                              -
                              -
                              Hover Me
                              -
                              -
                              -
                              Hover Me
                              -
                              - - + + + + + Custom Tooltip Style - jQuery EasyUI Demo + + + + + + + +

                              Custom Tooltip Style

                              +

                              This sample shows how to change the tooltip style.

                              +
                              +
                              +
                              Hover Me
                              +
                              +
                              +
                              Hover Me
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/position.html b/vendor/FHC-vendor/easyui/demo/tooltip/position.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tooltip/position.html rename to vendor/FHC-vendor/easyui/demo/tooltip/position.html index 8707b2557..ac97d67b7 --- a/vendor/easyui/demo/tooltip/position.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/position.html @@ -1,34 +1,34 @@ - - - - - Tooltip Position - jQuery EasyUI Demo - - - - - - - -

                              Tooltip Position

                              -

                              Click the drop-down list below to change where the tooltip appears.

                              -
                              - Select position: - -
                              -
                              Hover Me
                              -
                              - - + + + + + Tooltip Position - jQuery EasyUI Demo + + + + + + + +

                              Tooltip Position

                              +

                              Click the drop-down list below to change where the tooltip appears.

                              +
                              + Select position: + +
                              +
                              Hover Me
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/toolbar.html b/vendor/FHC-vendor/easyui/demo/tooltip/toolbar.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tooltip/toolbar.html rename to vendor/FHC-vendor/easyui/demo/tooltip/toolbar.html index c376ea2cd..ac1dff78d --- a/vendor/easyui/demo/tooltip/toolbar.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/toolbar.html @@ -1,40 +1,40 @@ - - - - - Tooltip as Toolbar - jQuery EasyUI Demo - - - - - - - -

                              Tooltip as Toolbar

                              -

                              This sample shows how to create a tooltip style toolbar.

                              -
                              -
                              -

                              Hover me to display toolbar.

                              -
                              -
                              -
                              - - - - - -
                              -
                              - + + + + + Tooltip as Toolbar - jQuery EasyUI Demo + + + + + + + +

                              Tooltip as Toolbar

                              +

                              This sample shows how to create a tooltip style toolbar.

                              +
                              +
                              +

                              Hover me to display toolbar.

                              +
                              +
                              +
                              + + + + + +
                              +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tooltip/tooltipdialog.html b/vendor/FHC-vendor/easyui/demo/tooltip/tooltipdialog.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/tooltip/tooltipdialog.html rename to vendor/FHC-vendor/easyui/demo/tooltip/tooltipdialog.html index a22bcac0b..caee52461 --- a/vendor/easyui/demo/tooltip/tooltipdialog.html +++ b/vendor/FHC-vendor/easyui/demo/tooltip/tooltipdialog.html @@ -1,44 +1,44 @@ - - - - - Tooltip Dialog - jQuery EasyUI Demo - - - - - - - -

                              Tooltip Dialog

                              -

                              This sample shows how to create a tooltip dialog.

                              -
                              -
                              -

                              Click here to see the tooltip dialog. -

                              - - + + + + + Tooltip Dialog - jQuery EasyUI Demo + + + + + + + +

                              Tooltip Dialog

                              +

                              This sample shows how to create a tooltip dialog.

                              +
                              +
                              +

                              Click here to see the tooltip dialog. +

                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/actions.html b/vendor/FHC-vendor/easyui/demo/tree/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/actions.html rename to vendor/FHC-vendor/easyui/demo/tree/actions.html index 4b194e724..b5e2d4bce --- a/vendor/easyui/demo/tree/actions.html +++ b/vendor/FHC-vendor/easyui/demo/tree/actions.html @@ -1,47 +1,47 @@ - - - - - Tree Actions - jQuery EasyUI Demo - - - - - - - -

                              Tree Actions

                              -

                              Click the buttons below to perform actions.

                              -
                              - CollapseAll - ExpandAll - ExpandTo - GetSelected -
                              -
                              - -
                              - - + + + + + Tree Actions - jQuery EasyUI Demo + + + + + + + +

                              Tree Actions

                              +

                              Click the buttons below to perform actions.

                              +
                              + CollapseAll + ExpandAll + ExpandTo + GetSelected +
                              +
                              + +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/animation.html b/vendor/FHC-vendor/easyui/demo/tree/animation.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/animation.html rename to vendor/FHC-vendor/easyui/demo/tree/animation.html index 83fb263fe..d7ea6ccb1 --- a/vendor/easyui/demo/tree/animation.html +++ b/vendor/FHC-vendor/easyui/demo/tree/animation.html @@ -1,20 +1,20 @@ - - - - - Animation Tree - jQuery EasyUI Demo - - - - - - - -

                              Animation Tree

                              -

                              Apply 'animate' property to true to enable animation effect.

                              -
                              -
                              - -
                              - + + + + + Animation Tree - jQuery EasyUI Demo + + + + + + + +

                              Animation Tree

                              +

                              Apply 'animate' property to true to enable animation effect.

                              +
                              +
                              + +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/basic.html b/vendor/FHC-vendor/easyui/demo/tree/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/tree/basic.html rename to vendor/FHC-vendor/easyui/demo/tree/basic.html index 96f4396ec..9d937a7bd --- a/vendor/easyui/demo/tree/basic.html +++ b/vendor/FHC-vendor/easyui/demo/tree/basic.html @@ -1,53 +1,53 @@ - - - - - Basic Tree - jQuery EasyUI Demo - - - - - - - -

                              Basic Tree

                              -

                              Click the arrow on the left to expand or collapse nodes.

                              -
                              -
                              - -
                              - - + + + + + Basic Tree - jQuery EasyUI Demo + + + + + + + +

                              Basic Tree

                              +

                              Click the arrow on the left to expand or collapse nodes.

                              +
                              +
                              + +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/checkbox.html b/vendor/FHC-vendor/easyui/demo/tree/checkbox.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/checkbox.html rename to vendor/FHC-vendor/easyui/demo/tree/checkbox.html index 2d1f8d564..734266e57 --- a/vendor/easyui/demo/tree/checkbox.html +++ b/vendor/FHC-vendor/easyui/demo/tree/checkbox.html @@ -1,37 +1,37 @@ - - - - - CheckBox Tree - jQuery EasyUI Demo - - - - - - - -

                              CheckBox Tree

                              -

                              Tree nodes with check boxes.

                              -
                              - GetChecked -
                              -
                              - CascadeCheck - OnlyLeafCheck -
                              -
                              - -
                              - - + + + + + CheckBox Tree - jQuery EasyUI Demo + + + + + + + +

                              CheckBox Tree

                              +

                              Tree nodes with check boxes.

                              +
                              + GetChecked +
                              +
                              + CascadeCheck + OnlyLeafCheck +
                              +
                              + +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/contextmenu.html b/vendor/FHC-vendor/easyui/demo/tree/contextmenu.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/tree/contextmenu.html rename to vendor/FHC-vendor/easyui/demo/tree/contextmenu.html index 342fcf3ee..67f14d0b9 --- a/vendor/easyui/demo/tree/contextmenu.html +++ b/vendor/FHC-vendor/easyui/demo/tree/contextmenu.html @@ -1,65 +1,65 @@ - - - - - Tree Context Menu - jQuery EasyUI Demo - - - - - - - -

                              Tree Context Menu

                              -

                              Right click on a node to display context menu.

                              -
                              -
                              - -
                              -
                              -
                              Append
                              -
                              Remove
                              - -
                              Expand
                              -
                              Collapse
                              -
                              - - + + + + + Tree Context Menu - jQuery EasyUI Demo + + + + + + + +

                              Tree Context Menu

                              +

                              Right click on a node to display context menu.

                              +
                              +
                              + +
                              +
                              +
                              Append
                              +
                              Remove
                              + +
                              Expand
                              +
                              Collapse
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/dnd.html b/vendor/FHC-vendor/easyui/demo/tree/dnd.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/dnd.html rename to vendor/FHC-vendor/easyui/demo/tree/dnd.html index 4be5bbd45..fdf4c1faa --- a/vendor/easyui/demo/tree/dnd.html +++ b/vendor/FHC-vendor/easyui/demo/tree/dnd.html @@ -1,20 +1,20 @@ - - - - - Drag Drop Tree Nodes - jQuery EasyUI Demo - - - - - - - -

                              Drag Drop Tree Nodes

                              -

                              Press mouse down and drag a node to another position.

                              -
                              -
                              - -
                              - + + + + + Drag Drop Tree Nodes - jQuery EasyUI Demo + + + + + + + +

                              Drag Drop Tree Nodes

                              +

                              Press mouse down and drag a node to another position.

                              +
                              +
                              + +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/editable.html b/vendor/FHC-vendor/easyui/demo/tree/editable.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/editable.html rename to vendor/FHC-vendor/easyui/demo/tree/editable.html index 9d3b62c80..afbb8c60d --- a/vendor/easyui/demo/tree/editable.html +++ b/vendor/FHC-vendor/easyui/demo/tree/editable.html @@ -1,27 +1,27 @@ - - - - - Editable Tree - jQuery EasyUI Demo - - - - - - - -

                              Editable Tree

                              -

                              Click the node to begin edit, press enter key to stop edit or esc key to cancel edit.

                              -
                              -
                              - -
                              - + + + + + Editable Tree - jQuery EasyUI Demo + + + + + + + +

                              Editable Tree

                              +

                              Click the node to begin edit, press enter key to stop edit or esc key to cancel edit.

                              +
                              +
                              + +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/formatting.html b/vendor/FHC-vendor/easyui/demo/tree/formatting.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/formatting.html rename to vendor/FHC-vendor/easyui/demo/tree/formatting.html index 187f58869..e83d1801f --- a/vendor/easyui/demo/tree/formatting.html +++ b/vendor/FHC-vendor/easyui/demo/tree/formatting.html @@ -1,32 +1,32 @@ - - - - - Formatting Tree Nodes - jQuery EasyUI Demo - - - - - - - -

                              Formatting Tree Nodes

                              -

                              This example shows how to display extra information on nodes.

                              -
                              -
                              - -
                              - + + + + + Formatting Tree Nodes - jQuery EasyUI Demo + + + + + + + +

                              Formatting Tree Nodes

                              +

                              This example shows how to display extra information on nodes.

                              +
                              +
                              + +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/icons.html b/vendor/FHC-vendor/easyui/demo/tree/icons.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/icons.html rename to vendor/FHC-vendor/easyui/demo/tree/icons.html index c4cecb84d..c50df79d4 --- a/vendor/easyui/demo/tree/icons.html +++ b/vendor/FHC-vendor/easyui/demo/tree/icons.html @@ -1,20 +1,20 @@ - - - - - Tree Node Icons - jQuery EasyUI Demo - - - - - - - -

                              Tree Node Icons

                              -

                              This sample illustrates how to add icons to tree node.

                              -
                              -
                              - -
                              - + + + + + Tree Node Icons - jQuery EasyUI Demo + + + + + + + +

                              Tree Node Icons

                              +

                              This sample illustrates how to add icons to tree node.

                              +
                              +
                              + +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/lazyload.html b/vendor/FHC-vendor/easyui/demo/tree/lazyload.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/tree/lazyload.html rename to vendor/FHC-vendor/easyui/demo/tree/lazyload.html index 865cee614..014b25573 --- a/vendor/easyui/demo/tree/lazyload.html +++ b/vendor/FHC-vendor/easyui/demo/tree/lazyload.html @@ -1,82 +1,82 @@ - - - - - Lazy Load Tree Nodes - jQuery EasyUI Demo - - - - - - - -

                              Lazy Load Tree Nodes

                              -

                              Get full hierarchical tree data but lazy load nodes level by level.

                              -
                              -
                              - -
                              - - + + + + + Lazy Load Tree Nodes - jQuery EasyUI Demo + + + + + + + +

                              Lazy Load Tree Nodes

                              +

                              Get full hierarchical tree data but lazy load nodes level by level.

                              +
                              +
                              + +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/tree/lines.html b/vendor/FHC-vendor/easyui/demo/tree/lines.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/tree/lines.html rename to vendor/FHC-vendor/easyui/demo/tree/lines.html index 681a16b4a..820ac44d2 --- a/vendor/easyui/demo/tree/lines.html +++ b/vendor/FHC-vendor/easyui/demo/tree/lines.html @@ -1,20 +1,20 @@ - - - - - Tree Lines - jQuery EasyUI Demo - - - - - - - -

                              Tree Lines

                              -

                              This sample shows how to show tree lines.

                              -
                              -
                              - -
                              - + + + + + Tree Lines - jQuery EasyUI Demo + + + + + + + +

                              Tree Lines

                              +

                              This sample shows how to show tree lines.

                              +
                              +
                              + +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/tabs/tree_data1.json b/vendor/FHC-vendor/easyui/demo/tree/tree_data1.json old mode 100755 new mode 100644 similarity index 93% rename from vendor/easyui/demo/tabs/tree_data1.json rename to vendor/FHC-vendor/easyui/demo/tree/tree_data1.json index e0c619226..83fb0d619 --- a/vendor/easyui/demo/tabs/tree_data1.json +++ b/vendor/FHC-vendor/easyui/demo/tree/tree_data1.json @@ -1,49 +1,49 @@ -[{ - "id":1, - "text":"My Documents", - "children":[{ - "id":11, - "text":"Photos", - "state":"closed", - "children":[{ - "id":111, - "text":"Friend" - },{ - "id":112, - "text":"Wife" - },{ - "id":113, - "text":"Company" - }] - },{ - "id":12, - "text":"Program Files", - "children":[{ - "id":121, - "text":"Intel" - },{ - "id":122, - "text":"Java", - "attributes":{ - "p1":"Custom Attribute1", - "p2":"Custom Attribute2" - } - },{ - "id":123, - "text":"Microsoft Office" - },{ - "id":124, - "text":"Games", - "checked":true - }] - },{ - "id":13, - "text":"index.html" - },{ - "id":14, - "text":"about.html" - },{ - "id":15, - "text":"welcome.html" - }] -}] +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/vendor/easyui/demo/tree/tree_data2.json b/vendor/FHC-vendor/easyui/demo/tree/tree_data2.json old mode 100755 new mode 100644 similarity index 93% rename from vendor/easyui/demo/tree/tree_data2.json rename to vendor/FHC-vendor/easyui/demo/tree/tree_data2.json index a6e225177..14e342911 --- a/vendor/easyui/demo/tree/tree_data2.json +++ b/vendor/FHC-vendor/easyui/demo/tree/tree_data2.json @@ -1,61 +1,61 @@ -[{ - "id":1, - "text":"My Documents", - "children":[{ - "id":11, - "text":"Photos", - "state":"closed", - "children":[{ - "id":111, - "text":"Friend" - },{ - "id":112, - "text":"Wife" - },{ - "id":113, - "text":"Company" - }] - },{ - "id":12, - "text":"Program Files", - "state":"closed", - "children":[{ - "id":121, - "text":"Intel" - },{ - "id":122, - "text":"Java" - },{ - "id":123, - "text":"Microsoft Office" - },{ - "id":124, - "text":"Games" - }] - },{ - "id":16, - "text":"Actions", - "children":[{ - "text":"Add", - "iconCls":"icon-add" - },{ - "text":"Remove", - "iconCls":"icon-remove" - },{ - "text":"Save", - "iconCls":"icon-save" - },{ - "text":"Search", - "iconCls":"icon-search" - }] - },{ - "id":13, - "text":"index.html" - },{ - "id":14, - "text":"about.html" - },{ - "id":15, - "text":"welcome.html" - }] -}] +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "state":"closed", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java" + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games" + }] + },{ + "id":16, + "text":"Actions", + "children":[{ + "text":"Add", + "iconCls":"icon-add" + },{ + "text":"Remove", + "iconCls":"icon-remove" + },{ + "text":"Save", + "iconCls":"icon-save" + },{ + "text":"Search", + "iconCls":"icon-search" + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/vendor/easyui/demo/treegrid/actions.html b/vendor/FHC-vendor/easyui/demo/treegrid/actions.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/treegrid/actions.html rename to vendor/FHC-vendor/easyui/demo/treegrid/actions.html index 6249a9eed..31430a531 --- a/vendor/easyui/demo/treegrid/actions.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/actions.html @@ -1,64 +1,64 @@ - - - - - TreeGrid Actions - jQuery EasyUI Demo - - - - - - - -

                              TreeGrid Actions

                              -

                              Click the buttons below to perform actions.

                              -
                              - CollapseAll - ExpandAll - ExpandTo -
                              - - - - - - - - - - -
                              Task NamePersonsBegin DateEnd DateProgress
                              - - + + + + + TreeGrid Actions - jQuery EasyUI Demo + + + + + + + +

                              TreeGrid Actions

                              +

                              Click the buttons below to perform actions.

                              +
                              + CollapseAll + ExpandAll + ExpandTo +
                              + + + + + + + + + + +
                              Task NamePersonsBegin DateEnd DateProgress
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/basic.html b/vendor/FHC-vendor/easyui/demo/treegrid/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/treegrid/basic.html rename to vendor/FHC-vendor/easyui/demo/treegrid/basic.html index 3b5076bb2..7daefebda --- a/vendor/easyui/demo/treegrid/basic.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/basic.html @@ -1,34 +1,34 @@ - - - - - Basic TreeGrid - jQuery EasyUI Demo - - - - - - - -

                              Basic TreeGrid

                              -

                              TreeGrid allows you to expand or collapse group rows.

                              -
                              - - - - - - - - -
                              NameSizeModified Date
                              - - + + + + + Basic TreeGrid - jQuery EasyUI Demo + + + + + + + +

                              Basic TreeGrid

                              +

                              TreeGrid allows you to expand or collapse group rows.

                              +
                              + + + + + + + + +
                              NameSizeModified Date
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/clientpagination.html b/vendor/FHC-vendor/easyui/demo/treegrid/clientpagination.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/treegrid/clientpagination.html rename to vendor/FHC-vendor/easyui/demo/treegrid/clientpagination.html index 03f8bf3a5..7e6a50060 --- a/vendor/easyui/demo/treegrid/clientpagination.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/clientpagination.html @@ -1,189 +1,189 @@ - - - - - Client Side Pagination in TreeGrid - jQuery EasyUI Demo - - - - - - - -

                              Client Side Pagination in TreeGrid

                              -

                              This sample shows how to implement client side pagination in TreeGrid.

                              -
                              - - - - - - - - - - -
                              Task NamePersonsBegin DateEnd DateProgress
                              - - + + + + + Client Side Pagination in TreeGrid - jQuery EasyUI Demo + + + + + + + +

                              Client Side Pagination in TreeGrid

                              +

                              This sample shows how to implement client side pagination in TreeGrid.

                              +
                              + + + + + + + + + + +
                              Task NamePersonsBegin DateEnd DateProgress
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/contextmenu.html b/vendor/FHC-vendor/easyui/demo/treegrid/contextmenu.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/treegrid/contextmenu.html rename to vendor/FHC-vendor/easyui/demo/treegrid/contextmenu.html index 3394ea15d..7bc92ed35 --- a/vendor/easyui/demo/treegrid/contextmenu.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/contextmenu.html @@ -1,106 +1,106 @@ - - - - - TreeGrid ContextMenu - jQuery EasyUI Demo - - - - - - - -

                              TreeGrid ContextMenu

                              -

                              Right click to display the context menu.

                              -
                              - - - - - - - - - - -
                              Task NamePersonsBegin DateEnd DateProgress
                              -
                              -
                              Append
                              -
                              Remove
                              - -
                              Collapse
                              -
                              Expand
                              -
                              - - + + + + + TreeGrid ContextMenu - jQuery EasyUI Demo + + + + + + + +

                              TreeGrid ContextMenu

                              +

                              Right click to display the context menu.

                              +
                              + + + + + + + + + + +
                              Task NamePersonsBegin DateEnd DateProgress
                              +
                              +
                              Append
                              +
                              Remove
                              + +
                              Collapse
                              +
                              Expand
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/editable.html b/vendor/FHC-vendor/easyui/demo/treegrid/editable.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/treegrid/editable.html rename to vendor/FHC-vendor/easyui/demo/treegrid/editable.html index 0b79d39d4..30713e6f6 --- a/vendor/easyui/demo/treegrid/editable.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/editable.html @@ -1,93 +1,93 @@ - - - - - Editable TreeGrid - jQuery EasyUI Demo - - - - - - - -

                              Editable TreeGrid

                              -

                              Select one node and click edit button to perform editing.

                              -
                              - Edit - Save - Cancel -
                              - - - - - - - - - - -
                              Task NamePersonsBegin DateEnd DateProgress
                              - - - + + + + + Editable TreeGrid - jQuery EasyUI Demo + + + + + + + +

                              Editable TreeGrid

                              +

                              Select one node and click edit button to perform editing.

                              +
                              + Edit + Save + Cancel +
                              + + + + + + + + + + +
                              Task NamePersonsBegin DateEnd DateProgress
                              + + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/fluid.html b/vendor/FHC-vendor/easyui/demo/treegrid/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/treegrid/fluid.html rename to vendor/FHC-vendor/easyui/demo/treegrid/fluid.html index 1fd82f674..e0c8c0e0a --- a/vendor/easyui/demo/treegrid/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/fluid.html @@ -1,33 +1,33 @@ - - - - - Fluid TreeGrid - jQuery EasyUI Demo - - - - - - - -

                              Fluid TreeGrid

                              -

                              This example shows how to assign percentage width to a column in TreeGrid.

                              -
                              - - - - - - - - -
                              Name(50%)Size(20%)Modified Date(30%)
                              - - + + + + + Fluid TreeGrid - jQuery EasyUI Demo + + + + + + + +

                              Fluid TreeGrid

                              +

                              This example shows how to assign percentage width to a column in TreeGrid.

                              +
                              + + + + + + + + +
                              Name(50%)Size(20%)Modified Date(30%)
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/footer.html b/vendor/FHC-vendor/easyui/demo/treegrid/footer.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/treegrid/footer.html rename to vendor/FHC-vendor/easyui/demo/treegrid/footer.html index d03e7563f..5d1cff9a6 --- a/vendor/easyui/demo/treegrid/footer.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/footer.html @@ -1,55 +1,55 @@ - - - - - TreeGrid with Footer - jQuery EasyUI Demo - - - - - - - -

                              TreeGrid with Footer

                              -

                              Show summary information on TreeGrid footer.

                              -
                              -
                              - - + + + + + TreeGrid with Footer - jQuery EasyUI Demo + + + + + + + +

                              TreeGrid with Footer

                              +

                              Show summary information on TreeGrid footer.

                              +
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/lines.html b/vendor/FHC-vendor/easyui/demo/treegrid/lines.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/treegrid/lines.html rename to vendor/FHC-vendor/easyui/demo/treegrid/lines.html index 935f862a3..78cf62339 --- a/vendor/easyui/demo/treegrid/lines.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/lines.html @@ -1,35 +1,35 @@ - - - - - TreeGrid Lines - jQuery EasyUI Demo - - - - - - - -

                              TreeGrid Lines

                              -

                              This example shows how to show treegrid lines.

                              -
                              - - - - - - - - -
                              NameSizeModified Date
                              - - + + + + + TreeGrid Lines - jQuery EasyUI Demo + + + + + + + +

                              TreeGrid Lines

                              +

                              This example shows how to show treegrid lines.

                              +
                              + + + + + + + + +
                              NameSizeModified Date
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/reports.html b/vendor/FHC-vendor/easyui/demo/treegrid/reports.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/treegrid/reports.html rename to vendor/FHC-vendor/easyui/demo/treegrid/reports.html index 062e6c87b..94f27f4b3 --- a/vendor/easyui/demo/treegrid/reports.html +++ b/vendor/FHC-vendor/easyui/demo/treegrid/reports.html @@ -1,49 +1,49 @@ - - - - - Reports using TreeGrid - jQuery EasyUI Demo - - - - - - - -

                              Reports using TreeGrid

                              -

                              Using TreeGrid to show complex reports.

                              -
                              - - - - - - - - - - - - - - - - - - - - - - -
                              Region
                              20092010
                              1st qrt.2st qrt.3st qrt.4st qrt.1st qrt.2st qrt.3st qrt.4st qrt.
                              - - + + + + + Reports using TreeGrid - jQuery EasyUI Demo + + + + + + + +

                              Reports using TreeGrid

                              +

                              Using TreeGrid to show complex reports.

                              +
                              + + + + + + + + + + + + + + + + + + + + + + +
                              Region
                              20092010
                              1st qrt.2st qrt.3st qrt.4st qrt.1st qrt.2st qrt.3st qrt.4st qrt.
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/treegrid_data1.json b/vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data1.json old mode 100755 new mode 100644 similarity index 94% rename from vendor/easyui/demo/treegrid/treegrid_data1.json rename to vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data1.json index 6cc109739..0313d4618 --- a/vendor/easyui/demo/treegrid/treegrid_data1.json +++ b/vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data1.json @@ -1,73 +1,73 @@ -[{ - "id":1, - "name":"C", - "size":"", - "date":"02/19/2010", - "children":[{ - "id":2, - "name":"Program Files", - "size":"120 MB", - "date":"03/20/2010", - "children":[{ - "id":21, - "name":"Java", - "size":"", - "date":"01/13/2010", - "state":"closed", - "children":[{ - "id":211, - "name":"java.exe", - "size":"142 KB", - "date":"01/13/2010" - },{ - "id":212, - "name":"jawt.dll", - "size":"5 KB", - "date":"01/13/2010" - }] - },{ - "id":22, - "name":"MySQL", - "size":"", - "date":"01/13/2010", - "state":"closed", - "children":[{ - "id":221, - "name":"my.ini", - "size":"10 KB", - "date":"02/26/2009" - },{ - "id":222, - "name":"my-huge.ini", - "size":"5 KB", - "date":"02/26/2009" - },{ - "id":223, - "name":"my-large.ini", - "size":"5 KB", - "date":"02/26/2009" - }] - }] - },{ - "id":3, - "name":"eclipse", - "size":"", - "date":"01/20/2010", - "children":[{ - "id":31, - "name":"eclipse.exe", - "size":"56 KB", - "date":"05/19/2009" - },{ - "id":32, - "name":"eclipse.ini", - "size":"1 KB", - "date":"04/20/2010" - },{ - "id":33, - "name":"notice.html", - "size":"7 KB", - "date":"03/17/2005" - }] - }] +[{ + "id":1, + "name":"C", + "size":"", + "date":"02/19/2010", + "children":[{ + "id":2, + "name":"Program Files", + "size":"120 MB", + "date":"03/20/2010", + "children":[{ + "id":21, + "name":"Java", + "size":"", + "date":"01/13/2010", + "state":"closed", + "children":[{ + "id":211, + "name":"java.exe", + "size":"142 KB", + "date":"01/13/2010" + },{ + "id":212, + "name":"jawt.dll", + "size":"5 KB", + "date":"01/13/2010" + }] + },{ + "id":22, + "name":"MySQL", + "size":"", + "date":"01/13/2010", + "state":"closed", + "children":[{ + "id":221, + "name":"my.ini", + "size":"10 KB", + "date":"02/26/2009" + },{ + "id":222, + "name":"my-huge.ini", + "size":"5 KB", + "date":"02/26/2009" + },{ + "id":223, + "name":"my-large.ini", + "size":"5 KB", + "date":"02/26/2009" + }] + }] + },{ + "id":3, + "name":"eclipse", + "size":"", + "date":"01/20/2010", + "children":[{ + "id":31, + "name":"eclipse.exe", + "size":"56 KB", + "date":"05/19/2009" + },{ + "id":32, + "name":"eclipse.ini", + "size":"1 KB", + "date":"04/20/2010" + },{ + "id":33, + "name":"notice.html", + "size":"7 KB", + "date":"03/17/2005" + }] + }] }] \ No newline at end of file diff --git a/vendor/easyui/demo/treegrid/treegrid_data2.json b/vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data2.json old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/treegrid/treegrid_data2.json rename to vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data2.json index 52c2c0527..f917507fd --- a/vendor/easyui/demo/treegrid/treegrid_data2.json +++ b/vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data2.json @@ -1,11 +1,11 @@ -{"total":7,"rows":[ - {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"iconCls":"icon-ok"}, - {"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"_parentId":1,"state":"closed"}, - {"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"_parentId":2}, - {"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"_parentId":2}, - {"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"_parentId":2}, - {"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80}, - {"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20} -],"footer":[ - {"name":"Total Persons:","persons":7,"iconCls":"icon-sum"} -]} +{"total":7,"rows":[ + {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"iconCls":"icon-ok"}, + {"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"_parentId":1,"state":"closed"}, + {"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"_parentId":2}, + {"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"_parentId":2}, + {"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"_parentId":2}, + {"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80}, + {"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20} +],"footer":[ + {"name":"Total Persons:","persons":7,"iconCls":"icon-sum"} +]} diff --git a/vendor/easyui/demo/treegrid/treegrid_data3.json b/vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data3.json old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/treegrid/treegrid_data3.json rename to vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data3.json index 7015d317b..0475c38de --- a/vendor/easyui/demo/treegrid/treegrid_data3.json +++ b/vendor/FHC-vendor/easyui/demo/treegrid/treegrid_data3.json @@ -1,13 +1,13 @@ -{"total":9,"rows":[ - {"id":1,"region":"Wyoming"}, - {"id":11,"region":"Albin","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, - {"id":12,"region":"Canon","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, - {"id":13,"region":"Egbert","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, - {"id":2,"region":"Washington"}, - {"id":21,"region":"Bellingham","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, - {"id":22,"region":"Chehalis","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, - {"id":23,"region":"Ellensburg","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, - {"id":24,"region":"Monroe","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2} -],"footer":[ - {"region":"Total","f1":14000,"f2":12600,"f3":13321,"f4":15281,"f5":14931,"f6":13461,"f7":14126,"f8":12866} +{"total":9,"rows":[ + {"id":1,"region":"Wyoming"}, + {"id":11,"region":"Albin","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":12,"region":"Canon","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":13,"region":"Egbert","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":2,"region":"Washington"}, + {"id":21,"region":"Bellingham","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":22,"region":"Chehalis","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":23,"region":"Ellensburg","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":24,"region":"Monroe","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2} +],"footer":[ + {"region":"Total","f1":14000,"f2":12600,"f3":13321,"f4":15281,"f5":14931,"f6":13461,"f7":14126,"f8":12866} ]} \ No newline at end of file diff --git a/vendor/easyui/demo/validatebox/basic.html b/vendor/FHC-vendor/easyui/demo/validatebox/basic.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/validatebox/basic.html rename to vendor/FHC-vendor/easyui/demo/validatebox/basic.html index 5df5f5e63..701bca287 --- a/vendor/easyui/demo/validatebox/basic.html +++ b/vendor/FHC-vendor/easyui/demo/validatebox/basic.html @@ -1,50 +1,50 @@ - - - - - Basic ValidateBox - jQuery EasyUI Demo - - - - - - - -

                              Basic ValidateBox

                              -

                              It's easy to add validate logic to a input box.

                              -
                              -
                              - - - - - - - - - - - - - - - - - - - - - -
                              User Name:
                              Email:
                              Birthday:
                              URL:
                              Phone:
                              -
                              - - - + + + + + Basic ValidateBox - jQuery EasyUI Demo + + + + + + + +

                              Basic ValidateBox

                              +

                              It's easy to add validate logic to a input box.

                              +
                              +
                              + + + + + + + + + + + + + + + + + + + + + +
                              User Name:
                              Email:
                              Birthday:
                              URL:
                              Phone:
                              +
                              + + + \ No newline at end of file diff --git a/vendor/easyui/demo/validatebox/customtooltip.html b/vendor/FHC-vendor/easyui/demo/validatebox/customtooltip.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/validatebox/customtooltip.html rename to vendor/FHC-vendor/easyui/demo/validatebox/customtooltip.html index e997f1362..8574793eb --- a/vendor/easyui/demo/validatebox/customtooltip.html +++ b/vendor/FHC-vendor/easyui/demo/validatebox/customtooltip.html @@ -1,95 +1,95 @@ - - - - - Custom ValidateBox Tooltip - jQuery EasyUI Demo - - - - - - - -

                              Custom ValidateBox Tooltip

                              -

                              This sample shows how to display another tooltip message on a valid textbox.

                              -
                              -
                              - - - - - - - - - - - - - - - - - - - - - -
                              User Name:
                              Email:
                              Birthday:
                              URL:
                              Phone:
                              -
                              - - - + + + + + Custom ValidateBox Tooltip - jQuery EasyUI Demo + + + + + + + +

                              Custom ValidateBox Tooltip

                              +

                              This sample shows how to display another tooltip message on a valid textbox.

                              +
                              +
                              + + + + + + + + + + + + + + + + + + + + + +
                              User Name:
                              Email:
                              Birthday:
                              URL:
                              Phone:
                              +
                              + + + \ No newline at end of file diff --git a/vendor/easyui/demo/validatebox/validateonblur.html b/vendor/FHC-vendor/easyui/demo/validatebox/validateonblur.html old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/demo/validatebox/validateonblur.html rename to vendor/FHC-vendor/easyui/demo/validatebox/validateonblur.html index dc0211237..5709efa1b --- a/vendor/easyui/demo/validatebox/validateonblur.html +++ b/vendor/FHC-vendor/easyui/demo/validatebox/validateonblur.html @@ -1,57 +1,57 @@ - - - - - Validate On Blur - jQuery EasyUI Demo - - - - - - - -

                              Validate On Blur

                              -

                              Active validation on first blur event.

                              -
                              -
                              - - - - - - - - - - - - - - - - - - - - - -
                              User Name:
                              Email:
                              Birthday:
                              URL:
                              Phone:
                              -
                              - - - - + + + + + Validate On Blur - jQuery EasyUI Demo + + + + + + + +

                              Validate On Blur

                              +

                              Active validation on first blur event.

                              +
                              +
                              + + + + + + + + + + + + + + + + + + + + + +
                              User Name:
                              Email:
                              Birthday:
                              URL:
                              Phone:
                              +
                              + + + + \ No newline at end of file diff --git a/vendor/easyui/demo/window/basic.html b/vendor/FHC-vendor/easyui/demo/window/basic.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/window/basic.html rename to vendor/FHC-vendor/easyui/demo/window/basic.html index fb402468b..4c3c551c0 --- a/vendor/easyui/demo/window/basic.html +++ b/vendor/FHC-vendor/easyui/demo/window/basic.html @@ -1,23 +1,23 @@ - - - - - Basic Window - jQuery EasyUI Demo - - - - - - - -

                              Basic Window

                              -

                              Window can be dragged freely on screen.

                              -
                              - Open - Close -
                              -
                              - The window content. -
                              - + + + + + Basic Window - jQuery EasyUI Demo + + + + + + + +

                              Basic Window

                              +

                              Window can be dragged freely on screen.

                              +
                              + Open + Close +
                              +
                              + The window content. +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/window/customtools.html b/vendor/FHC-vendor/easyui/demo/window/customtools.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/window/customtools.html rename to vendor/FHC-vendor/easyui/demo/window/customtools.html index 4a0e2c45d..1a22ad172 --- a/vendor/easyui/demo/window/customtools.html +++ b/vendor/FHC-vendor/easyui/demo/window/customtools.html @@ -1,30 +1,30 @@ - - - - - Custom Window Tools - jQuery EasyUI Demo - - - - - - - -

                              Custom Window Tools

                              -

                              Click the right top buttons to perform actions.

                              -
                              - Open - Close -
                              -
                              - The window content. -
                              -
                              - - - - -
                              - - + + + + + Custom Window Tools - jQuery EasyUI Demo + + + + + + + +

                              Custom Window Tools

                              +

                              Click the right top buttons to perform actions.

                              +
                              + Open + Close +
                              +
                              + The window content. +
                              +
                              + + + + +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/window/fluid.html b/vendor/FHC-vendor/easyui/demo/window/fluid.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/window/fluid.html rename to vendor/FHC-vendor/easyui/demo/window/fluid.html index 13406fa19..11b3967ab --- a/vendor/easyui/demo/window/fluid.html +++ b/vendor/FHC-vendor/easyui/demo/window/fluid.html @@ -1,24 +1,24 @@ - - - - - Fluid Window - jQuery EasyUI Demo - - - - - - - -

                              Fluid Window

                              -

                              This example shows how to set the width of Window to a percentage of its parent container.

                              -
                              -
                              -

                              The window has a width of 80%.

                              -
                              - + + + + + Fluid Window - jQuery EasyUI Demo + + + + + + + +

                              Fluid Window

                              +

                              This example shows how to set the width of Window to a percentage of its parent container.

                              +
                              +
                              +

                              The window has a width of 80%.

                              +
                              + \ No newline at end of file diff --git a/vendor/easyui/demo/window/footer.html b/vendor/FHC-vendor/easyui/demo/window/footer.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/window/footer.html rename to vendor/FHC-vendor/easyui/demo/window/footer.html index 60e8b9aeb..ba29d5321 --- a/vendor/easyui/demo/window/footer.html +++ b/vendor/FHC-vendor/easyui/demo/window/footer.html @@ -1,24 +1,24 @@ - - - - - Window with a Footer - jQuery EasyUI Demo - - - - - - - -

                              Window with a Footer

                              -

                              This example shows how to attach a footer bar to the window.

                              -
                              - Open - Close -
                              -
                              - The window content. -
                              - - + + + + + Window with a Footer - jQuery EasyUI Demo + + + + + + + +

                              Window with a Footer

                              +

                              This example shows how to attach a footer bar to the window.

                              +
                              + Open + Close +
                              +
                              + The window content. +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/window/inlinewindow.html b/vendor/FHC-vendor/easyui/demo/window/inlinewindow.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/window/inlinewindow.html rename to vendor/FHC-vendor/easyui/demo/window/inlinewindow.html index f272bb167..833588019 --- a/vendor/easyui/demo/window/inlinewindow.html +++ b/vendor/FHC-vendor/easyui/demo/window/inlinewindow.html @@ -1,26 +1,26 @@ - - - - - Inline Window - jQuery EasyUI Demo - - - - - - - -

                              Inline Window

                              -

                              The inline window stay inside its parent.

                              -
                              - Open - Close -
                              -
                              -
                              - This window stay inside its parent -
                              -
                              - - + + + + + Inline Window - jQuery EasyUI Demo + + + + + + + +

                              Inline Window

                              +

                              The inline window stay inside its parent.

                              +
                              + Open + Close +
                              +
                              +
                              + This window stay inside its parent +
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/window/modalwindow.html b/vendor/FHC-vendor/easyui/demo/window/modalwindow.html old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/demo/window/modalwindow.html rename to vendor/FHC-vendor/easyui/demo/window/modalwindow.html index ee273ec91..59e79ca3a --- a/vendor/easyui/demo/window/modalwindow.html +++ b/vendor/FHC-vendor/easyui/demo/window/modalwindow.html @@ -1,24 +1,24 @@ - - - - - Modal Window - jQuery EasyUI Demo - - - - - - - -

                              Modal Window

                              -

                              Click the open button below to open the modal window.

                              -
                              - Open - Close -
                              -
                              - The window content. -
                              - - + + + + + Modal Window - jQuery EasyUI Demo + + + + + + + +

                              Modal Window

                              +

                              Click the open button below to open the modal window.

                              +
                              + Open + Close +
                              +
                              + The window content. +
                              + + \ No newline at end of file diff --git a/vendor/easyui/demo/window/windowlayout.html b/vendor/FHC-vendor/easyui/demo/window/windowlayout.html old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/demo/window/windowlayout.html rename to vendor/FHC-vendor/easyui/demo/window/windowlayout.html index d79927213..7311ef699 --- a/vendor/easyui/demo/window/windowlayout.html +++ b/vendor/FHC-vendor/easyui/demo/window/windowlayout.html @@ -1,33 +1,33 @@ - - - - - Window Layout - jQuery EasyUI Demo - - - - - - - -

                              Window Layout

                              -

                              Using layout on window.

                              -
                              - Open - Close -
                              -
                              -
                              -
                              -
                              - jQuery EasyUI framework help you build your web page easily. -
                              -
                              - Ok - Cancel -
                              -
                              -
                              - - + + + + + Window Layout - jQuery EasyUI Demo + + + + + + + +

                              Window Layout

                              +

                              Using layout on window.

                              +
                              + Open + Close +
                              +
                              +
                              +
                              +
                              + jQuery EasyUI framework help you build your web page easily. +
                              +
                              + Ok + Cancel +
                              +
                              +
                              + + \ No newline at end of file diff --git a/vendor/easyui/easyloader.js b/vendor/FHC-vendor/easyui/easyloader.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/easyloader.js rename to vendor/FHC-vendor/easyui/easyloader.js index 9a61a5a77..558219294 --- a/vendor/easyui/easyloader.js +++ b/vendor/FHC-vendor/easyui/easyloader.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function(){ var _1={draggable:{js:"jquery.draggable.js"},droppable:{js:"jquery.droppable.js"},resizable:{js:"jquery.resizable.js"},linkbutton:{js:"jquery.linkbutton.js",css:"linkbutton.css"},progressbar:{js:"jquery.progressbar.js",css:"progressbar.css"},tooltip:{js:"jquery.tooltip.js",css:"tooltip.css"},pagination:{js:"jquery.pagination.js",css:"pagination.css",dependencies:["linkbutton"]},datagrid:{js:"jquery.datagrid.js",css:"datagrid.css",dependencies:["panel","resizable","linkbutton","pagination"]},treegrid:{js:"jquery.treegrid.js",css:"tree.css",dependencies:["datagrid"]},propertygrid:{js:"jquery.propertygrid.js",css:"propertygrid.css",dependencies:["datagrid"]},datalist:{js:"jquery.datalist.js",css:"datalist.css",dependencies:["datagrid"]},panel:{js:"jquery.panel.js",css:"panel.css"},window:{js:"jquery.window.js",css:"window.css",dependencies:["resizable","draggable","panel"]},dialog:{js:"jquery.dialog.js",css:"dialog.css",dependencies:["linkbutton","window"]},messager:{js:"jquery.messager.js",css:"messager.css",dependencies:["linkbutton","dialog","progressbar"]},layout:{js:"jquery.layout.js",css:"layout.css",dependencies:["resizable","panel"]},form:{js:"jquery.form.js"},menu:{js:"jquery.menu.js",css:"menu.css"},tabs:{js:"jquery.tabs.js",css:"tabs.css",dependencies:["panel","linkbutton"]},menubutton:{js:"jquery.menubutton.js",css:"menubutton.css",dependencies:["linkbutton","menu"]},splitbutton:{js:"jquery.splitbutton.js",css:"splitbutton.css",dependencies:["menubutton"]},switchbutton:{js:"jquery.switchbutton.js",css:"switchbutton.css"},accordion:{js:"jquery.accordion.js",css:"accordion.css",dependencies:["panel"]},calendar:{js:"jquery.calendar.js",css:"calendar.css"},textbox:{js:"jquery.textbox.js",css:"textbox.css",dependencies:["validatebox","linkbutton"]},filebox:{js:"jquery.filebox.js",css:"filebox.css",dependencies:["textbox"]},combo:{js:"jquery.combo.js",css:"combo.css",dependencies:["panel","textbox"]},combobox:{js:"jquery.combobox.js",css:"combobox.css",dependencies:["combo"]},combotree:{js:"jquery.combotree.js",dependencies:["combo","tree"]},combogrid:{js:"jquery.combogrid.js",dependencies:["combo","datagrid"]},validatebox:{js:"jquery.validatebox.js",css:"validatebox.css",dependencies:["tooltip"]},numberbox:{js:"jquery.numberbox.js",dependencies:["textbox"]},searchbox:{js:"jquery.searchbox.js",css:"searchbox.css",dependencies:["menubutton","textbox"]},spinner:{js:"jquery.spinner.js",css:"spinner.css",dependencies:["textbox"]},numberspinner:{js:"jquery.numberspinner.js",dependencies:["spinner","numberbox"]},timespinner:{js:"jquery.timespinner.js",dependencies:["spinner"]},tree:{js:"jquery.tree.js",css:"tree.css",dependencies:["draggable","droppable"]},datebox:{js:"jquery.datebox.js",css:"datebox.css",dependencies:["calendar","combo"]},datetimebox:{js:"jquery.datetimebox.js",dependencies:["datebox","timespinner"]},slider:{js:"jquery.slider.js",dependencies:["draggable"]},parser:{js:"jquery.parser.js"},mobile:{js:"jquery.mobile.js"}}; var _2={"af":"easyui-lang-af.js","ar":"easyui-lang-ar.js","bg":"easyui-lang-bg.js","ca":"easyui-lang-ca.js","cs":"easyui-lang-cs.js","cz":"easyui-lang-cz.js","da":"easyui-lang-da.js","de":"easyui-lang-de.js","el":"easyui-lang-el.js","en":"easyui-lang-en.js","es":"easyui-lang-es.js","fr":"easyui-lang-fr.js","it":"easyui-lang-it.js","jp":"easyui-lang-jp.js","nl":"easyui-lang-nl.js","pl":"easyui-lang-pl.js","pt_BR":"easyui-lang-pt_BR.js","ru":"easyui-lang-ru.js","sv_SE":"easyui-lang-sv_SE.js","tr":"easyui-lang-tr.js","zh_CN":"easyui-lang-zh_CN.js","zh_TW":"easyui-lang-zh_TW.js"}; diff --git a/vendor/easyui/jquery.easyui.min.js b/vendor/FHC-vendor/easyui/jquery.easyui.min.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/jquery.easyui.min.js rename to vendor/FHC-vendor/easyui/jquery.easyui.min.js index 227dda5da..6c6faa150 --- a/vendor/easyui/jquery.easyui.min.js +++ b/vendor/FHC-vendor/easyui/jquery.easyui.min.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $.parser={auto:true,onComplete:function(_1){ },plugins:["draggable","droppable","resizable","pagination","tooltip","linkbutton","menu","menubutton","splitbutton","switchbutton","progressbar","tree","textbox","filebox","combo","combobox","combotree","combogrid","numberbox","validatebox","searchbox","spinner","numberspinner","timespinner","datetimespinner","calendar","datebox","datetimebox","slider","layout","panel","datagrid","propertygrid","treegrid","datalist","tabs","accordion","window","dialog","form"],parse:function(_2){ diff --git a/vendor/easyui/jquery.easyui.mobile.js b/vendor/FHC-vendor/easyui/jquery.easyui.mobile.js similarity index 99% rename from vendor/easyui/jquery.easyui.mobile.js rename to vendor/FHC-vendor/easyui/jquery.easyui.mobile.js index 2f6eacf73..12120494c 100644 --- a/vendor/easyui/jquery.easyui.mobile.js +++ b/vendor/FHC-vendor/easyui/jquery.easyui.mobile.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $.fn.navpanel=function(_1,_2){ if(typeof _1=="string"){ diff --git a/vendor/easyui/jquery.min.js b/vendor/FHC-vendor/easyui/jquery.min.js similarity index 100% rename from vendor/easyui/jquery.min.js rename to vendor/FHC-vendor/easyui/jquery.min.js diff --git a/vendor/easyui/license_freeware.txt b/vendor/FHC-vendor/easyui/license_freeware.txt old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/license_freeware.txt rename to vendor/FHC-vendor/easyui/license_freeware.txt index 61912a12f..101b84dbc --- a/vendor/easyui/license_freeware.txt +++ b/vendor/FHC-vendor/easyui/license_freeware.txt @@ -1,14 +1,14 @@ -This license agreement refers to jQuery EasyUI software - Freeware License. - -jQuery EasyUI Team grants to you a limited, non-transferable and non-exclusive right to use, royalty-free, copy and redistribute the software. - -The licensee has the right to use the software for a non-profit projects/sites. There are no limitations on the number of non-profit projects/sites you can use the software in, you can use it on any number of non-profit projects/sites you need. There is no time limit, you can use the software for any period of time you need. There is no restriction while you are developing your solution. There are no royalties of any kind involved. - -The governmental entities are not allowed to use this freeware license. - -The licensee is allowed to copy and redistribute the software but you may not: -a) Distribute the modified software or part(s) of it as standalone application. -b) Sublicense, rent, lease or lend any portion of the software. -c) Modify or remove any copyright notices from any of the software files. - -jQuery EasyUI Team retains all ownership rights to the software. +This license agreement refers to jQuery EasyUI software - Freeware License. + +jQuery EasyUI Team grants to you a limited, non-transferable and non-exclusive right to use, royalty-free, copy and redistribute the software. + +The licensee has the right to use the software for a non-profit projects/sites. There are no limitations on the number of non-profit projects/sites you can use the software in, you can use it on any number of non-profit projects/sites you need. There is no time limit, you can use the software for any period of time you need. There is no restriction while you are developing your solution. There are no royalties of any kind involved. + +The governmental entities are not allowed to use this freeware license. + +The licensee is allowed to copy and redistribute the software but you may not: +a) Distribute the modified software or part(s) of it as standalone application. +b) Sublicense, rent, lease or lend any portion of the software. +c) Modify or remove any copyright notices from any of the software files. + +jQuery EasyUI Team retains all ownership rights to the software. diff --git a/vendor/easyui/locale/easyui-lang-af.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-af.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-af.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-af.js index 963fbc7fe..482c10c35 --- a/vendor/easyui/locale/easyui-lang-af.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-af.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Bladsy'; - $.fn.pagination.defaults.afterPageText = 'Van {pages}'; - $.fn.pagination.defaults.displayMsg = 'Wys (from) tot (to) van (total) items'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Verwerking, wag asseblief ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Die styl'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Die veld is verpligtend.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = "Gee 'n geldige e-pos adres."; - $.fn.validatebox.defaults.rules.url.message = "Gee 'n geldige URL nie."; - $.fn.validatebox.defaults.rules.length.message = "Voer 'n waarde tussen {0} en {1}."; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Vandag'; - $.fn.datebox.defaults.closeText = 'Sluit'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Bladsy'; + $.fn.pagination.defaults.afterPageText = 'Van {pages}'; + $.fn.pagination.defaults.displayMsg = 'Wys (from) tot (to) van (total) items'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Verwerking, wag asseblief ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Die styl'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Die veld is verpligtend.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = "Gee 'n geldige e-pos adres."; + $.fn.validatebox.defaults.rules.url.message = "Gee 'n geldige URL nie."; + $.fn.validatebox.defaults.rules.length.message = "Voer 'n waarde tussen {0} en {1}."; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Vandag'; + $.fn.datebox.defaults.closeText = 'Sluit'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-am.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-am.js similarity index 97% rename from vendor/easyui/locale/easyui-lang-am.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-am.js index 59f9db06b..51f4a7123 100644 --- a/vendor/easyui/locale/easyui-lang-am.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-am.js @@ -1,46 +1,46 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Էջ'; - $.fn.pagination.defaults.afterPageText = 'ից {pages}'; - $.fn.pagination.defaults.displayMsg = 'Դիտել {from}-ից {to}-ը {total} գրառումից'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Մշակվում է, խնդրում ենք սպասել ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Այո'; - $.messager.defaults.cancel = 'Փակել'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Այս դաշտը պարտադիր է.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Խնդրում ենք մուտքագրել գործող e-mail հասցե.'; - $.fn.validatebox.defaults.rules.url.message = 'Խնդրում ենք մուտքագրել գործող URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Խնդրում ենք մուտքագրել արժեք {0} {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Խնդրում ենք ուղղել այս դաշտը.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.firstDay = 1; - $.fn.calendar.defaults.weeks = ['Կ.','Ե.','Ե.','Չ.','Հ.','Ու.','Շ.']; - $.fn.calendar.defaults.months = ['Հունվար', 'Փետրվար', 'Մարտ', 'Ապրիլ', 'Մայիս', 'Հունիս', 'Հուլիս', 'Օգոստոս', 'Սեպտեմբեր', 'Հոկտեմբեր', 'Նոյեմբեր', 'Դեկտեմբեր']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Այսօր'; - $.fn.datebox.defaults.closeText = 'Փակել'; - $.fn.datebox.defaults.okText = 'Այո'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Էջ'; + $.fn.pagination.defaults.afterPageText = 'ից {pages}'; + $.fn.pagination.defaults.displayMsg = 'Դիտել {from}-ից {to}-ը {total} գրառումից'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Մշակվում է, խնդրում ենք սպասել ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Այո'; + $.messager.defaults.cancel = 'Փակել'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Այս դաշտը պարտադիր է.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Խնդրում ենք մուտքագրել գործող e-mail հասցե.'; + $.fn.validatebox.defaults.rules.url.message = 'Խնդրում ենք մուտքագրել գործող URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Խնդրում ենք մուտքագրել արժեք {0} {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Խնդրում ենք ուղղել այս դաշտը.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.firstDay = 1; + $.fn.calendar.defaults.weeks = ['Կ.','Ե.','Ե.','Չ.','Հ.','Ու.','Շ.']; + $.fn.calendar.defaults.months = ['Հունվար', 'Փետրվար', 'Մարտ', 'Ապրիլ', 'Մայիս', 'Հունիս', 'Հուլիս', 'Օգոստոս', 'Սեպտեմբեր', 'Հոկտեմբեր', 'Նոյեմբեր', 'Դեկտեմբեր']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Այսօր'; + $.fn.datebox.defaults.closeText = 'Փակել'; + $.fn.datebox.defaults.okText = 'Այո'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-ar.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-ar.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-ar.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-ar.js index 85accfa99..9f56d4561 --- a/vendor/easyui/locale/easyui-lang-ar.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-ar.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'صفحة'; - $.fn.pagination.defaults.afterPageText = 'من {pages}'; - $.fn.pagination.defaults.displayMsg = 'عرض {from} إلى {to} من {total} عنصر'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'معالجة, الرجاء الإنتظار ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'موافق'; - $.messager.defaults.cancel = 'إلغاء'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'هذا الحقل مطلوب.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'الرجاء إدخال بريد إلكتروني صحيح.'; - $.fn.validatebox.defaults.rules.url.message = 'الرجاء إدخال رابط صحيح.'; - $.fn.validatebox.defaults.rules.length.message = 'الرجاء إدخال قيمة بين {0} و {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'الرجاء التأكد من الحقل.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'اليوم'; - $.fn.datebox.defaults.closeText = 'إغلاق'; - $.fn.datebox.defaults.okText = 'موافق'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'صفحة'; + $.fn.pagination.defaults.afterPageText = 'من {pages}'; + $.fn.pagination.defaults.displayMsg = 'عرض {from} إلى {to} من {total} عنصر'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'معالجة, الرجاء الإنتظار ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'موافق'; + $.messager.defaults.cancel = 'إلغاء'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'هذا الحقل مطلوب.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'الرجاء إدخال بريد إلكتروني صحيح.'; + $.fn.validatebox.defaults.rules.url.message = 'الرجاء إدخال رابط صحيح.'; + $.fn.validatebox.defaults.rules.length.message = 'الرجاء إدخال قيمة بين {0} و {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'الرجاء التأكد من الحقل.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'اليوم'; + $.fn.datebox.defaults.closeText = 'إغلاق'; + $.fn.datebox.defaults.okText = 'موافق'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-bg.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-bg.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-bg.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-bg.js index daba59550..56df9a79d --- a/vendor/easyui/locale/easyui-lang-bg.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-bg.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Страница'; - $.fn.pagination.defaults.afterPageText = 'от {pages}'; - $.fn.pagination.defaults.displayMsg = 'Показани {from} за {to} от {total} продукти'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Обработка, моля изчакайте ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Добре'; - $.messager.defaults.cancel = 'Задрасквам'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Това поле е задължително.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Моля, въведете валиден имейл адрес.'; - $.fn.validatebox.defaults.rules.url.message = 'Моля въведете валиден URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Моля, въведете стойност между {0} и {1}.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Днес'; - $.fn.datebox.defaults.closeText = 'Близо'; - $.fn.datebox.defaults.okText = 'Добре'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Страница'; + $.fn.pagination.defaults.afterPageText = 'от {pages}'; + $.fn.pagination.defaults.displayMsg = 'Показани {from} за {to} от {total} продукти'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Обработка, моля изчакайте ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Добре'; + $.messager.defaults.cancel = 'Задрасквам'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Това поле е задължително.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Моля, въведете валиден имейл адрес.'; + $.fn.validatebox.defaults.rules.url.message = 'Моля въведете валиден URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Моля, въведете стойност между {0} и {1}.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Днес'; + $.fn.datebox.defaults.closeText = 'Близо'; + $.fn.datebox.defaults.okText = 'Добре'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-ca.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-ca.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-ca.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-ca.js index b018e2b02..872ff3d8b --- a/vendor/easyui/locale/easyui-lang-ca.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-ca.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Pàgina'; - $.fn.pagination.defaults.afterPageText = 'de {pages}'; - $.fn.pagination.defaults.displayMsg = "Veient {from} a {to} de {total} d'articles"; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Elaboració, si us plau esperi ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Cancel'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Aquest camp és obligatori.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Introduïu una adreça de correu electrònic vàlida.'; - $.fn.validatebox.defaults.rules.url.message = 'Si us plau, introduïu un URL vàlida.'; - $.fn.validatebox.defaults.rules.length.message = 'Si us plau, introduïu un valor entre {0} i {1}.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Avui'; - $.fn.datebox.defaults.closeText = 'Tancar'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Pàgina'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = "Veient {from} a {to} de {total} d'articles"; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Elaboració, si us plau esperi ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancel'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Aquest camp és obligatori.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Introduïu una adreça de correu electrònic vàlida.'; + $.fn.validatebox.defaults.rules.url.message = 'Si us plau, introduïu un URL vàlida.'; + $.fn.validatebox.defaults.rules.length.message = 'Si us plau, introduïu un valor entre {0} i {1}.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Avui'; + $.fn.datebox.defaults.closeText = 'Tancar'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-cs.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-cs.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-cs.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-cs.js index d87aafb5b..738ad90bd --- a/vendor/easyui/locale/easyui-lang-cs.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-cs.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Strana'; - $.fn.pagination.defaults.afterPageText = 'z {pages}'; - $.fn.pagination.defaults.displayMsg = 'Zobrazuji {from} do {to} z {total} položky'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Zpracování, čekejte prosím ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Zrušit'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Toto pole je vyžadováno.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Zadejte prosím platnou e-mailovou adresu.'; - $.fn.validatebox.defaults.rules.url.message = 'Zadejte prosím platnou adresu URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Prosím, zadejte hodnotu mezi {0} a {1}.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Dnes'; - $.fn.datebox.defaults.closeText = 'Zavřít'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Strana'; + $.fn.pagination.defaults.afterPageText = 'z {pages}'; + $.fn.pagination.defaults.displayMsg = 'Zobrazuji {from} do {to} z {total} položky'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Zpracování, čekejte prosím ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Zrušit'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Toto pole je vyžadováno.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Zadejte prosím platnou e-mailovou adresu.'; + $.fn.validatebox.defaults.rules.url.message = 'Zadejte prosím platnou adresu URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Prosím, zadejte hodnotu mezi {0} a {1}.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Dnes'; + $.fn.datebox.defaults.closeText = 'Zavřít'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-cz.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-cz.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-cz.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-cz.js index eea0d2b0f..0e370d459 --- a/vendor/easyui/locale/easyui-lang-cz.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-cz.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Strana'; - $.fn.pagination.defaults.afterPageText = 'z {pages}'; - $.fn.pagination.defaults.displayMsg = 'Zobrazuji záznam {from} až {to} z {total}.'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Pracuji, čekejte prosím…'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Zrušit'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Toto pole je vyžadováno.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Zadejte, prosím, platnou e-mailovou adresu.'; - $.fn.validatebox.defaults.rules.url.message = 'Zadejte, prosím, platnou adresu URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Zadejte, prosím, hodnotu mezi {0} a {1}.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['N','P','Ú','S','Č','P','S']; //neděle pondělí úterý středa čtvrtek pátek sobota - $.fn.calendar.defaults.months = ['led', 'únr', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro']; //leden únor březen duben květen červen červenec srpen září říjen listopad prosinec -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Dnes'; - $.fn.datebox.defaults.closeText = 'Zavřít'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Strana'; + $.fn.pagination.defaults.afterPageText = 'z {pages}'; + $.fn.pagination.defaults.displayMsg = 'Zobrazuji záznam {from} až {to} z {total}.'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Pracuji, čekejte prosím…'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Zrušit'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Toto pole je vyžadováno.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Zadejte, prosím, platnou e-mailovou adresu.'; + $.fn.validatebox.defaults.rules.url.message = 'Zadejte, prosím, platnou adresu URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Zadejte, prosím, hodnotu mezi {0} a {1}.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['N','P','Ú','S','Č','P','S']; //neděle pondělí úterý středa čtvrtek pátek sobota + $.fn.calendar.defaults.months = ['led', 'únr', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro']; //leden únor březen duben květen červen červenec srpen září říjen listopad prosinec +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Dnes'; + $.fn.datebox.defaults.closeText = 'Zavřít'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-da.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-da.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-da.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-da.js index f3f6e3b18..4a3841e98 --- a/vendor/easyui/locale/easyui-lang-da.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-da.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Page'; - $.fn.pagination.defaults.afterPageText = 'af {pages}'; - $.fn.pagination.defaults.displayMsg = 'Viser {from} til {to} af {total} poster'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Behandling, vent venligst ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Annuller'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Dette felt er påkrævet.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Angiv en gyldig e-mail-adresse.'; - $.fn.validatebox.defaults.rules.url.message = 'Angiv en gyldig webadresse.'; - $.fn.validatebox.defaults.rules.length.message = 'Angiv en værdi mellem {0} og {1}.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'I dag'; - $.fn.datebox.defaults.closeText = 'Luk'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Page'; + $.fn.pagination.defaults.afterPageText = 'af {pages}'; + $.fn.pagination.defaults.displayMsg = 'Viser {from} til {to} af {total} poster'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Behandling, vent venligst ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annuller'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Dette felt er påkrævet.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Angiv en gyldig e-mail-adresse.'; + $.fn.validatebox.defaults.rules.url.message = 'Angiv en gyldig webadresse.'; + $.fn.validatebox.defaults.rules.length.message = 'Angiv en værdi mellem {0} og {1}.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'I dag'; + $.fn.datebox.defaults.closeText = 'Luk'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-de.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-de.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-de.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-de.js index ffcba29ff..659cfe719 --- a/vendor/easyui/locale/easyui-lang-de.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-de.js @@ -1,63 +1,63 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Seite'; - $.fn.pagination.defaults.afterPageText = 'von {pages}'; - $.fn.pagination.defaults.displayMsg = '{from} bis {to} von {total} Datensätzen'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Verarbeitung läuft, bitte warten ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'OK'; - $.messager.defaults.cancel = 'Abbruch'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Dieses Feld wird benötigt.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.'; - $.fn.validatebox.defaults.rules.url.message = 'Bitte geben Sie eine gültige URL ein.'; - $.fn.validatebox.defaults.rules.length.message = 'Bitte geben Sie einen Wert zwischen {0} und {1} ein.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.firstDay = 1; - $.fn.calendar.defaults.weeks = ['S','M','D','M','D','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Heute'; - $.fn.datebox.defaults.closeText = 'Schließen'; - $.fn.datebox.defaults.okText = 'OK'; - $.fn.datebox.defaults.formatter = function(date){ - var y = date.getFullYear(); - var m = date.getMonth()+1; - var d = date.getDate(); - return (d<10?('0'+d):d)+'.'+(m<10?('0'+m):m)+'.'+y; - }; - $.fn.datebox.defaults.parser = function(s){ - if (!s) return new Date(); - var ss = s.split('.'); - var m = parseInt(ss[1],10); - var d = parseInt(ss[0],10); - var y = parseInt(ss[2],10); - if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ - return new Date(y,m-1,d); - } else { - return new Date(); - } - }; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Seite'; + $.fn.pagination.defaults.afterPageText = 'von {pages}'; + $.fn.pagination.defaults.displayMsg = '{from} bis {to} von {total} Datensätzen'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Verarbeitung läuft, bitte warten ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'OK'; + $.messager.defaults.cancel = 'Abbruch'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Dieses Feld wird benötigt.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.'; + $.fn.validatebox.defaults.rules.url.message = 'Bitte geben Sie eine gültige URL ein.'; + $.fn.validatebox.defaults.rules.length.message = 'Bitte geben Sie einen Wert zwischen {0} und {1} ein.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.firstDay = 1; + $.fn.calendar.defaults.weeks = ['S','M','D','M','D','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Heute'; + $.fn.datebox.defaults.closeText = 'Schließen'; + $.fn.datebox.defaults.okText = 'OK'; + $.fn.datebox.defaults.formatter = function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return (d<10?('0'+d):d)+'.'+(m<10?('0'+m):m)+'.'+y; + }; + $.fn.datebox.defaults.parser = function(s){ + if (!s) return new Date(); + var ss = s.split('.'); + var m = parseInt(ss[1],10); + var d = parseInt(ss[0],10); + var y = parseInt(ss[2],10); + if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ + return new Date(y,m-1,d); + } else { + return new Date(); + } + }; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-el.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-el.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-el.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-el.js index 78d9de507..8224282d4 --- a/vendor/easyui/locale/easyui-lang-el.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-el.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Σελίδα'; - $.fn.pagination.defaults.afterPageText = 'από {pages}'; - $.fn.pagination.defaults.displayMsg = 'Εμφάνιση {from} εώς {to} από {total} αντικείμενα'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Γίνεται Επεξεργασία, Παρακαλώ Περιμένετε ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Εντάξει'; - $.messager.defaults.cancel = 'Άκυρο'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Παρακαλώ εισάγετε σωστή Ηλ.Διεύθυνση.'; - $.fn.validatebox.defaults.rules.url.message = 'Παρακαλώ εισάγετε σωστό σύνδεσμο.'; - $.fn.validatebox.defaults.rules.length.message = 'Παρακαλώ εισάγετε τιμή μεταξύ {0} και {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Παρακαλώ διορθώστε αυτό το πεδίο.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ']; - $.fn.calendar.defaults.months = ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιου', 'Ιου', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Σήμερα'; - $.fn.datebox.defaults.closeText = 'Κλείσιμο'; - $.fn.datebox.defaults.okText = 'Εντάξει'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Σελίδα'; + $.fn.pagination.defaults.afterPageText = 'από {pages}'; + $.fn.pagination.defaults.displayMsg = 'Εμφάνιση {from} εώς {to} από {total} αντικείμενα'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Γίνεται Επεξεργασία, Παρακαλώ Περιμένετε ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Εντάξει'; + $.messager.defaults.cancel = 'Άκυρο'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Παρακαλώ εισάγετε σωστή Ηλ.Διεύθυνση.'; + $.fn.validatebox.defaults.rules.url.message = 'Παρακαλώ εισάγετε σωστό σύνδεσμο.'; + $.fn.validatebox.defaults.rules.length.message = 'Παρακαλώ εισάγετε τιμή μεταξύ {0} και {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Παρακαλώ διορθώστε αυτό το πεδίο.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ']; + $.fn.calendar.defaults.months = ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιου', 'Ιου', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Σήμερα'; + $.fn.datebox.defaults.closeText = 'Κλείσιμο'; + $.fn.datebox.defaults.okText = 'Εντάξει'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-en.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-en.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-en.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-en.js index ce9a24598..bdbeb8e0d --- a/vendor/easyui/locale/easyui-lang-en.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-en.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Page'; - $.fn.pagination.defaults.afterPageText = 'of {pages}'; - $.fn.pagination.defaults.displayMsg = 'Displaying {from} to {to} of {total} items'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Processing, please wait ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Cancel'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'This field is required.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Please enter a valid email address.'; - $.fn.validatebox.defaults.rules.url.message = 'Please enter a valid URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Please enter a value between {0} and {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Please fix this field.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Today'; - $.fn.datebox.defaults.closeText = 'Close'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Page'; + $.fn.pagination.defaults.afterPageText = 'of {pages}'; + $.fn.pagination.defaults.displayMsg = 'Displaying {from} to {to} of {total} items'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Processing, please wait ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancel'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'This field is required.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Please enter a valid email address.'; + $.fn.validatebox.defaults.rules.url.message = 'Please enter a valid URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Please enter a value between {0} and {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Please fix this field.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Today'; + $.fn.datebox.defaults.closeText = 'Close'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-es.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-es.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-es.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-es.js index 981f69197..7083397df --- a/vendor/easyui/locale/easyui-lang-es.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-es.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Página'; - $.fn.pagination.defaults.afterPageText = 'de {pages}'; - $.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} elementos'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Procesando, por favor espere ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Aceptar'; - $.messager.defaults.cancel = 'Cancelar'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Este campo es obligatorio.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Por favor ingrese una dirección de correo válida.'; - $.fn.validatebox.defaults.rules.url.message = 'Por favor ingrese una URL válida.'; - $.fn.validatebox.defaults.rules.length.message = 'Por favor ingrese un valor entre {0} y {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Por favor corrija este campo.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['Do','Lu','Ma','Mi','Ju','Vi','Sá']; - $.fn.calendar.defaults.months = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Hoy'; - $.fn.datebox.defaults.closeText = 'Cerrar'; - $.fn.datebox.defaults.okText = 'Aceptar'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Página'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} elementos'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Procesando, por favor espere ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Aceptar'; + $.messager.defaults.cancel = 'Cancelar'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Este campo es obligatorio.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Por favor ingrese una dirección de correo válida.'; + $.fn.validatebox.defaults.rules.url.message = 'Por favor ingrese una URL válida.'; + $.fn.validatebox.defaults.rules.length.message = 'Por favor ingrese un valor entre {0} y {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Por favor corrija este campo.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['Do','Lu','Ma','Mi','Ju','Vi','Sá']; + $.fn.calendar.defaults.months = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Hoy'; + $.fn.datebox.defaults.closeText = 'Cerrar'; + $.fn.datebox.defaults.okText = 'Aceptar'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-fr.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-fr.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-fr.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-fr.js index 4d94a5839..acdb1ad91 --- a/vendor/easyui/locale/easyui-lang-fr.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-fr.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Page'; - $.fn.pagination.defaults.afterPageText = 'de {pages}'; - $.fn.pagination.defaults.displayMsg = 'Affichage de {from} et {to} au {total} des articles'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = "Traitement, s'il vous plaît patienter ..."; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Annuler'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Ce champ est obligatoire.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = "S'il vous plaît entrer une adresse email valide."; - $.fn.validatebox.defaults.rules.url.message = "S'il vous plaît entrer une URL valide."; - $.fn.validatebox.defaults.rules.length.message = "S'il vous plaît entrez une valeur comprise entre {0} et {1}."; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = "Aujourd'hui"; - $.fn.datebox.defaults.closeText = 'Fermer'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Page'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = 'Affichage de {from} et {to} au {total} des articles'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = "Traitement, s'il vous plaît patienter ..."; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annuler'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Ce champ est obligatoire.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = "S'il vous plaît entrer une adresse email valide."; + $.fn.validatebox.defaults.rules.url.message = "S'il vous plaît entrer une URL valide."; + $.fn.validatebox.defaults.rules.length.message = "S'il vous plaît entrez une valeur comprise entre {0} et {1}."; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = "Aujourd'hui"; + $.fn.datebox.defaults.closeText = 'Fermer'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-it.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-it.js old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/locale/easyui-lang-it.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-it.js diff --git a/vendor/easyui/locale/easyui-lang-jp.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-jp.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-jp.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-jp.js index 481083f18..0f1696476 --- a/vendor/easyui/locale/easyui-lang-jp.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-jp.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'ページ'; - $.fn.pagination.defaults.afterPageText = '{pages} 中'; - $.fn.pagination.defaults.displayMsg = '全 {total} アイテム中 {from} から {to} を表示中'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = '処理中です。少々お待ちください...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'OK'; - $.messager.defaults.cancel = 'キャンセル'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = '入力は必須です。'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = '正しいメールアドレスを入力してください。'; - $.fn.validatebox.defaults.rules.url.message = '正しいURLを入力してください。'; - $.fn.validatebox.defaults.rules.length.message = '{0} から {1} の範囲の正しい値を入力してください。'; - $.fn.validatebox.defaults.rules.remote.message = 'このフィールドを修正してください。'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['日','月','火','水','木','金','土']; - $.fn.calendar.defaults.months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = '今日'; - $.fn.datebox.defaults.closeText = '閉じる'; - $.fn.datebox.defaults.okText = 'OK'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'ページ'; + $.fn.pagination.defaults.afterPageText = '{pages} 中'; + $.fn.pagination.defaults.displayMsg = '全 {total} アイテム中 {from} から {to} を表示中'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = '処理中です。少々お待ちください...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'OK'; + $.messager.defaults.cancel = 'キャンセル'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = '入力は必須です。'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = '正しいメールアドレスを入力してください。'; + $.fn.validatebox.defaults.rules.url.message = '正しいURLを入力してください。'; + $.fn.validatebox.defaults.rules.length.message = '{0} から {1} の範囲の正しい値を入力してください。'; + $.fn.validatebox.defaults.rules.remote.message = 'このフィールドを修正してください。'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['日','月','火','水','木','金','土']; + $.fn.calendar.defaults.months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = '今日'; + $.fn.datebox.defaults.closeText = '閉じる'; + $.fn.datebox.defaults.okText = 'OK'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-nl.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-nl.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-nl.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-nl.js index d67f41647..01a91158d --- a/vendor/easyui/locale/easyui-lang-nl.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-nl.js @@ -1,44 +1,44 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Pagina'; - $.fn.pagination.defaults.afterPageText = 'van {pages}'; - $.fn.pagination.defaults.displayMsg = 'Tonen van {from} tot {to} van de {total} items'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Verwerking, even geduld ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Annuleren'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Dit veld is verplicht.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Geef een geldig e-mailadres.'; - $.fn.validatebox.defaults.rules.url.message = 'Vul een geldige URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Voer een waarde tussen {0} en {1}.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Vandaag'; - $.fn.datebox.defaults.closeText = 'Dicht'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Pagina'; + $.fn.pagination.defaults.afterPageText = 'van {pages}'; + $.fn.pagination.defaults.displayMsg = 'Tonen van {from} tot {to} van de {total} items'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Verwerking, even geduld ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annuleren'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Dit veld is verplicht.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Geef een geldig e-mailadres.'; + $.fn.validatebox.defaults.rules.url.message = 'Vul een geldige URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Voer een waarde tussen {0} en {1}.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Vandaag'; + $.fn.datebox.defaults.closeText = 'Dicht'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-pl.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-pl.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-pl.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-pl.js index 6256ded50..960f96ca2 --- a/vendor/easyui/locale/easyui-lang-pl.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-pl.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Strona'; - $.fn.pagination.defaults.afterPageText = 'z {pages}'; - $.fn.pagination.defaults.displayMsg = 'Wyświetlono elementy od {from} do {to} z {total}'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Przetwarzanie, proszę czekać ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Cancel'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'To pole jest wymagane.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Wprowadź poprawny adres email.'; - $.fn.validatebox.defaults.rules.url.message = 'Wprowadź poprawny adres URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Wprowadź wartość z zakresu od {0} do {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Proszę poprawić to pole.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['N','P','W','Ś','C','P','S']; - $.fn.calendar.defaults.months = ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Dzisiaj'; - $.fn.datebox.defaults.closeText = 'Zamknij'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Strona'; + $.fn.pagination.defaults.afterPageText = 'z {pages}'; + $.fn.pagination.defaults.displayMsg = 'Wyświetlono elementy od {from} do {to} z {total}'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Przetwarzanie, proszę czekać ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancel'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'To pole jest wymagane.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Wprowadź poprawny adres email.'; + $.fn.validatebox.defaults.rules.url.message = 'Wprowadź poprawny adres URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Wprowadź wartość z zakresu od {0} do {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Proszę poprawić to pole.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['N','P','W','Ś','C','P','S']; + $.fn.calendar.defaults.months = ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Dzisiaj'; + $.fn.datebox.defaults.closeText = 'Zamknij'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-pt_BR.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-pt_BR.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js index 8ad9d046c..1234bc99d --- a/vendor/easyui/locale/easyui-lang-pt_BR.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js @@ -1,45 +1,45 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Página'; - $.fn.pagination.defaults.afterPageText = 'de {pages}'; - $.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} itens'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Processando, aguarde ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Cancelar'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Esse campo é requerido.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Insira um endereço de email válido.'; - $.fn.validatebox.defaults.rules.url.message = 'Insira uma URL válida.'; - $.fn.validatebox.defaults.rules.length.message = 'Insira uma valor entre {0} e {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Corrija esse campo.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['D','S','T','Q','Q','S','S']; - $.fn.calendar.defaults.months = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Hoje'; - $.fn.datebox.defaults.closeText = 'Fechar'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Página'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} itens'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Processando, aguarde ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancelar'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Esse campo é requerido.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Insira um endereço de email válido.'; + $.fn.validatebox.defaults.rules.url.message = 'Insira uma URL válida.'; + $.fn.validatebox.defaults.rules.length.message = 'Insira uma valor entre {0} e {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Corrija esse campo.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['D','S','T','Q','Q','S','S']; + $.fn.calendar.defaults.months = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Hoje'; + $.fn.datebox.defaults.closeText = 'Fechar'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-ru.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-ru.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-ru.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-ru.js index 68a009d7a..3257c0af9 --- a/vendor/easyui/locale/easyui-lang-ru.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-ru.js @@ -1,46 +1,46 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = 'Страница'; - $.fn.pagination.defaults.afterPageText = 'из {pages}'; - $.fn.pagination.defaults.displayMsg = 'Просмотр {from} до {to} из {total} записей'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = 'Обрабатывается, пожалуйста ждите ...'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = 'Ок'; - $.messager.defaults.cancel = 'Закрыть'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Это поле необходимо.'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = 'Пожалуйста введите корректный e-mail адрес.'; - $.fn.validatebox.defaults.rules.url.message = 'Пожалуйста введите корректный URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Пожалуйста введите зачение между {0} и {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Пожалуйста исправте это поле.'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.firstDay = 1; - $.fn.calendar.defaults.weeks = ['В','П','В','С','Ч','П','С']; - $.fn.calendar.defaults.months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = 'Сегодня'; - $.fn.datebox.defaults.closeText = 'Закрыть'; - $.fn.datebox.defaults.okText = 'Ок'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Страница'; + $.fn.pagination.defaults.afterPageText = 'из {pages}'; + $.fn.pagination.defaults.displayMsg = 'Просмотр {from} до {to} из {total} записей'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Обрабатывается, пожалуйста ждите ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ок'; + $.messager.defaults.cancel = 'Закрыть'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Это поле необходимо.'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = 'Пожалуйста введите корректный e-mail адрес.'; + $.fn.validatebox.defaults.rules.url.message = 'Пожалуйста введите корректный URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Пожалуйста введите зачение между {0} и {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Пожалуйста исправте это поле.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.firstDay = 1; + $.fn.calendar.defaults.weeks = ['В','П','В','С','Ч','П','С']; + $.fn.calendar.defaults.months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Сегодня'; + $.fn.datebox.defaults.closeText = 'Закрыть'; + $.fn.datebox.defaults.okText = 'Ок'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-sv_SE.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-sv_SE.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js index 0626ccfe1..9eba28071 --- a/vendor/easyui/locale/easyui-lang-sv_SE.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js @@ -1,45 +1,45 @@ -if ($.fn.pagination) { - $.fn.pagination.defaults.beforePageText = 'Sida'; - $.fn.pagination.defaults.afterPageText = 'av {pages}'; - $.fn.pagination.defaults.displayMsg = 'Visar {from} till {to} av {total} poster'; -} -if ($.fn.datagrid) { - $.fn.datagrid.defaults.loadMsg = 'Bearbetar, vänligen vänta ...'; -} -if ($.fn.treegrid && $.fn.datagrid) { - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager) { - $.messager.defaults.ok = 'Ok'; - $.messager.defaults.cancel = 'Avbryt'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = 'Detta fält är obligatoriskt.'; - } -}); -if ($.fn.validatebox) { - $.fn.validatebox.defaults.rules.email.message = 'Vänligen ange en korrekt e-post adress.'; - $.fn.validatebox.defaults.rules.url.message = 'Vänligen ange en korrekt URL.'; - $.fn.validatebox.defaults.rules.length.message = 'Vänligen ange ett nummer mellan {0} och {1}.'; - $.fn.validatebox.defaults.rules.remote.message = 'Vänligen åtgärda detta fält.'; -} -if ($.fn.calendar) { - $.fn.calendar.defaults.weeks = ['Sön', 'Mån', 'Tis', 'Ons', 'Tors', 'Fre', 'Lör']; - $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']; -} -if ($.fn.datebox) { - $.fn.datebox.defaults.currentText = 'I dag'; - $.fn.datebox.defaults.closeText = 'Stäng'; - $.fn.datebox.defaults.okText = 'Ok'; -} -if ($.fn.datetimebox && $.fn.datebox) { - $.extend($.fn.datetimebox.defaults, { - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} +if ($.fn.pagination) { + $.fn.pagination.defaults.beforePageText = 'Sida'; + $.fn.pagination.defaults.afterPageText = 'av {pages}'; + $.fn.pagination.defaults.displayMsg = 'Visar {from} till {to} av {total} poster'; +} +if ($.fn.datagrid) { + $.fn.datagrid.defaults.loadMsg = 'Bearbetar, vänligen vänta ...'; +} +if ($.fn.treegrid && $.fn.datagrid) { + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager) { + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Avbryt'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = 'Detta fält är obligatoriskt.'; + } +}); +if ($.fn.validatebox) { + $.fn.validatebox.defaults.rules.email.message = 'Vänligen ange en korrekt e-post adress.'; + $.fn.validatebox.defaults.rules.url.message = 'Vänligen ange en korrekt URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Vänligen ange ett nummer mellan {0} och {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Vänligen åtgärda detta fält.'; +} +if ($.fn.calendar) { + $.fn.calendar.defaults.weeks = ['Sön', 'Mån', 'Tis', 'Ons', 'Tors', 'Fre', 'Lör']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']; +} +if ($.fn.datebox) { + $.fn.datebox.defaults.currentText = 'I dag'; + $.fn.datebox.defaults.closeText = 'Stäng'; + $.fn.datebox.defaults.okText = 'Ok'; +} +if ($.fn.datetimebox && $.fn.datebox) { + $.extend($.fn.datetimebox.defaults, { + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} diff --git a/vendor/easyui/locale/easyui-lang-tr.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-tr.js old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/locale/easyui-lang-tr.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-tr.js diff --git a/vendor/easyui/locale/easyui-lang-zh_CN.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-zh_CN.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js index c24578a93..7cf604462 --- a/vendor/easyui/locale/easyui-lang-zh_CN.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js @@ -1,66 +1,66 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = '第'; - $.fn.pagination.defaults.afterPageText = '共{pages}页'; - $.fn.pagination.defaults.displayMsg = '显示{from}到{to},共{total}记录'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = '正在处理,请稍待。。。'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = '确定'; - $.messager.defaults.cancel = '取消'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = '该输入项为必输项'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = '请输入有效的电子邮件地址'; - $.fn.validatebox.defaults.rules.url.message = '请输入有效的URL地址'; - $.fn.validatebox.defaults.rules.length.message = '输入内容长度必须介于{0}和{1}之间'; - $.fn.validatebox.defaults.rules.remote.message = '请修正该字段'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; - $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = '今天'; - $.fn.datebox.defaults.closeText = '关闭'; - $.fn.datebox.defaults.okText = '确定'; - $.fn.datebox.defaults.formatter = function(date){ - var y = date.getFullYear(); - var m = date.getMonth()+1; - var d = date.getDate(); - return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d); - }; - $.fn.datebox.defaults.parser = function(s){ - if (!s) return new Date(); - var ss = s.split('-'); - var y = parseInt(ss[0],10); - var m = parseInt(ss[1],10); - var d = parseInt(ss[2],10); - if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ - return new Date(y,m-1,d); - } else { - return new Date(); - } - }; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} -if ($.fn.datetimespinner){ - $.fn.datetimespinner.defaults.selections = [[0,4],[5,7],[8,10],[11,13],[14,16],[17,19]] -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = '第'; + $.fn.pagination.defaults.afterPageText = '共{pages}页'; + $.fn.pagination.defaults.displayMsg = '显示{from}到{to},共{total}记录'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = '正在处理,请稍待。。。'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = '确定'; + $.messager.defaults.cancel = '取消'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = '该输入项为必输项'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = '请输入有效的电子邮件地址'; + $.fn.validatebox.defaults.rules.url.message = '请输入有效的URL地址'; + $.fn.validatebox.defaults.rules.length.message = '输入内容长度必须介于{0}和{1}之间'; + $.fn.validatebox.defaults.rules.remote.message = '请修正该字段'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; + $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = '今天'; + $.fn.datebox.defaults.closeText = '关闭'; + $.fn.datebox.defaults.okText = '确定'; + $.fn.datebox.defaults.formatter = function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d); + }; + $.fn.datebox.defaults.parser = function(s){ + if (!s) return new Date(); + var ss = s.split('-'); + var y = parseInt(ss[0],10); + var m = parseInt(ss[1],10); + var d = parseInt(ss[2],10); + if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ + return new Date(y,m-1,d); + } else { + return new Date(); + } + }; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} +if ($.fn.datetimespinner){ + $.fn.datetimespinner.defaults.selections = [[0,4],[5,7],[8,10],[11,13],[14,16],[17,19]] +} diff --git a/vendor/easyui/locale/easyui-lang-zh_TW.js b/vendor/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/locale/easyui-lang-zh_TW.js rename to vendor/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js index a909a76f1..5aab376d2 --- a/vendor/easyui/locale/easyui-lang-zh_TW.js +++ b/vendor/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js @@ -1,48 +1,48 @@ -if ($.fn.pagination){ - $.fn.pagination.defaults.beforePageText = '第'; - $.fn.pagination.defaults.afterPageText = '共{pages}頁'; - $.fn.pagination.defaults.displayMsg = '顯示{from}到{to},共{total}記錄'; -} -if ($.fn.datagrid){ - $.fn.datagrid.defaults.loadMsg = '正在處理,請稍待。。。'; -} -if ($.fn.treegrid && $.fn.datagrid){ - $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; -} -if ($.messager){ - $.messager.defaults.ok = '確定'; - $.messager.defaults.cancel = '取消'; -} -$.map(['validatebox','textbox','filebox','searchbox', - 'combo','combobox','combogrid','combotree', - 'datebox','datetimebox','numberbox', - 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ - if ($.fn[plugin]){ - $.fn[plugin].defaults.missingMessage = '該輸入項為必輸項'; - } -}); -if ($.fn.validatebox){ - $.fn.validatebox.defaults.rules.email.message = '請輸入有效的電子郵件地址'; - $.fn.validatebox.defaults.rules.url.message = '請輸入有效的URL地址'; - $.fn.validatebox.defaults.rules.length.message = '輸入內容長度必須介於{0}和{1}之間'; - $.fn.validatebox.defaults.rules.remote.message = '請修正此欄位'; -} -if ($.fn.calendar){ - $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; - $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; -} -if ($.fn.datebox){ - $.fn.datebox.defaults.currentText = '今天'; - $.fn.datebox.defaults.closeText = '關閉'; - $.fn.datebox.defaults.okText = '確定'; -} -if ($.fn.datetimebox && $.fn.datebox){ - $.extend($.fn.datetimebox.defaults,{ - currentText: $.fn.datebox.defaults.currentText, - closeText: $.fn.datebox.defaults.closeText, - okText: $.fn.datebox.defaults.okText - }); -} -if ($.fn.datetimespinner){ - $.fn.datetimespinner.defaults.selections = [[0,4],[5,7],[8,10],[11,13],[14,16],[17,19]] -} +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = '第'; + $.fn.pagination.defaults.afterPageText = '共{pages}頁'; + $.fn.pagination.defaults.displayMsg = '顯示{from}到{to},共{total}記錄'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = '正在處理,請稍待。。。'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = '確定'; + $.messager.defaults.cancel = '取消'; +} +$.map(['validatebox','textbox','filebox','searchbox', + 'combo','combobox','combogrid','combotree', + 'datebox','datetimebox','numberbox', + 'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){ + if ($.fn[plugin]){ + $.fn[plugin].defaults.missingMessage = '該輸入項為必輸項'; + } +}); +if ($.fn.validatebox){ + $.fn.validatebox.defaults.rules.email.message = '請輸入有效的電子郵件地址'; + $.fn.validatebox.defaults.rules.url.message = '請輸入有效的URL地址'; + $.fn.validatebox.defaults.rules.length.message = '輸入內容長度必須介於{0}和{1}之間'; + $.fn.validatebox.defaults.rules.remote.message = '請修正此欄位'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; + $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = '今天'; + $.fn.datebox.defaults.closeText = '關閉'; + $.fn.datebox.defaults.okText = '確定'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText + }); +} +if ($.fn.datetimespinner){ + $.fn.datetimespinner.defaults.selections = [[0,4],[5,7],[8,10],[11,13],[14,16],[17,19]] +} diff --git a/vendor/easyui/plugins/jquery.accordion.js b/vendor/FHC-vendor/easyui/plugins/jquery.accordion.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.accordion.js rename to vendor/FHC-vendor/easyui/plugins/jquery.accordion.js index cf85c8f1b..eb9e47d97 --- a/vendor/easyui/plugins/jquery.accordion.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.accordion.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2,_3){ var _4=$.data(_2,"accordion"); diff --git a/vendor/easyui/plugins/jquery.calendar.js b/vendor/FHC-vendor/easyui/plugins/jquery.calendar.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.calendar.js rename to vendor/FHC-vendor/easyui/plugins/jquery.calendar.js index 7598994ae..b98ddce7b --- a/vendor/easyui/plugins/jquery.calendar.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.calendar.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2,_3){ var _4=$.data(_2,"calendar").options; diff --git a/vendor/easyui/plugins/jquery.combo.js b/vendor/FHC-vendor/easyui/plugins/jquery.combo.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.combo.js rename to vendor/FHC-vendor/easyui/plugins/jquery.combo.js index 70233e317..61f23dd11 --- a/vendor/easyui/plugins/jquery.combo.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.combo.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $(function(){ $(document).unbind(".combo").bind("mousedown.combo mousewheel.combo",function(e){ diff --git a/vendor/easyui/plugins/jquery.combobox.js b/vendor/FHC-vendor/easyui/plugins/jquery.combobox.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.combobox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.combobox.js index 31c53a1f0..5579fd0a3 --- a/vendor/easyui/plugins/jquery.combobox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.combobox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ var _1=0; function _2(_3,_4){ diff --git a/vendor/easyui/plugins/jquery.combogrid.js b/vendor/FHC-vendor/easyui/plugins/jquery.combogrid.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.combogrid.js rename to vendor/FHC-vendor/easyui/plugins/jquery.combogrid.js index a2bd7fabc..1d4ab68e3 --- a/vendor/easyui/plugins/jquery.combogrid.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.combogrid.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"combogrid"); diff --git a/vendor/easyui/plugins/jquery.combotree.js b/vendor/FHC-vendor/easyui/plugins/jquery.combotree.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.combotree.js rename to vendor/FHC-vendor/easyui/plugins/jquery.combotree.js index 6f55f17ba..6250be5ec --- a/vendor/easyui/plugins/jquery.combotree.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.combotree.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"combotree"); diff --git a/vendor/easyui/plugins/jquery.datagrid.js b/vendor/FHC-vendor/easyui/plugins/jquery.datagrid.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.datagrid.js rename to vendor/FHC-vendor/easyui/plugins/jquery.datagrid.js index 5c443770a..8dc973ee7 --- a/vendor/easyui/plugins/jquery.datagrid.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.datagrid.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ var _1=0; function _2(a,o){ diff --git a/vendor/easyui/plugins/jquery.datalist.js b/vendor/FHC-vendor/easyui/plugins/jquery.datalist.js similarity index 99% rename from vendor/easyui/plugins/jquery.datalist.js rename to vendor/FHC-vendor/easyui/plugins/jquery.datalist.js index 222d253bf..b24a9ccdb 100644 --- a/vendor/easyui/plugins/jquery.datalist.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.datalist.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"datalist").options; diff --git a/vendor/easyui/plugins/jquery.datebox.js b/vendor/FHC-vendor/easyui/plugins/jquery.datebox.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.datebox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.datebox.js index cf42939f5..cc122cde4 --- a/vendor/easyui/plugins/jquery.datebox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.datebox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"datebox"); diff --git a/vendor/easyui/plugins/jquery.datetimebox.js b/vendor/FHC-vendor/easyui/plugins/jquery.datetimebox.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.datetimebox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.datetimebox.js index 3da6a8fe4..5c818dc76 --- a/vendor/easyui/plugins/jquery.datetimebox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.datetimebox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"datetimebox"); diff --git a/vendor/easyui/plugins/jquery.datetimespinner.js b/vendor/FHC-vendor/easyui/plugins/jquery.datetimespinner.js similarity index 99% rename from vendor/easyui/plugins/jquery.datetimespinner.js rename to vendor/FHC-vendor/easyui/plugins/jquery.datetimespinner.js index 29b24a937..57f8d14ae 100644 --- a/vendor/easyui/plugins/jquery.datetimespinner.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.datetimespinner.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"datetimespinner").options; diff --git a/vendor/easyui/plugins/jquery.dialog.js b/vendor/FHC-vendor/easyui/plugins/jquery.dialog.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.dialog.js rename to vendor/FHC-vendor/easyui/plugins/jquery.dialog.js index 63711aab5..f74c04d1b --- a/vendor/easyui/plugins/jquery.dialog.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.dialog.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"dialog").options; diff --git a/vendor/easyui/plugins/jquery.draggable.js b/vendor/FHC-vendor/easyui/plugins/jquery.draggable.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.draggable.js rename to vendor/FHC-vendor/easyui/plugins/jquery.draggable.js index 94f66227b..fa35ba99f --- a/vendor/easyui/plugins/jquery.draggable.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.draggable.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(e){ var _2=$.data(e.data.target,"draggable"); diff --git a/vendor/easyui/plugins/jquery.droppable.js b/vendor/FHC-vendor/easyui/plugins/jquery.droppable.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.droppable.js rename to vendor/FHC-vendor/easyui/plugins/jquery.droppable.js index e140e69e6..0fcaad73b --- a/vendor/easyui/plugins/jquery.droppable.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.droppable.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ $(_2).addClass("droppable"); diff --git a/vendor/easyui/plugins/jquery.filebox.js b/vendor/FHC-vendor/easyui/plugins/jquery.filebox.js similarity index 99% rename from vendor/easyui/plugins/jquery.filebox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.filebox.js index dbfd4cbcf..22dd0eca0 100644 --- a/vendor/easyui/plugins/jquery.filebox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.filebox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ var _1=0; function _2(_3){ diff --git a/vendor/easyui/plugins/jquery.form.js b/vendor/FHC-vendor/easyui/plugins/jquery.form.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.form.js rename to vendor/FHC-vendor/easyui/plugins/jquery.form.js index a7f2b981b..b51888f4b --- a/vendor/easyui/plugins/jquery.form.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.form.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2,_3){ var _4=$.data(_2,"form").options; diff --git a/vendor/easyui/plugins/jquery.layout.js b/vendor/FHC-vendor/easyui/plugins/jquery.layout.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.layout.js rename to vendor/FHC-vendor/easyui/plugins/jquery.layout.js index 5cb4b6a21..33a734262 --- a/vendor/easyui/plugins/jquery.layout.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.layout.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ var _1=false; function _2(_3,_4){ diff --git a/vendor/easyui/plugins/jquery.linkbutton.js b/vendor/FHC-vendor/easyui/plugins/jquery.linkbutton.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.linkbutton.js rename to vendor/FHC-vendor/easyui/plugins/jquery.linkbutton.js index 421a11588..98c05fc2a --- a/vendor/easyui/plugins/jquery.linkbutton.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.linkbutton.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2,_3){ var _4=$.data(_2,"linkbutton").options; diff --git a/vendor/easyui/plugins/jquery.menu.js b/vendor/FHC-vendor/easyui/plugins/jquery.menu.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.menu.js rename to vendor/FHC-vendor/easyui/plugins/jquery.menu.js index 74e9425ed..4687b1d34 --- a/vendor/easyui/plugins/jquery.menu.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.menu.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $(function(){ $(document).unbind(".menu").bind("mousedown.menu",function(e){ diff --git a/vendor/easyui/plugins/jquery.menubutton.js b/vendor/FHC-vendor/easyui/plugins/jquery.menubutton.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.menubutton.js rename to vendor/FHC-vendor/easyui/plugins/jquery.menubutton.js index 20b6368a1..b7a7f14ad --- a/vendor/easyui/plugins/jquery.menubutton.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.menubutton.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"menubutton").options; diff --git a/vendor/easyui/plugins/jquery.messager.js b/vendor/FHC-vendor/easyui/plugins/jquery.messager.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.messager.js rename to vendor/FHC-vendor/easyui/plugins/jquery.messager.js index 2f6db9d84..68bcb0c80 --- a/vendor/easyui/plugins/jquery.messager.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.messager.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(){ $(document).unbind(".messager").bind("keydown.messager",function(e){ diff --git a/vendor/easyui/plugins/jquery.mobile.js b/vendor/FHC-vendor/easyui/plugins/jquery.mobile.js similarity index 99% rename from vendor/easyui/plugins/jquery.mobile.js rename to vendor/FHC-vendor/easyui/plugins/jquery.mobile.js index 2f6eacf73..12120494c 100644 --- a/vendor/easyui/plugins/jquery.mobile.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.mobile.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $.fn.navpanel=function(_1,_2){ if(typeof _1=="string"){ diff --git a/vendor/easyui/plugins/jquery.numberbox.js b/vendor/FHC-vendor/easyui/plugins/jquery.numberbox.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.numberbox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.numberbox.js index 719d60cf2..2f739bcb0 --- a/vendor/easyui/plugins/jquery.numberbox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.numberbox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"numberbox"); diff --git a/vendor/easyui/plugins/jquery.numberspinner.js b/vendor/FHC-vendor/easyui/plugins/jquery.numberspinner.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.numberspinner.js rename to vendor/FHC-vendor/easyui/plugins/jquery.numberspinner.js index b16d0486d..3901b2031 --- a/vendor/easyui/plugins/jquery.numberspinner.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.numberspinner.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ $(_2).addClass("numberspinner-f"); diff --git a/vendor/easyui/plugins/jquery.pagination.js b/vendor/FHC-vendor/easyui/plugins/jquery.pagination.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.pagination.js rename to vendor/FHC-vendor/easyui/plugins/jquery.pagination.js index 836d353dc..03335de52 --- a/vendor/easyui/plugins/jquery.pagination.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.pagination.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"pagination"); diff --git a/vendor/easyui/plugins/jquery.panel.js b/vendor/FHC-vendor/easyui/plugins/jquery.panel.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.panel.js rename to vendor/FHC-vendor/easyui/plugins/jquery.panel.js index 6da38a69d..07b2de66f --- a/vendor/easyui/plugins/jquery.panel.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.panel.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $.fn._remove=function(){ return this.each(function(){ diff --git a/vendor/easyui/plugins/jquery.parser.js b/vendor/FHC-vendor/easyui/plugins/jquery.parser.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.parser.js rename to vendor/FHC-vendor/easyui/plugins/jquery.parser.js index b30a0db88..68b8586c5 --- a/vendor/easyui/plugins/jquery.parser.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.parser.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $.parser={auto:true,onComplete:function(_1){ },plugins:["draggable","droppable","resizable","pagination","tooltip","linkbutton","menu","menubutton","splitbutton","switchbutton","progressbar","tree","textbox","filebox","combo","combobox","combotree","combogrid","numberbox","validatebox","searchbox","spinner","numberspinner","timespinner","datetimespinner","calendar","datebox","datetimebox","slider","layout","panel","datagrid","propertygrid","treegrid","datalist","tabs","accordion","window","dialog","form"],parse:function(_2){ diff --git a/vendor/easyui/plugins/jquery.progressbar.js b/vendor/FHC-vendor/easyui/plugins/jquery.progressbar.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.progressbar.js rename to vendor/FHC-vendor/easyui/plugins/jquery.progressbar.js index 859410e1c..7c8fa5485 --- a/vendor/easyui/plugins/jquery.progressbar.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.progressbar.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ $(_2).addClass("progressbar"); diff --git a/vendor/easyui/plugins/jquery.propertygrid.js b/vendor/FHC-vendor/easyui/plugins/jquery.propertygrid.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.propertygrid.js rename to vendor/FHC-vendor/easyui/plugins/jquery.propertygrid.js index 11abee33a..3ea949e51 --- a/vendor/easyui/plugins/jquery.propertygrid.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.propertygrid.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ var _1; $(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ diff --git a/vendor/easyui/plugins/jquery.resizable.js b/vendor/FHC-vendor/easyui/plugins/jquery.resizable.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.resizable.js rename to vendor/FHC-vendor/easyui/plugins/jquery.resizable.js index cd3e719ad..6cc3c9f03 --- a/vendor/easyui/plugins/jquery.resizable.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.resizable.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ $.fn.resizable=function(_1,_2){ if(typeof _1=="string"){ diff --git a/vendor/easyui/plugins/jquery.searchbox.js b/vendor/FHC-vendor/easyui/plugins/jquery.searchbox.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.searchbox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.searchbox.js index 5a877b729..cce40daea --- a/vendor/easyui/plugins/jquery.searchbox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.searchbox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"searchbox"); diff --git a/vendor/easyui/plugins/jquery.slider.js b/vendor/FHC-vendor/easyui/plugins/jquery.slider.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.slider.js rename to vendor/FHC-vendor/easyui/plugins/jquery.slider.js index 708bc422e..f5a8006e8 --- a/vendor/easyui/plugins/jquery.slider.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.slider.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$("
                              "+"
                              "+""+""+"
                              "+"
                              "+"
                              "+"
                              "+""+"
                              ").insertAfter(_2); diff --git a/vendor/easyui/plugins/jquery.spinner.js b/vendor/FHC-vendor/easyui/plugins/jquery.spinner.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.spinner.js rename to vendor/FHC-vendor/easyui/plugins/jquery.spinner.js index c7152713d..1e3f9036f --- a/vendor/easyui/plugins/jquery.spinner.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.spinner.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"spinner"); diff --git a/vendor/easyui/plugins/jquery.splitbutton.js b/vendor/FHC-vendor/easyui/plugins/jquery.splitbutton.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.splitbutton.js rename to vendor/FHC-vendor/easyui/plugins/jquery.splitbutton.js index d8038a22a..0d60bb018 --- a/vendor/easyui/plugins/jquery.splitbutton.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.splitbutton.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"splitbutton").options; diff --git a/vendor/easyui/plugins/jquery.switchbutton.js b/vendor/FHC-vendor/easyui/plugins/jquery.switchbutton.js similarity index 99% rename from vendor/easyui/plugins/jquery.switchbutton.js rename to vendor/FHC-vendor/easyui/plugins/jquery.switchbutton.js index 5bc697f74..3b7c90914 100644 --- a/vendor/easyui/plugins/jquery.switchbutton.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.switchbutton.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$(""+""+""+""+""+""+""+"").insertAfter(_2); diff --git a/vendor/easyui/plugins/jquery.tabs.js b/vendor/FHC-vendor/easyui/plugins/jquery.tabs.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.tabs.js rename to vendor/FHC-vendor/easyui/plugins/jquery.tabs.js index dec075f09..04f025d5d --- a/vendor/easyui/plugins/jquery.tabs.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.tabs.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(c){ var w=0; diff --git a/vendor/easyui/plugins/jquery.textbox.js b/vendor/FHC-vendor/easyui/plugins/jquery.textbox.js similarity index 99% rename from vendor/easyui/plugins/jquery.textbox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.textbox.js index d253a693d..c1879e0b1 100644 --- a/vendor/easyui/plugins/jquery.textbox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.textbox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ $(_2).addClass("textbox-f").hide(); diff --git a/vendor/easyui/plugins/jquery.timespinner.js b/vendor/FHC-vendor/easyui/plugins/jquery.timespinner.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.timespinner.js rename to vendor/FHC-vendor/easyui/plugins/jquery.timespinner.js index 58b811567..1a7bb26f4 --- a/vendor/easyui/plugins/jquery.timespinner.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.timespinner.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=0; diff --git a/vendor/easyui/plugins/jquery.tooltip.js b/vendor/FHC-vendor/easyui/plugins/jquery.tooltip.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.tooltip.js rename to vendor/FHC-vendor/easyui/plugins/jquery.tooltip.js index 4a59932f7..2acb9e04e --- a/vendor/easyui/plugins/jquery.tooltip.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.tooltip.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ $(_2).addClass("tooltip-f"); diff --git a/vendor/easyui/plugins/jquery.tree.js b/vendor/FHC-vendor/easyui/plugins/jquery.tree.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.tree.js rename to vendor/FHC-vendor/easyui/plugins/jquery.tree.js index c1d71a1c4..965fa6761 --- a/vendor/easyui/plugins/jquery.tree.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.tree.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$(_2); diff --git a/vendor/easyui/plugins/jquery.treegrid.js b/vendor/FHC-vendor/easyui/plugins/jquery.treegrid.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.treegrid.js rename to vendor/FHC-vendor/easyui/plugins/jquery.treegrid.js index 792500305..633992a67 --- a/vendor/easyui/plugins/jquery.treegrid.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.treegrid.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ var _3=$.data(_2,"treegrid"); diff --git a/vendor/easyui/plugins/jquery.validatebox.js b/vendor/FHC-vendor/easyui/plugins/jquery.validatebox.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.validatebox.js rename to vendor/FHC-vendor/easyui/plugins/jquery.validatebox.js index 4713f84c4..d9ed52d84 --- a/vendor/easyui/plugins/jquery.validatebox.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.validatebox.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2){ $(_2).addClass("validatebox-text"); diff --git a/vendor/easyui/plugins/jquery.window.js b/vendor/FHC-vendor/easyui/plugins/jquery.window.js old mode 100755 new mode 100644 similarity index 99% rename from vendor/easyui/plugins/jquery.window.js rename to vendor/FHC-vendor/easyui/plugins/jquery.window.js index 47612062f..96880e44e --- a/vendor/easyui/plugins/jquery.window.js +++ b/vendor/FHC-vendor/easyui/plugins/jquery.window.js @@ -1,12 +1,12 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ (function($){ function _1(_2,_3){ var _4=$.data(_2,"window"); diff --git a/vendor/easyui/readme.txt b/vendor/FHC-vendor/easyui/readme.txt old mode 100755 new mode 100644 similarity index 98% rename from vendor/easyui/readme.txt rename to vendor/FHC-vendor/easyui/readme.txt index 4e6c90074..7014da0a9 --- a/vendor/easyui/readme.txt +++ b/vendor/FHC-vendor/easyui/readme.txt @@ -1,4 +1,4 @@ -Current Version: 1.4.4 -====================== -This software is allowed to use under freeware license or you need to buy commercial license for better support or other purpose. -Please contact us at info@jeasyui.com +Current Version: 1.4.4 +====================== +This software is allowed to use under freeware license or you need to buy commercial license for better support or other purpose. +Please contact us at info@jeasyui.com diff --git a/vendor/easyui/src/easyloader.js b/vendor/FHC-vendor/easyui/src/easyloader.js similarity index 95% rename from vendor/easyui/src/easyloader.js rename to vendor/FHC-vendor/easyui/src/easyloader.js index 1528bd669..704aa8474 100644 --- a/vendor/easyui/src/easyloader.js +++ b/vendor/FHC-vendor/easyui/src/easyloader.js @@ -1,426 +1,426 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * easyloader - jQuery EasyUI - * - */ -(function(){ - var modules = { - draggable:{ - js:'jquery.draggable.js' - }, - droppable:{ - js:'jquery.droppable.js' - }, - resizable:{ - js:'jquery.resizable.js' - }, - linkbutton:{ - js:'jquery.linkbutton.js', - css:'linkbutton.css' - }, - progressbar:{ - js:'jquery.progressbar.js', - css:'progressbar.css' - }, - tooltip:{ - js:'jquery.tooltip.js', - css:'tooltip.css' - }, - pagination:{ - js:'jquery.pagination.js', - css:'pagination.css', - dependencies:['linkbutton'] - }, - datagrid:{ - js:'jquery.datagrid.js', - css:'datagrid.css', - dependencies:['panel','resizable','linkbutton','pagination'] - }, - treegrid:{ - js:'jquery.treegrid.js', - css:'tree.css', - dependencies:['datagrid'] - }, - propertygrid:{ - js:'jquery.propertygrid.js', - css:'propertygrid.css', - dependencies:['datagrid'] - }, - datalist:{ - js:'jquery.datalist.js', - css:'datalist.css', - dependencies:['datagrid'] - }, - panel: { - js:'jquery.panel.js', - css:'panel.css' - }, - window:{ - js:'jquery.window.js', - css:'window.css', - dependencies:['resizable','draggable','panel'] - }, - dialog:{ - js:'jquery.dialog.js', - css:'dialog.css', - dependencies:['linkbutton','window'] - }, - messager:{ - js:'jquery.messager.js', - css:'messager.css', - dependencies:['linkbutton','dialog','progressbar'] - }, - layout:{ - js:'jquery.layout.js', - css:'layout.css', - dependencies:['resizable','panel'] - }, - form:{ - js:'jquery.form.js' - }, - menu:{ - js:'jquery.menu.js', - css:'menu.css' - }, - tabs:{ - js:'jquery.tabs.js', - css:'tabs.css', - dependencies:['panel','linkbutton'] - }, - menubutton:{ - js:'jquery.menubutton.js', - css:'menubutton.css', - dependencies:['linkbutton','menu'] - }, - splitbutton:{ - js:'jquery.splitbutton.js', - css:'splitbutton.css', - dependencies:['menubutton'] - }, - switchbutton:{ - js:'jquery.switchbutton.js', - css:'switchbutton.css' - }, - accordion:{ - js:'jquery.accordion.js', - css:'accordion.css', - dependencies:['panel'] - }, - calendar:{ - js:'jquery.calendar.js', - css:'calendar.css' - }, - textbox:{ - js:'jquery.textbox.js', - css:'textbox.css', - dependencies:['validatebox','linkbutton'] - }, - filebox:{ - js:'jquery.filebox.js', - css:'filebox.css', - dependencies:['textbox'] - }, - combo:{ - js:'jquery.combo.js', - css:'combo.css', - dependencies:['panel','textbox'] - }, - combobox:{ - js:'jquery.combobox.js', - css:'combobox.css', - dependencies:['combo'] - }, - combotree:{ - js:'jquery.combotree.js', - dependencies:['combo','tree'] - }, - combogrid:{ - js:'jquery.combogrid.js', - dependencies:['combo','datagrid'] - }, - validatebox:{ - js:'jquery.validatebox.js', - css:'validatebox.css', - dependencies:['tooltip'] - }, - numberbox:{ - js:'jquery.numberbox.js', - dependencies:['textbox'] - }, - searchbox:{ - js:'jquery.searchbox.js', - css:'searchbox.css', - dependencies:['menubutton','textbox'] - }, - spinner:{ - js:'jquery.spinner.js', - css:'spinner.css', - dependencies:['textbox'] - }, - numberspinner:{ - js:'jquery.numberspinner.js', - dependencies:['spinner','numberbox'] - }, - timespinner:{ - js:'jquery.timespinner.js', - dependencies:['spinner'] - }, - tree:{ - js:'jquery.tree.js', - css:'tree.css', - dependencies:['draggable','droppable'] - }, - datebox:{ - js:'jquery.datebox.js', - css:'datebox.css', - dependencies:['calendar','combo'] - }, - datetimebox:{ - js:'jquery.datetimebox.js', - dependencies:['datebox','timespinner'] - }, - slider:{ - js:'jquery.slider.js', - dependencies:['draggable'] - }, - parser:{ - js:'jquery.parser.js' - }, - mobile:{ - js:'jquery.mobile.js' - } - }; - - var locales = { - 'af':'easyui-lang-af.js', - 'ar':'easyui-lang-ar.js', - 'bg':'easyui-lang-bg.js', - 'ca':'easyui-lang-ca.js', - 'cs':'easyui-lang-cs.js', - 'cz':'easyui-lang-cz.js', - 'da':'easyui-lang-da.js', - 'de':'easyui-lang-de.js', - 'el':'easyui-lang-el.js', - 'en':'easyui-lang-en.js', - 'es':'easyui-lang-es.js', - 'fr':'easyui-lang-fr.js', - 'it':'easyui-lang-it.js', - 'jp':'easyui-lang-jp.js', - 'nl':'easyui-lang-nl.js', - 'pl':'easyui-lang-pl.js', - 'pt_BR':'easyui-lang-pt_BR.js', - 'ru':'easyui-lang-ru.js', - 'sv_SE':'easyui-lang-sv_SE.js', - 'tr':'easyui-lang-tr.js', - 'zh_CN':'easyui-lang-zh_CN.js', - 'zh_TW':'easyui-lang-zh_TW.js' - }; - - var queues = {}; - - function loadJs(url, callback){ - var done = false; - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.language = 'javascript'; - script.src = url; - script.onload = script.onreadystatechange = function(){ - if (!done && (!script.readyState || script.readyState == 'loaded' || script.readyState == 'complete')){ - done = true; - script.onload = script.onreadystatechange = null; - if (callback){ - callback.call(script); - } - } - } - document.getElementsByTagName("head")[0].appendChild(script); - } - - function runJs(url, callback){ - loadJs(url, function(){ - document.getElementsByTagName("head")[0].removeChild(this); - if (callback){ - callback(); - } - }); - } - - function loadCss(url, callback){ - var link = document.createElement('link'); - link.rel = 'stylesheet'; - link.type = 'text/css'; - link.media = 'screen'; - link.href = url; - document.getElementsByTagName('head')[0].appendChild(link); - if (callback){ - callback.call(link); - } - } - - function loadSingle(name, callback){ - queues[name] = 'loading'; - - var module = modules[name]; - var jsStatus = 'loading'; - var cssStatus = (easyloader.css && module['css']) ? 'loading' : 'loaded'; - - if (easyloader.css && module['css']){ - if (/^http/i.test(module['css'])){ - var url = module['css']; - } else { - var url = easyloader.base + 'themes/' + easyloader.theme + '/' + module['css']; - } - loadCss(url, function(){ - cssStatus = 'loaded'; - if (jsStatus == 'loaded' && cssStatus == 'loaded'){ - finish(); - } - }); - } - - if (/^http/i.test(module['js'])){ - var url = module['js']; - } else { - var url = easyloader.base + 'plugins/' + module['js']; - } - loadJs(url, function(){ - jsStatus = 'loaded'; - if (jsStatus == 'loaded' && cssStatus == 'loaded'){ - finish(); - } - }); - - function finish(){ - queues[name] = 'loaded'; - easyloader.onProgress(name); - if (callback){ - callback(); - } - } - } - - function loadModule(name, callback){ - var mm = []; - var doLoad = false; - - if (typeof name == 'string'){ - add(name); - } else { - for(var i=0; i.panel>.accordion-header'); - if (headers.length){ - headerHeight = $(headers[0]).css('height', '')._outerHeight(); - } - if (!isNaN(parseInt(opts.height))){ - bodyHeight = cc.height() - headerHeight*headers.length; - } - - _resize(true, bodyHeight - _resize(false) + 1); - - function _resize(collapsible, height){ - var totalHeight = 0; - for(var i=0; i= panels.length){ - return null; - } else { - return panels[which]; - } - } - return findBy(container, 'title', which); - } - - function setProperties(container){ - var opts = $.data(container, 'accordion').options; - var cc = $(container); - if (opts.border){ - cc.removeClass('accordion-noborder'); - } else { - cc.addClass('accordion-noborder'); - } - } - - function init(container){ - var state = $.data(container, 'accordion'); - var cc = $(container); - cc.addClass('accordion'); - - state.panels = []; - cc.children('div').each(function(){ - var opts = $.extend({}, $.parser.parseOptions(this), { - selected: ($(this).attr('selected') ? true : undefined) - }); - var pp = $(this); - state.panels.push(pp); - createPanel(container, pp, opts); - }); - - cc.bind('_resize', function(e,force){ - if ($(this).hasClass('easyui-fluid') || force){ - setSize(container); - } - return false; - }); - } - - function createPanel(container, pp, options){ - var opts = $.data(container, 'accordion').options; - pp.panel($.extend({}, { - collapsible: true, - minimizable: false, - maximizable: false, - closable: false, - doSize: false, - collapsed: true, - headerCls: 'accordion-header', - bodyCls: 'accordion-body' - }, options, { - onBeforeExpand: function(){ - if (options.onBeforeExpand){ - if (options.onBeforeExpand.call(this) == false){return false} - } - if (!opts.multiple){ - // get all selected panel - var all = $.grep(getSelections(container), function(p){ - return p.panel('options').collapsible; - }); - for(var i=0; i').addClass('accordion-collapse accordion-expand').appendTo(tool); - t.bind('click', function(){ - togglePanel(pp); - return false; - }); - pp.panel('options').collapsible ? t.show() : t.hide(); - - header.click(function(){ - togglePanel(pp); - return false; - }); - - function togglePanel(p){ - var popts = p.panel('options'); - if (popts.collapsible){ - var index = getPanelIndex(container, p); - if (popts.collapsed){ - select(container, index); - } else { - unselect(container, index); - } - } - } - } - - /** - * select and set the specified panel active - */ - function select(container, which){ - var p = getPanel(container, which); - if (!p){return} - stopAnimate(container); - var opts = $.data(container, 'accordion').options; - p.panel('expand', opts.animate); - } - - function unselect(container, which){ - var p = getPanel(container, which); - if (!p){return} - stopAnimate(container); - var opts = $.data(container, 'accordion').options; - p.panel('collapse', opts.animate); - } - - function doFirstSelect(container){ - var opts = $.data(container, 'accordion').options; - var p = findBy(container, 'selected', true); - if (p){ - _select(getPanelIndex(container, p)); - } else { - _select(opts.selected); - } - - function _select(index){ - var animate = opts.animate; - opts.animate = false; - select(container, index); - opts.animate = animate; - } - } - - /** - * stop the animation of all panels - */ - function stopAnimate(container){ - var panels = $.data(container, 'accordion').panels; - for(var i=0; i').appendTo(container); - panels.push(pp); - createPanel(container, pp, options); - setSize(container); - - opts.onAdd.call(container, options.title, panels.length-1); - - if (options.selected){ - select(container, panels.length-1); - } - } - - function remove(container, which){ - var state = $.data(container, 'accordion'); - var opts = state.options; - var panels = state.panels; - - stopAnimate(container); - - var panel = getPanel(container, which); - var title = panel.panel('options').title; - var index = getPanelIndex(container, panel); - - if (!panel){return} - if (opts.onBeforeRemove.call(container, title, index) == false){return} - - panels.splice(index, 1); - panel.panel('destroy'); - if (panels.length){ - setSize(container); - var curr = getSelected(container); - if (!curr){ - select(container, 0); - } - } - - opts.onRemove.call(container, title, index); - } - - $.fn.accordion = function(options, param){ - if (typeof options == 'string'){ - return $.fn.accordion.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'accordion'); - if (state){ - $.extend(state.options, options); - } else { - $.data(this, 'accordion', { - options: $.extend({}, $.fn.accordion.defaults, $.fn.accordion.parseOptions(this), options), - accordion: $(this).addClass('accordion'), - panels: [] - }); - init(this); - } - - setProperties(this); - setSize(this); - doFirstSelect(this); - }); - }; - - $.fn.accordion.methods = { - options: function(jq){ - return $.data(jq[0], 'accordion').options; - }, - panels: function(jq){ - return $.data(jq[0], 'accordion').panels; - }, - resize: function(jq, param){ - return jq.each(function(){ - setSize(this, param); - }); - }, - getSelections: function(jq){ - return getSelections(jq[0]); - }, - getSelected: function(jq){ - return getSelected(jq[0]); - }, - getPanel: function(jq, which){ - return getPanel(jq[0], which); - }, - getPanelIndex: function(jq, panel){ - return getPanelIndex(jq[0], panel); - }, - select: function(jq, which){ - return jq.each(function(){ - select(this, which); - }); - }, - unselect: function(jq, which){ - return jq.each(function(){ - unselect(this, which); - }); - }, - add: function(jq, options){ - return jq.each(function(){ - add(this, options); - }); - }, - remove: function(jq, which){ - return jq.each(function(){ - remove(this, which); - }); - } - }; - - $.fn.accordion.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.parser.parseOptions(target, [ - 'width','height', - {fit:'boolean',border:'boolean',animate:'boolean',multiple:'boolean',selected:'number'} - ])); - }; - - $.fn.accordion.defaults = { - width: 'auto', - height: 'auto', - fit: false, - border: true, - animate: true, - multiple: false, - selected: 0, - - onSelect: function(title, index){}, - onUnselect: function(title, index){}, - onAdd: function(title, index){}, - onBeforeRemove: function(title, index){}, - onRemove: function(title, index){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * accordion - jQuery EasyUI + * + * Dependencies: + * panel + * + */ +(function($){ + + function setSize(container, param){ + var state = $.data(container, 'accordion'); + var opts = state.options; + var panels = state.panels; + var cc = $(container); + + if (param){ + $.extend(opts, { + width: param.width, + height: param.height + }); + } + cc._size(opts); + var headerHeight = 0; + var bodyHeight = 'auto'; + var headers = cc.find('>.panel>.accordion-header'); + if (headers.length){ + headerHeight = $(headers[0]).css('height', '')._outerHeight(); + } + if (!isNaN(parseInt(opts.height))){ + bodyHeight = cc.height() - headerHeight*headers.length; + } + + _resize(true, bodyHeight - _resize(false) + 1); + + function _resize(collapsible, height){ + var totalHeight = 0; + for(var i=0; i= panels.length){ + return null; + } else { + return panels[which]; + } + } + return findBy(container, 'title', which); + } + + function setProperties(container){ + var opts = $.data(container, 'accordion').options; + var cc = $(container); + if (opts.border){ + cc.removeClass('accordion-noborder'); + } else { + cc.addClass('accordion-noborder'); + } + } + + function init(container){ + var state = $.data(container, 'accordion'); + var cc = $(container); + cc.addClass('accordion'); + + state.panels = []; + cc.children('div').each(function(){ + var opts = $.extend({}, $.parser.parseOptions(this), { + selected: ($(this).attr('selected') ? true : undefined) + }); + var pp = $(this); + state.panels.push(pp); + createPanel(container, pp, opts); + }); + + cc.bind('_resize', function(e,force){ + if ($(this).hasClass('easyui-fluid') || force){ + setSize(container); + } + return false; + }); + } + + function createPanel(container, pp, options){ + var opts = $.data(container, 'accordion').options; + pp.panel($.extend({}, { + collapsible: true, + minimizable: false, + maximizable: false, + closable: false, + doSize: false, + collapsed: true, + headerCls: 'accordion-header', + bodyCls: 'accordion-body' + }, options, { + onBeforeExpand: function(){ + if (options.onBeforeExpand){ + if (options.onBeforeExpand.call(this) == false){return false} + } + if (!opts.multiple){ + // get all selected panel + var all = $.grep(getSelections(container), function(p){ + return p.panel('options').collapsible; + }); + for(var i=0; i').addClass('accordion-collapse accordion-expand').appendTo(tool); + t.bind('click', function(){ + togglePanel(pp); + return false; + }); + pp.panel('options').collapsible ? t.show() : t.hide(); + + header.click(function(){ + togglePanel(pp); + return false; + }); + + function togglePanel(p){ + var popts = p.panel('options'); + if (popts.collapsible){ + var index = getPanelIndex(container, p); + if (popts.collapsed){ + select(container, index); + } else { + unselect(container, index); + } + } + } + } + + /** + * select and set the specified panel active + */ + function select(container, which){ + var p = getPanel(container, which); + if (!p){return} + stopAnimate(container); + var opts = $.data(container, 'accordion').options; + p.panel('expand', opts.animate); + } + + function unselect(container, which){ + var p = getPanel(container, which); + if (!p){return} + stopAnimate(container); + var opts = $.data(container, 'accordion').options; + p.panel('collapse', opts.animate); + } + + function doFirstSelect(container){ + var opts = $.data(container, 'accordion').options; + var p = findBy(container, 'selected', true); + if (p){ + _select(getPanelIndex(container, p)); + } else { + _select(opts.selected); + } + + function _select(index){ + var animate = opts.animate; + opts.animate = false; + select(container, index); + opts.animate = animate; + } + } + + /** + * stop the animation of all panels + */ + function stopAnimate(container){ + var panels = $.data(container, 'accordion').panels; + for(var i=0; i').appendTo(container); + panels.push(pp); + createPanel(container, pp, options); + setSize(container); + + opts.onAdd.call(container, options.title, panels.length-1); + + if (options.selected){ + select(container, panels.length-1); + } + } + + function remove(container, which){ + var state = $.data(container, 'accordion'); + var opts = state.options; + var panels = state.panels; + + stopAnimate(container); + + var panel = getPanel(container, which); + var title = panel.panel('options').title; + var index = getPanelIndex(container, panel); + + if (!panel){return} + if (opts.onBeforeRemove.call(container, title, index) == false){return} + + panels.splice(index, 1); + panel.panel('destroy'); + if (panels.length){ + setSize(container); + var curr = getSelected(container); + if (!curr){ + select(container, 0); + } + } + + opts.onRemove.call(container, title, index); + } + + $.fn.accordion = function(options, param){ + if (typeof options == 'string'){ + return $.fn.accordion.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'accordion'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'accordion', { + options: $.extend({}, $.fn.accordion.defaults, $.fn.accordion.parseOptions(this), options), + accordion: $(this).addClass('accordion'), + panels: [] + }); + init(this); + } + + setProperties(this); + setSize(this); + doFirstSelect(this); + }); + }; + + $.fn.accordion.methods = { + options: function(jq){ + return $.data(jq[0], 'accordion').options; + }, + panels: function(jq){ + return $.data(jq[0], 'accordion').panels; + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + getSelections: function(jq){ + return getSelections(jq[0]); + }, + getSelected: function(jq){ + return getSelected(jq[0]); + }, + getPanel: function(jq, which){ + return getPanel(jq[0], which); + }, + getPanelIndex: function(jq, panel){ + return getPanelIndex(jq[0], panel); + }, + select: function(jq, which){ + return jq.each(function(){ + select(this, which); + }); + }, + unselect: function(jq, which){ + return jq.each(function(){ + unselect(this, which); + }); + }, + add: function(jq, options){ + return jq.each(function(){ + add(this, options); + }); + }, + remove: function(jq, which){ + return jq.each(function(){ + remove(this, which); + }); + } + }; + + $.fn.accordion.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height', + {fit:'boolean',border:'boolean',animate:'boolean',multiple:'boolean',selected:'number'} + ])); + }; + + $.fn.accordion.defaults = { + width: 'auto', + height: 'auto', + fit: false, + border: true, + animate: true, + multiple: false, + selected: 0, + + onSelect: function(title, index){}, + onUnselect: function(title, index){}, + onAdd: function(title, index){}, + onBeforeRemove: function(title, index){}, + onRemove: function(title, index){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.calendar.js b/vendor/FHC-vendor/easyui/src/jquery.calendar.js similarity index 96% rename from vendor/easyui/src/jquery.calendar.js rename to vendor/FHC-vendor/easyui/src/jquery.calendar.js index e4914b52d..ad582f4cc 100644 --- a/vendor/easyui/src/jquery.calendar.js +++ b/vendor/FHC-vendor/easyui/src/jquery.calendar.js @@ -1,438 +1,438 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * calendar - jQuery EasyUI - * - */ -(function($){ - - function setSize(target, param){ - var opts = $.data(target, 'calendar').options; - var t = $(target); - if (param){ - $.extend(opts, { - width: param.width, - height: param.height - }); - } - t._size(opts, t.parent()); - t.find('.calendar-body')._outerHeight(t.height() - t.find('.calendar-header')._outerHeight()); - if (t.find('.calendar-menu').is(':visible')){ - showSelectMenus(target); - } - } - - function init(target){ - $(target).addClass('calendar').html( - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '' + - '' + - '' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' - ); - - - $(target).bind('_resize', function(e,force){ - if ($(this).hasClass('easyui-fluid') || force){ - setSize(target); - } - return false; - }); - } - - function bindEvents(target){ - var opts = $.data(target, 'calendar').options; - var menu = $(target).find('.calendar-menu'); - menu.find('.calendar-menu-year').unbind('.calendar').bind('keypress.calendar', function(e){ - if (e.keyCode == 13){ - setDate(true); - } - }); - $(target).unbind('.calendar').bind('mouseover.calendar', function(e){ - var t = toTarget(e.target); - if (t.hasClass('calendar-nav') || t.hasClass('calendar-text') || (t.hasClass('calendar-day') && !t.hasClass('calendar-disabled'))){ - t.addClass('calendar-nav-hover'); - } - }).bind('mouseout.calendar', function(e){ - var t = toTarget(e.target); - if (t.hasClass('calendar-nav') || t.hasClass('calendar-text') || (t.hasClass('calendar-day') && !t.hasClass('calendar-disabled'))){ - t.removeClass('calendar-nav-hover'); - } - }).bind('click.calendar', function(e){ - var t = toTarget(e.target); - if (t.hasClass('calendar-menu-next') || t.hasClass('calendar-nextyear')){ - showYear(1); - } else if (t.hasClass('calendar-menu-prev') || t.hasClass('calendar-prevyear')){ - showYear(-1); - } else if (t.hasClass('calendar-menu-month')){ - menu.find('.calendar-selected').removeClass('calendar-selected'); - t.addClass('calendar-selected'); - setDate(true); - } else if (t.hasClass('calendar-prevmonth')){ - showMonth(-1); - } else if (t.hasClass('calendar-nextmonth')){ - showMonth(1); - } else if (t.hasClass('calendar-text')){ - if (menu.is(':visible')){ - menu.hide(); - } else { - showSelectMenus(target); - } - } else if (t.hasClass('calendar-day')){ - if (t.hasClass('calendar-disabled')){return} - var oldValue = opts.current; - t.closest('div.calendar-body').find('.calendar-selected').removeClass('calendar-selected'); - t.addClass('calendar-selected'); - var parts = t.attr('abbr').split(','); - var y = parseInt(parts[0]); - var m = parseInt(parts[1]); - var d = parseInt(parts[2]); - opts.current = new Date(y, m-1, d); - opts.onSelect.call(target, opts.current); - if (!oldValue || oldValue.getTime() != opts.current.getTime()){ - opts.onChange.call(target, opts.current, oldValue); - } - if (opts.year != y || opts.month != m){ - opts.year = y; - opts.month = m; - show(target); - } - } - }); - function toTarget(t){ - var day = $(t).closest('.calendar-day'); - if (day.length){ - return day; - } else { - return $(t); - } - } - function setDate(hideMenu){ - var menu = $(target).find('.calendar-menu'); - var year = menu.find('.calendar-menu-year').val(); - var month = menu.find('.calendar-selected').attr('abbr'); - if (!isNaN(year)){ - opts.year = parseInt(year); - opts.month = parseInt(month); - show(target); - } - if (hideMenu){menu.hide()} - } - function showYear(delta){ - opts.year += delta; - show(target); - menu.find('.calendar-menu-year').val(opts.year); - } - function showMonth(delta){ - opts.month += delta; - if (opts.month > 12){ - opts.year++; - opts.month = 1; - } else if (opts.month < 1){ - opts.year--; - opts.month = 12; - } - show(target); - - menu.find('td.calendar-selected').removeClass('calendar-selected'); - menu.find('td:eq(' + (opts.month-1) + ')').addClass('calendar-selected'); - } - } - - /** - * show the select menu that can change year or month, if the menu is not be created then create it. - */ - function showSelectMenus(target){ - var opts = $.data(target, 'calendar').options; - $(target).find('.calendar-menu').show(); - - if ($(target).find('.calendar-menu-month-inner').is(':empty')){ - $(target).find('.calendar-menu-month-inner').empty(); - var t = $('
                              ').appendTo($(target).find('.calendar-menu-month-inner')); - var idx = 0; - for(var i=0; i<3; i++){ - var tr = $('').appendTo(t); - for(var j=0; j<4; j++){ - $('').html(opts.months[idx++]).attr('abbr',idx).appendTo(tr); - } - } - } - - var body = $(target).find('.calendar-body'); - var sele = $(target).find('.calendar-menu'); - var seleYear = sele.find('.calendar-menu-year-inner'); - var seleMonth = sele.find('.calendar-menu-month-inner'); - - seleYear.find('input').val(opts.year).focus(); - seleMonth.find('td.calendar-selected').removeClass('calendar-selected'); - seleMonth.find('td:eq('+(opts.month-1)+')').addClass('calendar-selected'); - - sele._outerWidth(body._outerWidth()); - sele._outerHeight(body._outerHeight()); - seleMonth._outerHeight(sele.height() - seleYear._outerHeight()); - } - - /** - * get weeks data. - */ - function getWeeks(target, year, month){ - var opts = $.data(target, 'calendar').options; - var dates = []; - var lastDay = new Date(year, month, 0).getDate(); - for(var i=1; i<=lastDay; i++) dates.push([year,month,i]); - - // group date by week - var weeks = [], week = []; - var memoDay = -1; - while(dates.length > 0){ - var date = dates.shift(); - week.push(date); - var day = new Date(date[0],date[1]-1,date[2]).getDay(); - if (memoDay == day){ - day = 0; - } else if (day == (opts.firstDay==0 ? 7 : opts.firstDay) - 1){ - weeks.push(week); - week = []; - } - memoDay = day; - } - if (week.length){ - weeks.push(week); - } - - var firstWeek = weeks[0]; - if (firstWeek.length < 7){ - while(firstWeek.length < 7){ - var firstDate = firstWeek[0]; - var date = new Date(firstDate[0],firstDate[1]-1,firstDate[2]-1) - firstWeek.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); - } - } else { - var firstDate = firstWeek[0]; - var week = []; - for(var i=1; i<=7; i++){ - var date = new Date(firstDate[0], firstDate[1]-1, firstDate[2]-i); - week.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); - } - weeks.unshift(week); - } - - var lastWeek = weeks[weeks.length-1]; - while(lastWeek.length < 7){ - var lastDate = lastWeek[lastWeek.length-1]; - var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+1); - lastWeek.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); - } - if (weeks.length < 6){ - var lastDate = lastWeek[lastWeek.length-1]; - var week = []; - for(var i=1; i<=7; i++){ - var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+i); - week.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); - } - weeks.push(week); - } - - return weeks; - } - - /** - * show the calendar day. - */ - function show(target){ - var opts = $.data(target, 'calendar').options; - if (opts.current && !opts.validator.call(target, opts.current)){ - opts.current = null; - } - - var now = new Date(); - var todayInfo = now.getFullYear()+','+(now.getMonth()+1)+','+now.getDate(); - var currentInfo = opts.current ? (opts.current.getFullYear()+','+(opts.current.getMonth()+1)+','+opts.current.getDate()) : ''; - // calulate the saturday and sunday index - var saIndex = 6 - opts.firstDay; - var suIndex = saIndex + 1; - if (saIndex >= 7) saIndex -= 7; - if (suIndex >= 7) suIndex -= 7; - - $(target).find('.calendar-title span').html(opts.months[opts.month-1] + ' ' + opts.year); - - var body = $(target).find('div.calendar-body'); - body.children('table').remove(); - - var data = ['']; - data.push(''); - for(var i=opts.firstDay; i'+opts.weeks[i]+''); - } - for(var i=0; i'+opts.weeks[i]+''); - } - data.push(''); - - data.push(''); - var weeks = getWeeks(target, opts.year, opts.month); - for(var i=0; i'); - for(var j=0; j' + d + ''); - } - data.push(''); - } - data.push(''); - data.push('
                              '); - - body.append(data.join('')); - body.children('table.calendar-dtable').prependTo(body); - - opts.onNavigate.call(target, opts.year, opts.month); - } - - $.fn.calendar = function(options, param){ - if (typeof options == 'string'){ - return $.fn.calendar.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'calendar'); - if (state){ - $.extend(state.options, options); - } else { - state = $.data(this, 'calendar', { - options:$.extend({}, $.fn.calendar.defaults, $.fn.calendar.parseOptions(this), options) - }); - init(this); - } - if (state.options.border == false){ - $(this).addClass('calendar-noborder'); - } - setSize(this); - bindEvents(this); - show(this); - $(this).find('div.calendar-menu').hide(); // hide the calendar menu - }); - }; - - $.fn.calendar.methods = { - options: function(jq){ - return $.data(jq[0], 'calendar').options; - }, - resize: function(jq, param){ - return jq.each(function(){ - setSize(this, param); - }); - }, - moveTo: function(jq, date){ - return jq.each(function(){ - if (!date){ - var now = new Date(); - $(this).calendar({ - year: now.getFullYear(), - month: now.getMonth()+1, - current: date - }); - return; - } - var opts = $(this).calendar('options'); - if (opts.validator.call(this, date)){ - var oldValue = opts.current; - $(this).calendar({ - year: date.getFullYear(), - month: date.getMonth()+1, - current: date - }); - if (!oldValue || oldValue.getTime() != date.getTime()){ - opts.onChange.call(this, opts.current, oldValue); - } - } - }); - } - }; - - $.fn.calendar.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.parser.parseOptions(target, [ - {firstDay:'number',fit:'boolean',border:'boolean'} - ])); - }; - - $.fn.calendar.defaults = { - width:180, - height:180, - fit:false, - border:true, - firstDay:0, - weeks:['S','M','T','W','T','F','S'], - months:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - year:new Date().getFullYear(), - month:new Date().getMonth()+1, - current:(function(){ - var d = new Date(); - return new Date(d.getFullYear(), d.getMonth(), d.getDate()); - })(), - - formatter:function(date){return date.getDate()}, - styler:function(date){return ''}, - validator:function(date){return true}, - - onSelect: function(date){}, - onChange: function(newDate, oldDate){}, - onNavigate: function(year, month){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * calendar - jQuery EasyUI + * + */ +(function($){ + + function setSize(target, param){ + var opts = $.data(target, 'calendar').options; + var t = $(target); + if (param){ + $.extend(opts, { + width: param.width, + height: param.height + }); + } + t._size(opts, t.parent()); + t.find('.calendar-body')._outerHeight(t.height() - t.find('.calendar-header')._outerHeight()); + if (t.find('.calendar-menu').is(':visible')){ + showSelectMenus(target); + } + } + + function init(target){ + $(target).addClass('calendar').html( + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '' + + '' + + '' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + ); + + + $(target).bind('_resize', function(e,force){ + if ($(this).hasClass('easyui-fluid') || force){ + setSize(target); + } + return false; + }); + } + + function bindEvents(target){ + var opts = $.data(target, 'calendar').options; + var menu = $(target).find('.calendar-menu'); + menu.find('.calendar-menu-year').unbind('.calendar').bind('keypress.calendar', function(e){ + if (e.keyCode == 13){ + setDate(true); + } + }); + $(target).unbind('.calendar').bind('mouseover.calendar', function(e){ + var t = toTarget(e.target); + if (t.hasClass('calendar-nav') || t.hasClass('calendar-text') || (t.hasClass('calendar-day') && !t.hasClass('calendar-disabled'))){ + t.addClass('calendar-nav-hover'); + } + }).bind('mouseout.calendar', function(e){ + var t = toTarget(e.target); + if (t.hasClass('calendar-nav') || t.hasClass('calendar-text') || (t.hasClass('calendar-day') && !t.hasClass('calendar-disabled'))){ + t.removeClass('calendar-nav-hover'); + } + }).bind('click.calendar', function(e){ + var t = toTarget(e.target); + if (t.hasClass('calendar-menu-next') || t.hasClass('calendar-nextyear')){ + showYear(1); + } else if (t.hasClass('calendar-menu-prev') || t.hasClass('calendar-prevyear')){ + showYear(-1); + } else if (t.hasClass('calendar-menu-month')){ + menu.find('.calendar-selected').removeClass('calendar-selected'); + t.addClass('calendar-selected'); + setDate(true); + } else if (t.hasClass('calendar-prevmonth')){ + showMonth(-1); + } else if (t.hasClass('calendar-nextmonth')){ + showMonth(1); + } else if (t.hasClass('calendar-text')){ + if (menu.is(':visible')){ + menu.hide(); + } else { + showSelectMenus(target); + } + } else if (t.hasClass('calendar-day')){ + if (t.hasClass('calendar-disabled')){return} + var oldValue = opts.current; + t.closest('div.calendar-body').find('.calendar-selected').removeClass('calendar-selected'); + t.addClass('calendar-selected'); + var parts = t.attr('abbr').split(','); + var y = parseInt(parts[0]); + var m = parseInt(parts[1]); + var d = parseInt(parts[2]); + opts.current = new Date(y, m-1, d); + opts.onSelect.call(target, opts.current); + if (!oldValue || oldValue.getTime() != opts.current.getTime()){ + opts.onChange.call(target, opts.current, oldValue); + } + if (opts.year != y || opts.month != m){ + opts.year = y; + opts.month = m; + show(target); + } + } + }); + function toTarget(t){ + var day = $(t).closest('.calendar-day'); + if (day.length){ + return day; + } else { + return $(t); + } + } + function setDate(hideMenu){ + var menu = $(target).find('.calendar-menu'); + var year = menu.find('.calendar-menu-year').val(); + var month = menu.find('.calendar-selected').attr('abbr'); + if (!isNaN(year)){ + opts.year = parseInt(year); + opts.month = parseInt(month); + show(target); + } + if (hideMenu){menu.hide()} + } + function showYear(delta){ + opts.year += delta; + show(target); + menu.find('.calendar-menu-year').val(opts.year); + } + function showMonth(delta){ + opts.month += delta; + if (opts.month > 12){ + opts.year++; + opts.month = 1; + } else if (opts.month < 1){ + opts.year--; + opts.month = 12; + } + show(target); + + menu.find('td.calendar-selected').removeClass('calendar-selected'); + menu.find('td:eq(' + (opts.month-1) + ')').addClass('calendar-selected'); + } + } + + /** + * show the select menu that can change year or month, if the menu is not be created then create it. + */ + function showSelectMenus(target){ + var opts = $.data(target, 'calendar').options; + $(target).find('.calendar-menu').show(); + + if ($(target).find('.calendar-menu-month-inner').is(':empty')){ + $(target).find('.calendar-menu-month-inner').empty(); + var t = $('
                              ').appendTo($(target).find('.calendar-menu-month-inner')); + var idx = 0; + for(var i=0; i<3; i++){ + var tr = $('').appendTo(t); + for(var j=0; j<4; j++){ + $('').html(opts.months[idx++]).attr('abbr',idx).appendTo(tr); + } + } + } + + var body = $(target).find('.calendar-body'); + var sele = $(target).find('.calendar-menu'); + var seleYear = sele.find('.calendar-menu-year-inner'); + var seleMonth = sele.find('.calendar-menu-month-inner'); + + seleYear.find('input').val(opts.year).focus(); + seleMonth.find('td.calendar-selected').removeClass('calendar-selected'); + seleMonth.find('td:eq('+(opts.month-1)+')').addClass('calendar-selected'); + + sele._outerWidth(body._outerWidth()); + sele._outerHeight(body._outerHeight()); + seleMonth._outerHeight(sele.height() - seleYear._outerHeight()); + } + + /** + * get weeks data. + */ + function getWeeks(target, year, month){ + var opts = $.data(target, 'calendar').options; + var dates = []; + var lastDay = new Date(year, month, 0).getDate(); + for(var i=1; i<=lastDay; i++) dates.push([year,month,i]); + + // group date by week + var weeks = [], week = []; + var memoDay = -1; + while(dates.length > 0){ + var date = dates.shift(); + week.push(date); + var day = new Date(date[0],date[1]-1,date[2]).getDay(); + if (memoDay == day){ + day = 0; + } else if (day == (opts.firstDay==0 ? 7 : opts.firstDay) - 1){ + weeks.push(week); + week = []; + } + memoDay = day; + } + if (week.length){ + weeks.push(week); + } + + var firstWeek = weeks[0]; + if (firstWeek.length < 7){ + while(firstWeek.length < 7){ + var firstDate = firstWeek[0]; + var date = new Date(firstDate[0],firstDate[1]-1,firstDate[2]-1) + firstWeek.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + } else { + var firstDate = firstWeek[0]; + var week = []; + for(var i=1; i<=7; i++){ + var date = new Date(firstDate[0], firstDate[1]-1, firstDate[2]-i); + week.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + weeks.unshift(week); + } + + var lastWeek = weeks[weeks.length-1]; + while(lastWeek.length < 7){ + var lastDate = lastWeek[lastWeek.length-1]; + var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+1); + lastWeek.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + if (weeks.length < 6){ + var lastDate = lastWeek[lastWeek.length-1]; + var week = []; + for(var i=1; i<=7; i++){ + var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+i); + week.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + weeks.push(week); + } + + return weeks; + } + + /** + * show the calendar day. + */ + function show(target){ + var opts = $.data(target, 'calendar').options; + if (opts.current && !opts.validator.call(target, opts.current)){ + opts.current = null; + } + + var now = new Date(); + var todayInfo = now.getFullYear()+','+(now.getMonth()+1)+','+now.getDate(); + var currentInfo = opts.current ? (opts.current.getFullYear()+','+(opts.current.getMonth()+1)+','+opts.current.getDate()) : ''; + // calulate the saturday and sunday index + var saIndex = 6 - opts.firstDay; + var suIndex = saIndex + 1; + if (saIndex >= 7) saIndex -= 7; + if (suIndex >= 7) suIndex -= 7; + + $(target).find('.calendar-title span').html(opts.months[opts.month-1] + ' ' + opts.year); + + var body = $(target).find('div.calendar-body'); + body.children('table').remove(); + + var data = ['']; + data.push(''); + for(var i=opts.firstDay; i'+opts.weeks[i]+''); + } + for(var i=0; i'+opts.weeks[i]+''); + } + data.push(''); + + data.push(''); + var weeks = getWeeks(target, opts.year, opts.month); + for(var i=0; i'); + for(var j=0; j' + d + ''); + } + data.push(''); + } + data.push(''); + data.push('
                              '); + + body.append(data.join('')); + body.children('table.calendar-dtable').prependTo(body); + + opts.onNavigate.call(target, opts.year, opts.month); + } + + $.fn.calendar = function(options, param){ + if (typeof options == 'string'){ + return $.fn.calendar.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'calendar'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'calendar', { + options:$.extend({}, $.fn.calendar.defaults, $.fn.calendar.parseOptions(this), options) + }); + init(this); + } + if (state.options.border == false){ + $(this).addClass('calendar-noborder'); + } + setSize(this); + bindEvents(this); + show(this); + $(this).find('div.calendar-menu').hide(); // hide the calendar menu + }); + }; + + $.fn.calendar.methods = { + options: function(jq){ + return $.data(jq[0], 'calendar').options; + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + moveTo: function(jq, date){ + return jq.each(function(){ + if (!date){ + var now = new Date(); + $(this).calendar({ + year: now.getFullYear(), + month: now.getMonth()+1, + current: date + }); + return; + } + var opts = $(this).calendar('options'); + if (opts.validator.call(this, date)){ + var oldValue = opts.current; + $(this).calendar({ + year: date.getFullYear(), + month: date.getMonth()+1, + current: date + }); + if (!oldValue || oldValue.getTime() != date.getTime()){ + opts.onChange.call(this, opts.current, oldValue); + } + } + }); + } + }; + + $.fn.calendar.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + {firstDay:'number',fit:'boolean',border:'boolean'} + ])); + }; + + $.fn.calendar.defaults = { + width:180, + height:180, + fit:false, + border:true, + firstDay:0, + weeks:['S','M','T','W','T','F','S'], + months:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + year:new Date().getFullYear(), + month:new Date().getMonth()+1, + current:(function(){ + var d = new Date(); + return new Date(d.getFullYear(), d.getMonth(), d.getDate()); + })(), + + formatter:function(date){return date.getDate()}, + styler:function(date){return ''}, + validator:function(date){return true}, + + onSelect: function(date){}, + onChange: function(newDate, oldDate){}, + onNavigate: function(year, month){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.combobox.js b/vendor/FHC-vendor/easyui/src/jquery.combobox.js similarity index 96% rename from vendor/easyui/src/jquery.combobox.js rename to vendor/FHC-vendor/easyui/src/jquery.combobox.js index ab98c3c00..ed4b3099c 100644 --- a/vendor/easyui/src/jquery.combobox.js +++ b/vendor/FHC-vendor/easyui/src/jquery.combobox.js @@ -1,566 +1,566 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * combobox - jQuery EasyUI - * - * Dependencies: - * combo - * - */ -(function($){ - var COMBOBOX_SERNO = 0; - - function getRowIndex(target, value){ - var state = $.data(target, 'combobox'); - var opts = state.options; - var data = state.data; - for(var i=0; i panel.height()){ - var h = panel.scrollTop() + item.position().top + item.outerHeight() - panel.height(); - panel.scrollTop(h); - } - } - } - - function nav(target, dir){ - var opts = $.data(target, 'combobox').options; - var panel = $(target).combobox('panel'); - var item = panel.children('div.combobox-item-hover'); - if (!item.length){ - item = panel.children('div.combobox-item-selected'); - } - item.removeClass('combobox-item-hover'); - var firstSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):first'; - var lastSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):last'; - if (!item.length){ - item = panel.children(dir=='next' ? firstSelector : lastSelector); -// item = panel.children('div.combobox-item:visible:' + (dir=='next'?'first':'last')); - } else { - if (dir == 'next'){ - item = item.nextAll(firstSelector); -// item = item.nextAll('div.combobox-item:visible:first'); - if (!item.length){ - item = panel.children(firstSelector); -// item = panel.children('div.combobox-item:visible:first'); - } - } else { - item = item.prevAll(firstSelector); -// item = item.prevAll('div.combobox-item:visible:first'); - if (!item.length){ - item = panel.children(lastSelector); -// item = panel.children('div.combobox-item:visible:last'); - } - } - } - if (item.length){ - item.addClass('combobox-item-hover'); - var row = opts.finder.getRow(target, item); - if (row){ - scrollTo(target, row[opts.valueField]); - if (opts.selectOnNavigation){ - select(target, row[opts.valueField]); - } - } - } - } - - /** - * select the specified value - */ - function select(target, value){ - var opts = $.data(target, 'combobox').options; - var values = $(target).combo('getValues'); - if ($.inArray(value+'', values) == -1){ - if (opts.multiple){ - values.push(value); - } else { - values = [value]; - } - setValues(target, values); - opts.onSelect.call(target, opts.finder.getRow(target, value)); - } - } - - /** - * unselect the specified value - */ - function unselect(target, value){ - var opts = $.data(target, 'combobox').options; - var values = $(target).combo('getValues'); - var index = $.inArray(value+'', values); - if (index >= 0){ - values.splice(index, 1); - setValues(target, values); - opts.onUnselect.call(target, opts.finder.getRow(target, value)); - } - } - - /** - * set values - */ - function setValues(target, values, remainText){ - var opts = $.data(target, 'combobox').options; - var panel = $(target).combo('panel'); - - if (!$.isArray(values)){values = values.split(opts.separator)} - panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); - var vv = [], ss = []; - for(var i=0; i'); - dd.push(opts.groupFormatter ? opts.groupFormatter.call(target, g) : g); - dd.push(''); - } - } else { - group = undefined; - } - - var cls = 'combobox-item' + (row.disabled ? ' combobox-item-disabled' : '') + (g ? ' combobox-gitem' : ''); - dd.push('
                              '); - dd.push(opts.formatter ? opts.formatter.call(target, row) : s); - dd.push('
                              '); - -// if (item['selected']){ -// (function(){ -// for(var i=0; i= 0){ - vv.push(v); - } - }); - t.combobox('setValues', vv); - if (!opts.multiple){ - t.combobox('hidePanel'); - } - } - - /** - * create the component - */ - function create(target){ - var state = $.data(target, 'combobox'); - var opts = state.options; - - COMBOBOX_SERNO++; - state.itemIdPrefix = '_easyui_combobox_i' + COMBOBOX_SERNO; - state.groupIdPrefix = '_easyui_combobox_g' + COMBOBOX_SERNO; - - $(target).addClass('combobox-f'); - $(target).combo($.extend({}, opts, { - onShowPanel: function(){ - $(target).combo('panel').find('div.combobox-item:hidden,div.combobox-group:hidden').show(); - scrollTo(target, $(target).combobox('getValue')); - opts.onShowPanel.call(target); - } - })); - - $(target).combo('panel').unbind().bind('mouseover', function(e){ - $(this).children('div.combobox-item-hover').removeClass('combobox-item-hover'); - var item = $(e.target).closest('div.combobox-item'); - if (!item.hasClass('combobox-item-disabled')){ - item.addClass('combobox-item-hover'); - } - e.stopPropagation(); - }).bind('mouseout', function(e){ - $(e.target).closest('div.combobox-item').removeClass('combobox-item-hover'); - e.stopPropagation(); - }).bind('click', function(e){ - var item = $(e.target).closest('div.combobox-item'); - if (!item.length || item.hasClass('combobox-item-disabled')){return} - var row = opts.finder.getRow(target, item); - if (!row){return} - var value = row[opts.valueField]; - if (opts.multiple){ - if (item.hasClass('combobox-item-selected')){ - unselect(target, value); - } else { - select(target, value); - } - } else { - select(target, value); - $(target).combo('hidePanel'); - } - e.stopPropagation(); - }); - } - - $.fn.combobox = function(options, param){ - if (typeof options == 'string'){ - var method = $.fn.combobox.methods[options]; - if (method){ - return method(this, param); - } else { - return this.combo(options, param); - } - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'combobox'); - if (state){ - $.extend(state.options, options); - } else { - state = $.data(this, 'combobox', { - options: $.extend({}, $.fn.combobox.defaults, $.fn.combobox.parseOptions(this), options), - data: [] - }); - } - create(this); - if (state.options.data){ - loadData(this, state.options.data); - } else { - var data = $.fn.combobox.parseData(this); - if (data.length){ - loadData(this, data); - } - } - request(this); - }); - }; - - - $.fn.combobox.methods = { - options: function(jq){ - var copts = jq.combo('options'); - return $.extend($.data(jq[0], 'combobox').options, { - width: copts.width, - height: copts.height, - originalValue: copts.originalValue, - disabled: copts.disabled, - readonly: copts.readonly - }); - }, - getData: function(jq){ - return $.data(jq[0], 'combobox').data; - }, - setValues: function(jq, values){ - return jq.each(function(){ - setValues(this, values); - }); - }, - setValue: function(jq, value){ - return jq.each(function(){ - setValues(this, [value]); - }); - }, - clear: function(jq){ - return jq.each(function(){ - $(this).combo('clear'); - var panel = $(this).combo('panel'); - panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); - }); - }, - reset: function(jq){ - return jq.each(function(){ - var opts = $(this).combobox('options'); - if (opts.multiple){ - $(this).combobox('setValues', opts.originalValue); - } else { - $(this).combobox('setValue', opts.originalValue); - } - }); - }, - loadData: function(jq, data){ - return jq.each(function(){ - loadData(this, data); - }); - }, - reload: function(jq, url){ - return jq.each(function(){ - if (typeof url == 'string'){ - request(this, url); - } else { - if (url){ - var opts = $(this).combobox('options'); - opts.queryParams = url; - } - request(this); - } - }); - }, - select: function(jq, value){ - return jq.each(function(){ - select(this, value); - }); - }, - unselect: function(jq, value){ - return jq.each(function(){ - unselect(this, value); - }); - } - }; - - $.fn.combobox.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target,[ - 'valueField','textField','groupField','mode','method','url' - ])); - }; - - $.fn.combobox.parseData = function(target){ - var data = []; - var opts = $(target).combobox('options'); - $(target).children().each(function(){ - if (this.tagName.toLowerCase() == 'optgroup'){ - var group = $(this).attr('label'); - $(this).children().each(function(){ - _parseItem(this, group); - }); - } else { - _parseItem(this); - } - }); - return data; - - function _parseItem(el, group){ - var t = $(el); - var row = {}; - row[opts.valueField] = t.attr('value')!=undefined ? t.attr('value') : t.text(); - row[opts.textField] = t.text(); - row['selected'] = t.is(':selected'); - row['disabled'] = t.is(':disabled'); - if (group){ - opts.groupField = opts.groupField || 'group'; - row[opts.groupField] = group; - } - data.push(row); - } - }; - - $.fn.combobox.defaults = $.extend({}, $.fn.combo.defaults, { - valueField: 'value', - textField: 'text', - groupField: null, - groupFormatter: function(group){return group;}, - mode: 'local', // or 'remote' - method: 'post', - url: null, - data: null, - queryParams: {}, - - keyHandler: { - up: function(e){nav(this,'prev');e.preventDefault()}, - down: function(e){nav(this,'next');e.preventDefault()}, - left: function(e){}, - right: function(e){}, - enter: function(e){doEnter(this)}, - query: function(q,e){doQuery(this, q)} - }, - filter: function(q, row){ - var opts = $(this).combobox('options'); - return row[opts.textField].toLowerCase().indexOf(q.toLowerCase()) == 0; - }, - formatter: function(row){ - var opts = $(this).combobox('options'); - return row[opts.textField]; - }, - loader: function(param, success, error){ - var opts = $(this).combobox('options'); - if (!opts.url) return false; - $.ajax({ - type: opts.method, - url: opts.url, - data: param, - dataType: 'json', - success: function(data){ - success(data); - }, - error: function(){ - error.apply(this, arguments); - } - }); - }, - loadFilter: function(data){ - return data; - }, - finder:{ - getEl:function(target, value){ - var index = getRowIndex(target, value); - var id = $.data(target, 'combobox').itemIdPrefix + '_' + index; - return $('#'+id); - }, - getRow:function(target, p){ - var state = $.data(target, 'combobox'); - var index = (p instanceof jQuery) ? p.attr('id').substr(state.itemIdPrefix.length+1) : getRowIndex(target, p); - return state.data[parseInt(index)]; - } - }, - - onBeforeLoad: function(param){}, - onLoadSuccess: function(){}, - onLoadError: function(){}, - onSelect: function(record){}, - onUnselect: function(record){} - }); -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * combobox - jQuery EasyUI + * + * Dependencies: + * combo + * + */ +(function($){ + var COMBOBOX_SERNO = 0; + + function getRowIndex(target, value){ + var state = $.data(target, 'combobox'); + var opts = state.options; + var data = state.data; + for(var i=0; i panel.height()){ + var h = panel.scrollTop() + item.position().top + item.outerHeight() - panel.height(); + panel.scrollTop(h); + } + } + } + + function nav(target, dir){ + var opts = $.data(target, 'combobox').options; + var panel = $(target).combobox('panel'); + var item = panel.children('div.combobox-item-hover'); + if (!item.length){ + item = panel.children('div.combobox-item-selected'); + } + item.removeClass('combobox-item-hover'); + var firstSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):first'; + var lastSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):last'; + if (!item.length){ + item = panel.children(dir=='next' ? firstSelector : lastSelector); +// item = panel.children('div.combobox-item:visible:' + (dir=='next'?'first':'last')); + } else { + if (dir == 'next'){ + item = item.nextAll(firstSelector); +// item = item.nextAll('div.combobox-item:visible:first'); + if (!item.length){ + item = panel.children(firstSelector); +// item = panel.children('div.combobox-item:visible:first'); + } + } else { + item = item.prevAll(firstSelector); +// item = item.prevAll('div.combobox-item:visible:first'); + if (!item.length){ + item = panel.children(lastSelector); +// item = panel.children('div.combobox-item:visible:last'); + } + } + } + if (item.length){ + item.addClass('combobox-item-hover'); + var row = opts.finder.getRow(target, item); + if (row){ + scrollTo(target, row[opts.valueField]); + if (opts.selectOnNavigation){ + select(target, row[opts.valueField]); + } + } + } + } + + /** + * select the specified value + */ + function select(target, value){ + var opts = $.data(target, 'combobox').options; + var values = $(target).combo('getValues'); + if ($.inArray(value+'', values) == -1){ + if (opts.multiple){ + values.push(value); + } else { + values = [value]; + } + setValues(target, values); + opts.onSelect.call(target, opts.finder.getRow(target, value)); + } + } + + /** + * unselect the specified value + */ + function unselect(target, value){ + var opts = $.data(target, 'combobox').options; + var values = $(target).combo('getValues'); + var index = $.inArray(value+'', values); + if (index >= 0){ + values.splice(index, 1); + setValues(target, values); + opts.onUnselect.call(target, opts.finder.getRow(target, value)); + } + } + + /** + * set values + */ + function setValues(target, values, remainText){ + var opts = $.data(target, 'combobox').options; + var panel = $(target).combo('panel'); + + if (!$.isArray(values)){values = values.split(opts.separator)} + panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); + var vv = [], ss = []; + for(var i=0; i'); + dd.push(opts.groupFormatter ? opts.groupFormatter.call(target, g) : g); + dd.push(''); + } + } else { + group = undefined; + } + + var cls = 'combobox-item' + (row.disabled ? ' combobox-item-disabled' : '') + (g ? ' combobox-gitem' : ''); + dd.push('
                              '); + dd.push(opts.formatter ? opts.formatter.call(target, row) : s); + dd.push('
                              '); + +// if (item['selected']){ +// (function(){ +// for(var i=0; i= 0){ + vv.push(v); + } + }); + t.combobox('setValues', vv); + if (!opts.multiple){ + t.combobox('hidePanel'); + } + } + + /** + * create the component + */ + function create(target){ + var state = $.data(target, 'combobox'); + var opts = state.options; + + COMBOBOX_SERNO++; + state.itemIdPrefix = '_easyui_combobox_i' + COMBOBOX_SERNO; + state.groupIdPrefix = '_easyui_combobox_g' + COMBOBOX_SERNO; + + $(target).addClass('combobox-f'); + $(target).combo($.extend({}, opts, { + onShowPanel: function(){ + $(target).combo('panel').find('div.combobox-item:hidden,div.combobox-group:hidden').show(); + scrollTo(target, $(target).combobox('getValue')); + opts.onShowPanel.call(target); + } + })); + + $(target).combo('panel').unbind().bind('mouseover', function(e){ + $(this).children('div.combobox-item-hover').removeClass('combobox-item-hover'); + var item = $(e.target).closest('div.combobox-item'); + if (!item.hasClass('combobox-item-disabled')){ + item.addClass('combobox-item-hover'); + } + e.stopPropagation(); + }).bind('mouseout', function(e){ + $(e.target).closest('div.combobox-item').removeClass('combobox-item-hover'); + e.stopPropagation(); + }).bind('click', function(e){ + var item = $(e.target).closest('div.combobox-item'); + if (!item.length || item.hasClass('combobox-item-disabled')){return} + var row = opts.finder.getRow(target, item); + if (!row){return} + var value = row[opts.valueField]; + if (opts.multiple){ + if (item.hasClass('combobox-item-selected')){ + unselect(target, value); + } else { + select(target, value); + } + } else { + select(target, value); + $(target).combo('hidePanel'); + } + e.stopPropagation(); + }); + } + + $.fn.combobox = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.combobox.methods[options]; + if (method){ + return method(this, param); + } else { + return this.combo(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'combobox'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'combobox', { + options: $.extend({}, $.fn.combobox.defaults, $.fn.combobox.parseOptions(this), options), + data: [] + }); + } + create(this); + if (state.options.data){ + loadData(this, state.options.data); + } else { + var data = $.fn.combobox.parseData(this); + if (data.length){ + loadData(this, data); + } + } + request(this); + }); + }; + + + $.fn.combobox.methods = { + options: function(jq){ + var copts = jq.combo('options'); + return $.extend($.data(jq[0], 'combobox').options, { + width: copts.width, + height: copts.height, + originalValue: copts.originalValue, + disabled: copts.disabled, + readonly: copts.readonly + }); + }, + getData: function(jq){ + return $.data(jq[0], 'combobox').data; + }, + setValues: function(jq, values){ + return jq.each(function(){ + setValues(this, values); + }); + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValues(this, [value]); + }); + }, + clear: function(jq){ + return jq.each(function(){ + $(this).combo('clear'); + var panel = $(this).combo('panel'); + panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).combobox('options'); + if (opts.multiple){ + $(this).combobox('setValues', opts.originalValue); + } else { + $(this).combobox('setValue', opts.originalValue); + } + }); + }, + loadData: function(jq, data){ + return jq.each(function(){ + loadData(this, data); + }); + }, + reload: function(jq, url){ + return jq.each(function(){ + if (typeof url == 'string'){ + request(this, url); + } else { + if (url){ + var opts = $(this).combobox('options'); + opts.queryParams = url; + } + request(this); + } + }); + }, + select: function(jq, value){ + return jq.each(function(){ + select(this, value); + }); + }, + unselect: function(jq, value){ + return jq.each(function(){ + unselect(this, value); + }); + } + }; + + $.fn.combobox.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target,[ + 'valueField','textField','groupField','mode','method','url' + ])); + }; + + $.fn.combobox.parseData = function(target){ + var data = []; + var opts = $(target).combobox('options'); + $(target).children().each(function(){ + if (this.tagName.toLowerCase() == 'optgroup'){ + var group = $(this).attr('label'); + $(this).children().each(function(){ + _parseItem(this, group); + }); + } else { + _parseItem(this); + } + }); + return data; + + function _parseItem(el, group){ + var t = $(el); + var row = {}; + row[opts.valueField] = t.attr('value')!=undefined ? t.attr('value') : t.text(); + row[opts.textField] = t.text(); + row['selected'] = t.is(':selected'); + row['disabled'] = t.is(':disabled'); + if (group){ + opts.groupField = opts.groupField || 'group'; + row[opts.groupField] = group; + } + data.push(row); + } + }; + + $.fn.combobox.defaults = $.extend({}, $.fn.combo.defaults, { + valueField: 'value', + textField: 'text', + groupField: null, + groupFormatter: function(group){return group;}, + mode: 'local', // or 'remote' + method: 'post', + url: null, + data: null, + queryParams: {}, + + keyHandler: { + up: function(e){nav(this,'prev');e.preventDefault()}, + down: function(e){nav(this,'next');e.preventDefault()}, + left: function(e){}, + right: function(e){}, + enter: function(e){doEnter(this)}, + query: function(q,e){doQuery(this, q)} + }, + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].toLowerCase().indexOf(q.toLowerCase()) == 0; + }, + formatter: function(row){ + var opts = $(this).combobox('options'); + return row[opts.textField]; + }, + loader: function(param, success, error){ + var opts = $(this).combobox('options'); + if (!opts.url) return false; + $.ajax({ + type: opts.method, + url: opts.url, + data: param, + dataType: 'json', + success: function(data){ + success(data); + }, + error: function(){ + error.apply(this, arguments); + } + }); + }, + loadFilter: function(data){ + return data; + }, + finder:{ + getEl:function(target, value){ + var index = getRowIndex(target, value); + var id = $.data(target, 'combobox').itemIdPrefix + '_' + index; + return $('#'+id); + }, + getRow:function(target, p){ + var state = $.data(target, 'combobox'); + var index = (p instanceof jQuery) ? p.attr('id').substr(state.itemIdPrefix.length+1) : getRowIndex(target, p); + return state.data[parseInt(index)]; + } + }, + + onBeforeLoad: function(param){}, + onLoadSuccess: function(){}, + onLoadError: function(){}, + onSelect: function(record){}, + onUnselect: function(record){} + }); +})(jQuery); diff --git a/vendor/easyui/src/jquery.datebox.js b/vendor/FHC-vendor/easyui/src/jquery.datebox.js similarity index 96% rename from vendor/easyui/src/jquery.datebox.js rename to vendor/FHC-vendor/easyui/src/jquery.datebox.js index b8940fe29..c25f7d01b 100644 --- a/vendor/easyui/src/jquery.datebox.js +++ b/vendor/FHC-vendor/easyui/src/jquery.datebox.js @@ -1,285 +1,285 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * datebox - jQuery EasyUI - * - * Dependencies: - * calendar - * combo - * - */ -(function($){ - /** - * create date box - */ - function createBox(target){ - var state = $.data(target, 'datebox'); - var opts = state.options; - - $(target).addClass('datebox-f').combo($.extend({}, opts, { - onShowPanel:function(){ - bindEvents(this); - setButtons(this); - setCalendar(this); - setValue(this, $(this).datebox('getText'), true); - opts.onShowPanel.call(this); - } - })); - - /** - * if the calendar isn't created, create it. - */ - if (!state.calendar){ - var panel = $(target).combo('panel').css('overflow','hidden'); - panel.panel('options').onBeforeDestroy = function(){ - var c = $(this).find('.calendar-shared'); - if (c.length){ - c.insertBefore(c[0].pholder); - } - }; - var cc = $('
                              ').prependTo(panel); - if (opts.sharedCalendar){ - var c = $(opts.sharedCalendar); - if (!c[0].pholder){ - c[0].pholder = $('').insertAfter(c); - } - c.addClass('calendar-shared').appendTo(cc); - if (!c.hasClass('calendar')){ - c.calendar(); - } - state.calendar = c; - } else { - state.calendar = $('
                              ').appendTo(cc).calendar(); - } - - $.extend(state.calendar.calendar('options'), { - fit:true, - border:false, - onSelect:function(date){ - var target = this.target; - var opts = $(target).datebox('options'); - setValue(target, opts.formatter.call(target, date)); - $(target).combo('hidePanel'); - opts.onSelect.call(target, date); - } - }); - } - - $(target).combo('textbox').parent().addClass('datebox'); - $(target).datebox('initValue', opts.value); - - function bindEvents(target){ - var opts = $(target).datebox('options'); - var panel = $(target).combo('panel'); - panel.unbind('.datebox').bind('click.datebox', function(e){ - if ($(e.target).hasClass('datebox-button-a')){ - var index = parseInt($(e.target).attr('datebox-button-index')); - opts.buttons[index].handler.call(e.target, target); - } - }); - } - function setButtons(target){ - var panel = $(target).combo('panel'); - if (panel.children('div.datebox-button').length){return} - var button = $('
                              ').appendTo(panel); - var tr = button.find('tr'); - for(var i=0; i').appendTo(tr); - var btn = opts.buttons[i]; - var t = $('').html($.isFunction(btn.text) ? btn.text(target) : btn.text).appendTo(td); - t.attr('datebox-button-index', i); - } - tr.find('td').css('width', (100/opts.buttons.length)+'%'); - } - function setCalendar(target){ - var panel = $(target).combo('panel'); - var cc = panel.children('div.datebox-calendar-inner'); - panel.children()._outerWidth(panel.width()); - state.calendar.appendTo(cc); - state.calendar[0].target = target; - if (opts.panelHeight != 'auto'){ - var height = panel.height(); - panel.children().not(cc).each(function(){ - height -= $(this).outerHeight(); - }); - cc._outerHeight(height); - } - state.calendar.calendar('resize'); - } - } - - /** - * called when user inputs some value in text box - */ - function doQuery(target, q){ - setValue(target, q, true); - } - - /** - * called when user press enter key - */ - function doEnter(target){ - var state = $.data(target, 'datebox'); - var opts = state.options; - var current = state.calendar.calendar('options').current; - if (current){ - setValue(target, opts.formatter.call(target, current)); - $(target).combo('hidePanel'); - } - } - - function setValue(target, value, remainText){ - var state = $.data(target, 'datebox'); - var opts = state.options; - var calendar = state.calendar; - calendar.calendar('moveTo', opts.parser.call(target, value)); - if (remainText){ - $(target).combo('setValue', value); - } else { - if (value){ - value = opts.formatter.call(target, calendar.calendar('options').current); - } - $(target).combo('setText', value).combo('setValue', value); - } - } - - $.fn.datebox = function(options, param){ - if (typeof options == 'string'){ - var method = $.fn.datebox.methods[options]; - if (method){ - return method(this, param); - } else { - return this.combo(options, param); - } - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'datebox'); - if (state){ - $.extend(state.options, options); - } else { - $.data(this, 'datebox', { - options: $.extend({}, $.fn.datebox.defaults, $.fn.datebox.parseOptions(this), options) - }); - } - createBox(this); - }); - }; - - $.fn.datebox.methods = { - options: function(jq){ - var copts = jq.combo('options'); - return $.extend($.data(jq[0], 'datebox').options, { - width: copts.width, - height: copts.height, - originalValue: copts.originalValue, - disabled: copts.disabled, - readonly: copts.readonly - }); - }, - cloneFrom: function(jq, from){ - return jq.each(function(){ - $(this).combo('cloneFrom', from); - $.data(this, 'datebox', { - options: $.extend(true, {}, $(from).datebox('options')), - calendar: $(from).datebox('calendar') - }); - $(this).addClass('datebox-f'); - }); - }, - calendar: function(jq){ // get the calendar object - return $.data(jq[0], 'datebox').calendar; - }, - initValue: function(jq, value){ - return jq.each(function(){ - var opts = $(this).datebox('options'); - var value = opts.value; - if (value){ - value = opts.formatter.call(this, opts.parser.call(this, value)); - } - $(this).combo('initValue', value).combo('setText', value); - }); - }, - setValue: function(jq, value){ - return jq.each(function(){ - setValue(this, value); - }); - }, - reset: function(jq){ - return jq.each(function(){ - var opts = $(this).datebox('options'); - $(this).datebox('setValue', opts.originalValue); - }); - } - }; - - $.fn.datebox.parseOptions = function(target){ - return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target, ['sharedCalendar'])); - }; - - $.fn.datebox.defaults = $.extend({}, $.fn.combo.defaults, { - panelWidth:180, - panelHeight:'auto', - sharedCalendar:null, - - keyHandler: { - up:function(e){}, - down:function(e){}, - left: function(e){}, - right: function(e){}, - enter:function(e){doEnter(this)}, - query:function(q,e){doQuery(this, q)} - }, - - currentText:'Today', - closeText:'Close', - okText:'Ok', - - buttons:[{ - text: function(target){return $(target).datebox('options').currentText;}, - handler: function(target){ - var now = new Date(); - $(target).datebox('calendar').calendar({ - year:now.getFullYear(), - month:now.getMonth()+1, - current:new Date(now.getFullYear(), now.getMonth(), now.getDate()) - }); - doEnter(target); - } - },{ - text: function(target){return $(target).datebox('options').closeText;}, - handler: function(target){ - $(this).closest('div.combo-panel').panel('close'); - } - }], - - formatter:function(date){ - var y = date.getFullYear(); - var m = date.getMonth()+1; - var d = date.getDate(); - return (m<10?('0'+m):m)+'/'+(d<10?('0'+d):d)+'/'+y; - }, - parser:function(s){ - if (!s) return new Date(); - var ss = s.split('/'); - var m = parseInt(ss[0],10); - var d = parseInt(ss[1],10); - var y = parseInt(ss[2],10); - if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ - return new Date(y,m-1,d); - } else { - return new Date(); - } - }, - - onSelect:function(date){} - }); -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * datebox - jQuery EasyUI + * + * Dependencies: + * calendar + * combo + * + */ +(function($){ + /** + * create date box + */ + function createBox(target){ + var state = $.data(target, 'datebox'); + var opts = state.options; + + $(target).addClass('datebox-f').combo($.extend({}, opts, { + onShowPanel:function(){ + bindEvents(this); + setButtons(this); + setCalendar(this); + setValue(this, $(this).datebox('getText'), true); + opts.onShowPanel.call(this); + } + })); + + /** + * if the calendar isn't created, create it. + */ + if (!state.calendar){ + var panel = $(target).combo('panel').css('overflow','hidden'); + panel.panel('options').onBeforeDestroy = function(){ + var c = $(this).find('.calendar-shared'); + if (c.length){ + c.insertBefore(c[0].pholder); + } + }; + var cc = $('
                              ').prependTo(panel); + if (opts.sharedCalendar){ + var c = $(opts.sharedCalendar); + if (!c[0].pholder){ + c[0].pholder = $('').insertAfter(c); + } + c.addClass('calendar-shared').appendTo(cc); + if (!c.hasClass('calendar')){ + c.calendar(); + } + state.calendar = c; + } else { + state.calendar = $('
                              ').appendTo(cc).calendar(); + } + + $.extend(state.calendar.calendar('options'), { + fit:true, + border:false, + onSelect:function(date){ + var target = this.target; + var opts = $(target).datebox('options'); + setValue(target, opts.formatter.call(target, date)); + $(target).combo('hidePanel'); + opts.onSelect.call(target, date); + } + }); + } + + $(target).combo('textbox').parent().addClass('datebox'); + $(target).datebox('initValue', opts.value); + + function bindEvents(target){ + var opts = $(target).datebox('options'); + var panel = $(target).combo('panel'); + panel.unbind('.datebox').bind('click.datebox', function(e){ + if ($(e.target).hasClass('datebox-button-a')){ + var index = parseInt($(e.target).attr('datebox-button-index')); + opts.buttons[index].handler.call(e.target, target); + } + }); + } + function setButtons(target){ + var panel = $(target).combo('panel'); + if (panel.children('div.datebox-button').length){return} + var button = $('
                              ').appendTo(panel); + var tr = button.find('tr'); + for(var i=0; i').appendTo(tr); + var btn = opts.buttons[i]; + var t = $('').html($.isFunction(btn.text) ? btn.text(target) : btn.text).appendTo(td); + t.attr('datebox-button-index', i); + } + tr.find('td').css('width', (100/opts.buttons.length)+'%'); + } + function setCalendar(target){ + var panel = $(target).combo('panel'); + var cc = panel.children('div.datebox-calendar-inner'); + panel.children()._outerWidth(panel.width()); + state.calendar.appendTo(cc); + state.calendar[0].target = target; + if (opts.panelHeight != 'auto'){ + var height = panel.height(); + panel.children().not(cc).each(function(){ + height -= $(this).outerHeight(); + }); + cc._outerHeight(height); + } + state.calendar.calendar('resize'); + } + } + + /** + * called when user inputs some value in text box + */ + function doQuery(target, q){ + setValue(target, q, true); + } + + /** + * called when user press enter key + */ + function doEnter(target){ + var state = $.data(target, 'datebox'); + var opts = state.options; + var current = state.calendar.calendar('options').current; + if (current){ + setValue(target, opts.formatter.call(target, current)); + $(target).combo('hidePanel'); + } + } + + function setValue(target, value, remainText){ + var state = $.data(target, 'datebox'); + var opts = state.options; + var calendar = state.calendar; + calendar.calendar('moveTo', opts.parser.call(target, value)); + if (remainText){ + $(target).combo('setValue', value); + } else { + if (value){ + value = opts.formatter.call(target, calendar.calendar('options').current); + } + $(target).combo('setText', value).combo('setValue', value); + } + } + + $.fn.datebox = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.datebox.methods[options]; + if (method){ + return method(this, param); + } else { + return this.combo(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'datebox'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'datebox', { + options: $.extend({}, $.fn.datebox.defaults, $.fn.datebox.parseOptions(this), options) + }); + } + createBox(this); + }); + }; + + $.fn.datebox.methods = { + options: function(jq){ + var copts = jq.combo('options'); + return $.extend($.data(jq[0], 'datebox').options, { + width: copts.width, + height: copts.height, + originalValue: copts.originalValue, + disabled: copts.disabled, + readonly: copts.readonly + }); + }, + cloneFrom: function(jq, from){ + return jq.each(function(){ + $(this).combo('cloneFrom', from); + $.data(this, 'datebox', { + options: $.extend(true, {}, $(from).datebox('options')), + calendar: $(from).datebox('calendar') + }); + $(this).addClass('datebox-f'); + }); + }, + calendar: function(jq){ // get the calendar object + return $.data(jq[0], 'datebox').calendar; + }, + initValue: function(jq, value){ + return jq.each(function(){ + var opts = $(this).datebox('options'); + var value = opts.value; + if (value){ + value = opts.formatter.call(this, opts.parser.call(this, value)); + } + $(this).combo('initValue', value).combo('setText', value); + }); + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValue(this, value); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).datebox('options'); + $(this).datebox('setValue', opts.originalValue); + }); + } + }; + + $.fn.datebox.parseOptions = function(target){ + return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target, ['sharedCalendar'])); + }; + + $.fn.datebox.defaults = $.extend({}, $.fn.combo.defaults, { + panelWidth:180, + panelHeight:'auto', + sharedCalendar:null, + + keyHandler: { + up:function(e){}, + down:function(e){}, + left: function(e){}, + right: function(e){}, + enter:function(e){doEnter(this)}, + query:function(q,e){doQuery(this, q)} + }, + + currentText:'Today', + closeText:'Close', + okText:'Ok', + + buttons:[{ + text: function(target){return $(target).datebox('options').currentText;}, + handler: function(target){ + var now = new Date(); + $(target).datebox('calendar').calendar({ + year:now.getFullYear(), + month:now.getMonth()+1, + current:new Date(now.getFullYear(), now.getMonth(), now.getDate()) + }); + doEnter(target); + } + },{ + text: function(target){return $(target).datebox('options').closeText;}, + handler: function(target){ + $(this).closest('div.combo-panel').panel('close'); + } + }], + + formatter:function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return (m<10?('0'+m):m)+'/'+(d<10?('0'+d):d)+'/'+y; + }, + parser:function(s){ + if (!s) return new Date(); + var ss = s.split('/'); + var m = parseInt(ss[0],10); + var d = parseInt(ss[1],10); + var y = parseInt(ss[2],10); + if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ + return new Date(y,m-1,d); + } else { + return new Date(); + } + }, + + onSelect:function(date){} + }); +})(jQuery); diff --git a/vendor/easyui/src/jquery.draggable.js b/vendor/FHC-vendor/easyui/src/jquery.draggable.js similarity index 96% rename from vendor/easyui/src/jquery.draggable.js rename to vendor/FHC-vendor/easyui/src/jquery.draggable.js index c69477e41..fe8786c83 100644 --- a/vendor/easyui/src/jquery.draggable.js +++ b/vendor/FHC-vendor/easyui/src/jquery.draggable.js @@ -1,395 +1,395 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * draggable - jQuery EasyUI - * - */ -(function($){ - function drag(e){ - var state = $.data(e.data.target, 'draggable'); - var opts = state.options; - var proxy = state.proxy; - - var dragData = e.data; - var left = dragData.startLeft + e.pageX - dragData.startX; - var top = dragData.startTop + e.pageY - dragData.startY; - - if (proxy){ - if (proxy.parent()[0] == document.body){ - if (opts.deltaX != null && opts.deltaX != undefined){ - left = e.pageX + opts.deltaX; - } else { - left = e.pageX - e.data.offsetWidth; - } - if (opts.deltaY != null && opts.deltaY != undefined){ - top = e.pageY + opts.deltaY; - } else { - top = e.pageY - e.data.offsetHeight; - } - } else { - if (opts.deltaX != null && opts.deltaX != undefined){ - left += e.data.offsetWidth + opts.deltaX; - } - if (opts.deltaY != null && opts.deltaY != undefined){ - top += e.data.offsetHeight + opts.deltaY; - } - } - } - - if (e.data.parent != document.body) { - left += $(e.data.parent).scrollLeft(); - top += $(e.data.parent).scrollTop(); - } - - if (opts.axis == 'h') { - dragData.left = left; - } else if (opts.axis == 'v') { - dragData.top = top; - } else { - dragData.left = left; - dragData.top = top; - } - } - - function applyDrag(e){ - var state = $.data(e.data.target, 'draggable'); - var opts = state.options; - var proxy = state.proxy; - if (!proxy){ - proxy = $(e.data.target); - } - proxy.css({ - left:e.data.left, - top:e.data.top - }); - $('body').css('cursor', opts.cursor); - } - - function doDown(e){ - if (!$.fn.draggable.isDragging){return false;} - - var state = $.data(e.data.target, 'draggable'); - var opts = state.options; - - var droppables = $('.droppable').filter(function(){ - return e.data.target != this; - }).filter(function(){ - var accept = $.data(this, 'droppable').options.accept; - if (accept){ - return $(accept).filter(function(){ - return this == e.data.target; - }).length > 0; - } else { - return true; - } - }); - state.droppables = droppables; - - var proxy = state.proxy; - if (!proxy){ - if (opts.proxy){ - if (opts.proxy == 'clone'){ - proxy = $(e.data.target).clone().insertAfter(e.data.target); - } else { - proxy = opts.proxy.call(e.data.target, e.data.target); - } - state.proxy = proxy; - } else { - proxy = $(e.data.target); - } - } - - proxy.css('position', 'absolute'); - drag(e); - applyDrag(e); - - opts.onStartDrag.call(e.data.target, e); - return false; - } - - function doMove(e){ - if (!$.fn.draggable.isDragging){return false;} - - var state = $.data(e.data.target, 'draggable'); - drag(e); - if (state.options.onDrag.call(e.data.target, e) != false){ - applyDrag(e); - } - - var source = e.data.target; - state.droppables.each(function(){ - var dropObj = $(this); - if (dropObj.droppable('options').disabled){return;} - - var p2 = dropObj.offset(); - if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() - && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ - if (!this.entered){ - $(this).trigger('_dragenter', [source]); - this.entered = true; - } - $(this).trigger('_dragover', [source]); - } else { - if (this.entered){ - $(this).trigger('_dragleave', [source]); - this.entered = false; - } - } - }); - - return false; - } - - function doUp(e){ - if (!$.fn.draggable.isDragging){ - clearDragging(); - return false; - } - - doMove(e); - - var state = $.data(e.data.target, 'draggable'); - var proxy = state.proxy; - var opts = state.options; - if (opts.revert){ - if (checkDrop() == true){ - $(e.data.target).css({ - position:e.data.startPosition, - left:e.data.startLeft, - top:e.data.startTop - }); - } else { - if (proxy){ - var left, top; - if (proxy.parent()[0] == document.body){ - left = e.data.startX - e.data.offsetWidth; - top = e.data.startY - e.data.offsetHeight; - } else { - left = e.data.startLeft; - top = e.data.startTop; - } - proxy.animate({ - left: left, - top: top - }, function(){ - removeProxy(); - }); - } else { - $(e.data.target).animate({ - left:e.data.startLeft, - top:e.data.startTop - }, function(){ - $(e.data.target).css('position', e.data.startPosition); - }); - } - } - } else { - $(e.data.target).css({ - position:'absolute', - left:e.data.left, - top:e.data.top - }); - checkDrop(); - } - - opts.onStopDrag.call(e.data.target, e); - - clearDragging(); - - function removeProxy(){ - if (proxy){ - proxy.remove(); - } - state.proxy = null; - } - - function checkDrop(){ - var dropped = false; - state.droppables.each(function(){ - var dropObj = $(this); - if (dropObj.droppable('options').disabled){return;} - - var p2 = dropObj.offset(); - if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() - && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ - if (opts.revert){ - $(e.data.target).css({ - position:e.data.startPosition, - left:e.data.startLeft, - top:e.data.startTop - }); - } - $(this).trigger('_drop', [e.data.target]); - removeProxy(); - dropped = true; - this.entered = false; - return false; - } - }); - if (!dropped && !opts.revert){ - removeProxy(); - } - return dropped; - } - - return false; - } - - function clearDragging(){ - if ($.fn.draggable.timer){ - clearTimeout($.fn.draggable.timer); - $.fn.draggable.timer = undefined; - } - $(document).unbind('.draggable'); - $.fn.draggable.isDragging = false; - setTimeout(function(){ - $('body').css('cursor',''); - },100); - } - - $.fn.draggable = function(options, param){ - if (typeof options == 'string'){ - return $.fn.draggable.methods[options](this, param); - } - - return this.each(function(){ - var opts; - var state = $.data(this, 'draggable'); - if (state) { - state.handle.unbind('.draggable'); - opts = $.extend(state.options, options); - } else { - opts = $.extend({}, $.fn.draggable.defaults, $.fn.draggable.parseOptions(this), options || {}); - } - var handle = opts.handle ? (typeof opts.handle=='string' ? $(opts.handle, this) : opts.handle) : $(this); - - $.data(this, 'draggable', { - options: opts, - handle: handle - }); - - if (opts.disabled) { - $(this).css('cursor', ''); - return; - } - - handle.unbind('.draggable').bind('mousemove.draggable', {target:this}, function(e){ - if ($.fn.draggable.isDragging){return} - var opts = $.data(e.data.target, 'draggable').options; - if (checkArea(e)){ - $(this).css('cursor', opts.cursor); - } else { - $(this).css('cursor', ''); - } - }).bind('mouseleave.draggable', {target:this}, function(e){ - $(this).css('cursor', ''); - }).bind('mousedown.draggable', {target:this}, function(e){ - if (checkArea(e) == false) return; - $(this).css('cursor', ''); - - var position = $(e.data.target).position(); - var offset = $(e.data.target).offset(); - var data = { - startPosition: $(e.data.target).css('position'), - startLeft: position.left, - startTop: position.top, - left: position.left, - top: position.top, - startX: e.pageX, - startY: e.pageY, - offsetWidth: (e.pageX - offset.left), - offsetHeight: (e.pageY - offset.top), - target: e.data.target, - parent: $(e.data.target).parent()[0] - }; - - $.extend(e.data, data); - var opts = $.data(e.data.target, 'draggable').options; - if (opts.onBeforeDrag.call(e.data.target, e) == false) return; - - $(document).bind('mousedown.draggable', e.data, doDown); - $(document).bind('mousemove.draggable', e.data, doMove); - $(document).bind('mouseup.draggable', e.data, doUp); - - $.fn.draggable.timer = setTimeout(function(){ - $.fn.draggable.isDragging = true; - doDown(e); - }, opts.delay); - return false; - }); - - // check if the handle can be dragged - function checkArea(e) { - var state = $.data(e.data.target, 'draggable'); - var handle = state.handle; - var offset = $(handle).offset(); - var width = $(handle).outerWidth(); - var height = $(handle).outerHeight(); - var t = e.pageY - offset.top; - var r = offset.left + width - e.pageX; - var b = offset.top + height - e.pageY; - var l = e.pageX - offset.left; - - return Math.min(t,r,b,l) > state.options.edge; - } - - }); - }; - - $.fn.draggable.methods = { - options: function(jq){ - return $.data(jq[0], 'draggable').options; - }, - proxy: function(jq){ - return $.data(jq[0], 'draggable').proxy; - }, - enable: function(jq){ - return jq.each(function(){ - $(this).draggable({disabled:false}); - }); - }, - disable: function(jq){ - return jq.each(function(){ - $(this).draggable({disabled:true}); - }); - } - }; - - $.fn.draggable.parseOptions = function(target){ - var t = $(target); - return $.extend({}, - $.parser.parseOptions(target, ['cursor','handle','axis', - {'revert':'boolean','deltaX':'number','deltaY':'number','edge':'number','delay':'number'}]), { - disabled: (t.attr('disabled') ? true : undefined) - }); - }; - - $.fn.draggable.defaults = { - proxy:null, // 'clone' or a function that will create the proxy object, - // the function has the source parameter that indicate the source object dragged. - revert:false, - cursor:'move', - deltaX:null, - deltaY:null, - handle: null, - disabled: false, - edge:0, - axis:null, // v or h - delay:100, - - onBeforeDrag: function(e){}, - onStartDrag: function(e){}, - onDrag: function(e){}, - onStopDrag: function(e){} - }; - - $.fn.draggable.isDragging = false; - -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * draggable - jQuery EasyUI + * + */ +(function($){ + function drag(e){ + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + var proxy = state.proxy; + + var dragData = e.data; + var left = dragData.startLeft + e.pageX - dragData.startX; + var top = dragData.startTop + e.pageY - dragData.startY; + + if (proxy){ + if (proxy.parent()[0] == document.body){ + if (opts.deltaX != null && opts.deltaX != undefined){ + left = e.pageX + opts.deltaX; + } else { + left = e.pageX - e.data.offsetWidth; + } + if (opts.deltaY != null && opts.deltaY != undefined){ + top = e.pageY + opts.deltaY; + } else { + top = e.pageY - e.data.offsetHeight; + } + } else { + if (opts.deltaX != null && opts.deltaX != undefined){ + left += e.data.offsetWidth + opts.deltaX; + } + if (opts.deltaY != null && opts.deltaY != undefined){ + top += e.data.offsetHeight + opts.deltaY; + } + } + } + + if (e.data.parent != document.body) { + left += $(e.data.parent).scrollLeft(); + top += $(e.data.parent).scrollTop(); + } + + if (opts.axis == 'h') { + dragData.left = left; + } else if (opts.axis == 'v') { + dragData.top = top; + } else { + dragData.left = left; + dragData.top = top; + } + } + + function applyDrag(e){ + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + var proxy = state.proxy; + if (!proxy){ + proxy = $(e.data.target); + } + proxy.css({ + left:e.data.left, + top:e.data.top + }); + $('body').css('cursor', opts.cursor); + } + + function doDown(e){ + if (!$.fn.draggable.isDragging){return false;} + + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + + var droppables = $('.droppable').filter(function(){ + return e.data.target != this; + }).filter(function(){ + var accept = $.data(this, 'droppable').options.accept; + if (accept){ + return $(accept).filter(function(){ + return this == e.data.target; + }).length > 0; + } else { + return true; + } + }); + state.droppables = droppables; + + var proxy = state.proxy; + if (!proxy){ + if (opts.proxy){ + if (opts.proxy == 'clone'){ + proxy = $(e.data.target).clone().insertAfter(e.data.target); + } else { + proxy = opts.proxy.call(e.data.target, e.data.target); + } + state.proxy = proxy; + } else { + proxy = $(e.data.target); + } + } + + proxy.css('position', 'absolute'); + drag(e); + applyDrag(e); + + opts.onStartDrag.call(e.data.target, e); + return false; + } + + function doMove(e){ + if (!$.fn.draggable.isDragging){return false;} + + var state = $.data(e.data.target, 'draggable'); + drag(e); + if (state.options.onDrag.call(e.data.target, e) != false){ + applyDrag(e); + } + + var source = e.data.target; + state.droppables.each(function(){ + var dropObj = $(this); + if (dropObj.droppable('options').disabled){return;} + + var p2 = dropObj.offset(); + if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() + && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ + if (!this.entered){ + $(this).trigger('_dragenter', [source]); + this.entered = true; + } + $(this).trigger('_dragover', [source]); + } else { + if (this.entered){ + $(this).trigger('_dragleave', [source]); + this.entered = false; + } + } + }); + + return false; + } + + function doUp(e){ + if (!$.fn.draggable.isDragging){ + clearDragging(); + return false; + } + + doMove(e); + + var state = $.data(e.data.target, 'draggable'); + var proxy = state.proxy; + var opts = state.options; + if (opts.revert){ + if (checkDrop() == true){ + $(e.data.target).css({ + position:e.data.startPosition, + left:e.data.startLeft, + top:e.data.startTop + }); + } else { + if (proxy){ + var left, top; + if (proxy.parent()[0] == document.body){ + left = e.data.startX - e.data.offsetWidth; + top = e.data.startY - e.data.offsetHeight; + } else { + left = e.data.startLeft; + top = e.data.startTop; + } + proxy.animate({ + left: left, + top: top + }, function(){ + removeProxy(); + }); + } else { + $(e.data.target).animate({ + left:e.data.startLeft, + top:e.data.startTop + }, function(){ + $(e.data.target).css('position', e.data.startPosition); + }); + } + } + } else { + $(e.data.target).css({ + position:'absolute', + left:e.data.left, + top:e.data.top + }); + checkDrop(); + } + + opts.onStopDrag.call(e.data.target, e); + + clearDragging(); + + function removeProxy(){ + if (proxy){ + proxy.remove(); + } + state.proxy = null; + } + + function checkDrop(){ + var dropped = false; + state.droppables.each(function(){ + var dropObj = $(this); + if (dropObj.droppable('options').disabled){return;} + + var p2 = dropObj.offset(); + if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() + && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ + if (opts.revert){ + $(e.data.target).css({ + position:e.data.startPosition, + left:e.data.startLeft, + top:e.data.startTop + }); + } + $(this).trigger('_drop', [e.data.target]); + removeProxy(); + dropped = true; + this.entered = false; + return false; + } + }); + if (!dropped && !opts.revert){ + removeProxy(); + } + return dropped; + } + + return false; + } + + function clearDragging(){ + if ($.fn.draggable.timer){ + clearTimeout($.fn.draggable.timer); + $.fn.draggable.timer = undefined; + } + $(document).unbind('.draggable'); + $.fn.draggable.isDragging = false; + setTimeout(function(){ + $('body').css('cursor',''); + },100); + } + + $.fn.draggable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.draggable.methods[options](this, param); + } + + return this.each(function(){ + var opts; + var state = $.data(this, 'draggable'); + if (state) { + state.handle.unbind('.draggable'); + opts = $.extend(state.options, options); + } else { + opts = $.extend({}, $.fn.draggable.defaults, $.fn.draggable.parseOptions(this), options || {}); + } + var handle = opts.handle ? (typeof opts.handle=='string' ? $(opts.handle, this) : opts.handle) : $(this); + + $.data(this, 'draggable', { + options: opts, + handle: handle + }); + + if (opts.disabled) { + $(this).css('cursor', ''); + return; + } + + handle.unbind('.draggable').bind('mousemove.draggable', {target:this}, function(e){ + if ($.fn.draggable.isDragging){return} + var opts = $.data(e.data.target, 'draggable').options; + if (checkArea(e)){ + $(this).css('cursor', opts.cursor); + } else { + $(this).css('cursor', ''); + } + }).bind('mouseleave.draggable', {target:this}, function(e){ + $(this).css('cursor', ''); + }).bind('mousedown.draggable', {target:this}, function(e){ + if (checkArea(e) == false) return; + $(this).css('cursor', ''); + + var position = $(e.data.target).position(); + var offset = $(e.data.target).offset(); + var data = { + startPosition: $(e.data.target).css('position'), + startLeft: position.left, + startTop: position.top, + left: position.left, + top: position.top, + startX: e.pageX, + startY: e.pageY, + offsetWidth: (e.pageX - offset.left), + offsetHeight: (e.pageY - offset.top), + target: e.data.target, + parent: $(e.data.target).parent()[0] + }; + + $.extend(e.data, data); + var opts = $.data(e.data.target, 'draggable').options; + if (opts.onBeforeDrag.call(e.data.target, e) == false) return; + + $(document).bind('mousedown.draggable', e.data, doDown); + $(document).bind('mousemove.draggable', e.data, doMove); + $(document).bind('mouseup.draggable', e.data, doUp); + + $.fn.draggable.timer = setTimeout(function(){ + $.fn.draggable.isDragging = true; + doDown(e); + }, opts.delay); + return false; + }); + + // check if the handle can be dragged + function checkArea(e) { + var state = $.data(e.data.target, 'draggable'); + var handle = state.handle; + var offset = $(handle).offset(); + var width = $(handle).outerWidth(); + var height = $(handle).outerHeight(); + var t = e.pageY - offset.top; + var r = offset.left + width - e.pageX; + var b = offset.top + height - e.pageY; + var l = e.pageX - offset.left; + + return Math.min(t,r,b,l) > state.options.edge; + } + + }); + }; + + $.fn.draggable.methods = { + options: function(jq){ + return $.data(jq[0], 'draggable').options; + }, + proxy: function(jq){ + return $.data(jq[0], 'draggable').proxy; + }, + enable: function(jq){ + return jq.each(function(){ + $(this).draggable({disabled:false}); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $(this).draggable({disabled:true}); + }); + } + }; + + $.fn.draggable.parseOptions = function(target){ + var t = $(target); + return $.extend({}, + $.parser.parseOptions(target, ['cursor','handle','axis', + {'revert':'boolean','deltaX':'number','deltaY':'number','edge':'number','delay':'number'}]), { + disabled: (t.attr('disabled') ? true : undefined) + }); + }; + + $.fn.draggable.defaults = { + proxy:null, // 'clone' or a function that will create the proxy object, + // the function has the source parameter that indicate the source object dragged. + revert:false, + cursor:'move', + deltaX:null, + deltaY:null, + handle: null, + disabled: false, + edge:0, + axis:null, // v or h + delay:100, + + onBeforeDrag: function(e){}, + onStartDrag: function(e){}, + onDrag: function(e){}, + onStopDrag: function(e){} + }; + + $.fn.draggable.isDragging = false; + +})(jQuery); diff --git a/vendor/easyui/src/jquery.droppable.js b/vendor/FHC-vendor/easyui/src/jquery.droppable.js similarity index 96% rename from vendor/easyui/src/jquery.droppable.js rename to vendor/FHC-vendor/easyui/src/jquery.droppable.js index 2a242a8ec..73e49718b 100644 --- a/vendor/easyui/src/jquery.droppable.js +++ b/vendor/FHC-vendor/easyui/src/jquery.droppable.js @@ -1,81 +1,81 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * droppable - jQuery EasyUI - * - */ -(function($){ - function init(target){ - $(target).addClass('droppable'); - $(target).bind('_dragenter', function(e, source){ - $.data(target, 'droppable').options.onDragEnter.apply(target, [e, source]); - }); - $(target).bind('_dragleave', function(e, source){ - $.data(target, 'droppable').options.onDragLeave.apply(target, [e, source]); - }); - $(target).bind('_dragover', function(e, source){ - $.data(target, 'droppable').options.onDragOver.apply(target, [e, source]); - }); - $(target).bind('_drop', function(e, source){ - $.data(target, 'droppable').options.onDrop.apply(target, [e, source]); - }); - } - - $.fn.droppable = function(options, param){ - if (typeof options == 'string'){ - return $.fn.droppable.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'droppable'); - if (state){ - $.extend(state.options, options); - } else { - init(this); - $.data(this, 'droppable', { - options: $.extend({}, $.fn.droppable.defaults, $.fn.droppable.parseOptions(this), options) - }); - } - }); - }; - - $.fn.droppable.methods = { - options: function(jq){ - return $.data(jq[0], 'droppable').options; - }, - enable: function(jq){ - return jq.each(function(){ - $(this).droppable({disabled:false}); - }); - }, - disable: function(jq){ - return jq.each(function(){ - $(this).droppable({disabled:true}); - }); - } - }; - - $.fn.droppable.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.parser.parseOptions(target, ['accept']), { - disabled: (t.attr('disabled') ? true : undefined) - }); - }; - - $.fn.droppable.defaults = { - accept:null, - disabled:false, - onDragEnter:function(e, source){}, - onDragOver:function(e, source){}, - onDragLeave:function(e, source){}, - onDrop:function(e, source){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * droppable - jQuery EasyUI + * + */ +(function($){ + function init(target){ + $(target).addClass('droppable'); + $(target).bind('_dragenter', function(e, source){ + $.data(target, 'droppable').options.onDragEnter.apply(target, [e, source]); + }); + $(target).bind('_dragleave', function(e, source){ + $.data(target, 'droppable').options.onDragLeave.apply(target, [e, source]); + }); + $(target).bind('_dragover', function(e, source){ + $.data(target, 'droppable').options.onDragOver.apply(target, [e, source]); + }); + $(target).bind('_drop', function(e, source){ + $.data(target, 'droppable').options.onDrop.apply(target, [e, source]); + }); + } + + $.fn.droppable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.droppable.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'droppable'); + if (state){ + $.extend(state.options, options); + } else { + init(this); + $.data(this, 'droppable', { + options: $.extend({}, $.fn.droppable.defaults, $.fn.droppable.parseOptions(this), options) + }); + } + }); + }; + + $.fn.droppable.methods = { + options: function(jq){ + return $.data(jq[0], 'droppable').options; + }, + enable: function(jq){ + return jq.each(function(){ + $(this).droppable({disabled:false}); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $(this).droppable({disabled:true}); + }); + } + }; + + $.fn.droppable.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, ['accept']), { + disabled: (t.attr('disabled') ? true : undefined) + }); + }; + + $.fn.droppable.defaults = { + accept:null, + disabled:false, + onDragEnter:function(e, source){}, + onDragOver:function(e, source){}, + onDragLeave:function(e, source){}, + onDrop:function(e, source){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.form.js b/vendor/FHC-vendor/easyui/src/jquery.form.js similarity index 96% rename from vendor/easyui/src/jquery.form.js rename to vendor/FHC-vendor/easyui/src/jquery.form.js index 0f22bca14..0e77c4f03 100644 --- a/vendor/easyui/src/jquery.form.js +++ b/vendor/FHC-vendor/easyui/src/jquery.form.js @@ -1,387 +1,387 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * form - jQuery EasyUI - * - */ -(function($){ - /** - * submit the form - */ - function ajaxSubmit(target, options){ - var opts = $.data(target, 'form').options; - $.extend(opts, options||{}); - - var param = $.extend({}, opts.queryParams); - if (opts.onSubmit.call(target, param) == false){return;} - $(target).find('.textbox-text:focus').blur(); - - var frameId = 'easyui_frame_' + (new Date().getTime()); - var frame = $('').appendTo('body') - frame.attr('src', window.ActiveXObject ? 'javascript:false' : 'about:blank'); - frame.css({ - position:'absolute', - top:-1000, - left:-1000 - }); - frame.bind('load', cb); - - submit(param); - - function submit(param){ - var form = $(target); - if (opts.url){ - form.attr('action', opts.url); - } - var t = form.attr('target'), a = form.attr('action'); - form.attr('target', frameId); - var paramFields = $(); - try { - for(var n in param){ - var field = $('').val(param[n]).appendTo(form); - paramFields = paramFields.add(field); - } - checkState(); - form[0].submit(); - } finally { - form.attr('action', a); - t ? form.attr('target', t) : form.removeAttr('target'); - paramFields.remove(); - } - } - - function checkState(){ - var f = $('#'+frameId); - if (!f.length){return} - try{ - var s = f.contents()[0].readyState; - if (s && s.toLowerCase() == 'uninitialized'){ - setTimeout(checkState, 100); - } - } catch(e){ - cb(); - } - } - - var checkCount = 10; - function cb(){ - var f = $('#'+frameId); - if (!f.length){return} - f.unbind(); - var data = ''; - try{ - var body = f.contents().find('body'); - data = body.html(); - if (data == ''){ - if (--checkCount){ - setTimeout(cb, 100); - return; - } - } - var ta = body.find('>textarea'); - if (ta.length){ - data = ta.val(); - } else { - var pre = body.find('>pre'); - if (pre.length){ - data = pre.html(); - } - } - } catch(e){ - } - opts.success(data); - setTimeout(function(){ - f.unbind(); - f.remove(); - }, 100); - } - } - - /** - * load form data - * if data is a URL string type load from remote site, - * otherwise load from local data object. - */ - function load(target, data){ - var opts = $.data(target, 'form').options; - - if (typeof data == 'string'){ - var param = {}; - if (opts.onBeforeLoad.call(target, param) == false) return; - - $.ajax({ - url: data, - data: param, - dataType: 'json', - success: function(data){ - _load(data); - }, - error: function(){ - opts.onLoadError.apply(target, arguments); - } - }); - } else { - _load(data); - } - - function _load(data){ - var form = $(target); - for(var name in data){ - var val = data[name]; - if (!_checkField(name, val)){ - if (!_loadBox(name, val)){ - form.find('input[name="'+name+'"]').val(val); - form.find('textarea[name="'+name+'"]').val(val); - form.find('select[name="'+name+'"]').val(val); - } - } - } - opts.onLoadSuccess.call(target, data); - form.form('validate'); - } - - /** - * check the checkbox and radio fields - */ - function _checkField(name, val){ - var cc = $(target).find('[switchbuttonName="'+name+'"]'); - if (cc.length){ - cc.switchbutton('uncheck'); - cc.each(function(){ - if (_isChecked($(this).switchbutton('options').value, val)){ - $(this).switchbutton('check'); - } - }); - return true; - } - cc = $(target).find('input[name="'+name+'"][type=radio], input[name="'+name+'"][type=checkbox]'); - if (cc.length){ - cc._propAttr('checked', false); - cc.each(function(){ - if (_isChecked($(this).val(), val)){ - $(this)._propAttr('checked', true); - } - }); - return true; - } - return false; - } - function _isChecked(v, val){ - if (v == String(val) || $.inArray(v, $.isArray(val)?val:[val]) >= 0){ - return true; - } else { - return false; - } - } - - function _loadBox(name, val){ - var field = $(target).find('[textboxName="'+name+'"],[sliderName="'+name+'"]'); - if (field.length){ - for(var i=0; i=0; i--){ - var type = opts.fieldTypes[i]; - var field = form.find('.'+type+'-f'); - if (field.length && field[type]){ - field[type]('clear'); - } - } - form.form('validate'); - } - - function reset(target){ - target.reset(); - var form = $(target); - var opts = $.data(target, 'form').options; - for(var i=opts.fieldTypes.length-1; i>=0; i--){ - var type = opts.fieldTypes[i]; - var field = form.find('.'+type+'-f'); - if (field.length && field[type]){ - field[type]('reset'); - } - } - form.form('validate'); - } - - /** - * set the form to make it can submit with ajax. - */ - function setForm(target){ - var options = $.data(target, 'form').options; - $(target).unbind('.form'); - if (options.ajax){ - $(target).bind('submit.form', function(){ - setTimeout(function(){ - ajaxSubmit(target, options); - }, 0); - return false; - }); - } - $(target).bind('_change.form', function(e, t){ - options.onChange.call(this, t); - }).bind('change.form', function(e){ - var t = e.target; - if (!$(t).hasClass('textbox-text')){ - options.onChange.call(this, t); - } - }); - setValidation(target, options.novalidate); - } - - function initForm(target, options){ - options = options || {}; - var state = $.data(target, 'form'); - if (state){ - $.extend(state.options, options); - } else { - $.data(target, 'form', { - options: $.extend({}, $.fn.form.defaults, $.fn.form.parseOptions(target), options) - }); - } - } - - function validate(target){ - if ($.fn.validatebox){ - var t = $(target); - t.find('.validatebox-text:not(:disabled)').validatebox('validate'); - var invalidbox = t.find('.validatebox-invalid'); - invalidbox.filter(':not(:disabled):first').focus(); - return invalidbox.length == 0; - } - return true; - } - - function setValidation(target, novalidate){ - var opts = $.data(target, 'form').options; - opts.novalidate = novalidate; - $(target).find('.validatebox-text:not(:disabled)').validatebox(novalidate ? 'disableValidation' : 'enableValidation'); - } - - $.fn.form = function(options, param){ - if (typeof options == 'string'){ - this.each(function(){ - initForm(this); - }); - return $.fn.form.methods[options](this, param); - } - - return this.each(function(){ - initForm(this, options); - setForm(this); - }); - }; - - $.fn.form.methods = { - options: function(jq){ - return $.data(jq[0], 'form').options; - }, - submit: function(jq, options){ - return jq.each(function(){ - ajaxSubmit(this, options); - }); - }, - load: function(jq, data){ - return jq.each(function(){ - load(this, data); - }); - }, - clear: function(jq){ - return jq.each(function(){ - clear(this); - }); - }, - reset: function(jq){ - return jq.each(function(){ - reset(this); - }); - }, - validate: function(jq){ - return validate(jq[0]); - }, - disableValidation: function(jq){ - return jq.each(function(){ - setValidation(this, true); - }); - }, - enableValidation: function(jq){ - return jq.each(function(){ - setValidation(this, false); - }); - } - }; - - $.fn.form.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.parser.parseOptions(target, [{ajax:'boolean'}]), { - url: (t.attr('action') ? t.attr('action') : undefined) - }); - }; - - $.fn.form.defaults = { - fieldTypes: ['combobox','combotree','combogrid','datetimebox','datebox','combo', - 'datetimespinner','timespinner','numberspinner','spinner', - 'slider','searchbox','numberbox','textbox','switchbutton'], - novalidate: false, - ajax: true, - url: null, - queryParams: {}, - onSubmit: function(param){return $(this).form('validate');}, - success: function(data){}, - onBeforeLoad: function(param){}, - onLoadSuccess: function(data){}, - onLoadError: function(){}, - onChange: function(target){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * form - jQuery EasyUI + * + */ +(function($){ + /** + * submit the form + */ + function ajaxSubmit(target, options){ + var opts = $.data(target, 'form').options; + $.extend(opts, options||{}); + + var param = $.extend({}, opts.queryParams); + if (opts.onSubmit.call(target, param) == false){return;} + $(target).find('.textbox-text:focus').blur(); + + var frameId = 'easyui_frame_' + (new Date().getTime()); + var frame = $('').appendTo('body') + frame.attr('src', window.ActiveXObject ? 'javascript:false' : 'about:blank'); + frame.css({ + position:'absolute', + top:-1000, + left:-1000 + }); + frame.bind('load', cb); + + submit(param); + + function submit(param){ + var form = $(target); + if (opts.url){ + form.attr('action', opts.url); + } + var t = form.attr('target'), a = form.attr('action'); + form.attr('target', frameId); + var paramFields = $(); + try { + for(var n in param){ + var field = $('').val(param[n]).appendTo(form); + paramFields = paramFields.add(field); + } + checkState(); + form[0].submit(); + } finally { + form.attr('action', a); + t ? form.attr('target', t) : form.removeAttr('target'); + paramFields.remove(); + } + } + + function checkState(){ + var f = $('#'+frameId); + if (!f.length){return} + try{ + var s = f.contents()[0].readyState; + if (s && s.toLowerCase() == 'uninitialized'){ + setTimeout(checkState, 100); + } + } catch(e){ + cb(); + } + } + + var checkCount = 10; + function cb(){ + var f = $('#'+frameId); + if (!f.length){return} + f.unbind(); + var data = ''; + try{ + var body = f.contents().find('body'); + data = body.html(); + if (data == ''){ + if (--checkCount){ + setTimeout(cb, 100); + return; + } + } + var ta = body.find('>textarea'); + if (ta.length){ + data = ta.val(); + } else { + var pre = body.find('>pre'); + if (pre.length){ + data = pre.html(); + } + } + } catch(e){ + } + opts.success(data); + setTimeout(function(){ + f.unbind(); + f.remove(); + }, 100); + } + } + + /** + * load form data + * if data is a URL string type load from remote site, + * otherwise load from local data object. + */ + function load(target, data){ + var opts = $.data(target, 'form').options; + + if (typeof data == 'string'){ + var param = {}; + if (opts.onBeforeLoad.call(target, param) == false) return; + + $.ajax({ + url: data, + data: param, + dataType: 'json', + success: function(data){ + _load(data); + }, + error: function(){ + opts.onLoadError.apply(target, arguments); + } + }); + } else { + _load(data); + } + + function _load(data){ + var form = $(target); + for(var name in data){ + var val = data[name]; + if (!_checkField(name, val)){ + if (!_loadBox(name, val)){ + form.find('input[name="'+name+'"]').val(val); + form.find('textarea[name="'+name+'"]').val(val); + form.find('select[name="'+name+'"]').val(val); + } + } + } + opts.onLoadSuccess.call(target, data); + form.form('validate'); + } + + /** + * check the checkbox and radio fields + */ + function _checkField(name, val){ + var cc = $(target).find('[switchbuttonName="'+name+'"]'); + if (cc.length){ + cc.switchbutton('uncheck'); + cc.each(function(){ + if (_isChecked($(this).switchbutton('options').value, val)){ + $(this).switchbutton('check'); + } + }); + return true; + } + cc = $(target).find('input[name="'+name+'"][type=radio], input[name="'+name+'"][type=checkbox]'); + if (cc.length){ + cc._propAttr('checked', false); + cc.each(function(){ + if (_isChecked($(this).val(), val)){ + $(this)._propAttr('checked', true); + } + }); + return true; + } + return false; + } + function _isChecked(v, val){ + if (v == String(val) || $.inArray(v, $.isArray(val)?val:[val]) >= 0){ + return true; + } else { + return false; + } + } + + function _loadBox(name, val){ + var field = $(target).find('[textboxName="'+name+'"],[sliderName="'+name+'"]'); + if (field.length){ + for(var i=0; i=0; i--){ + var type = opts.fieldTypes[i]; + var field = form.find('.'+type+'-f'); + if (field.length && field[type]){ + field[type]('clear'); + } + } + form.form('validate'); + } + + function reset(target){ + target.reset(); + var form = $(target); + var opts = $.data(target, 'form').options; + for(var i=opts.fieldTypes.length-1; i>=0; i--){ + var type = opts.fieldTypes[i]; + var field = form.find('.'+type+'-f'); + if (field.length && field[type]){ + field[type]('reset'); + } + } + form.form('validate'); + } + + /** + * set the form to make it can submit with ajax. + */ + function setForm(target){ + var options = $.data(target, 'form').options; + $(target).unbind('.form'); + if (options.ajax){ + $(target).bind('submit.form', function(){ + setTimeout(function(){ + ajaxSubmit(target, options); + }, 0); + return false; + }); + } + $(target).bind('_change.form', function(e, t){ + options.onChange.call(this, t); + }).bind('change.form', function(e){ + var t = e.target; + if (!$(t).hasClass('textbox-text')){ + options.onChange.call(this, t); + } + }); + setValidation(target, options.novalidate); + } + + function initForm(target, options){ + options = options || {}; + var state = $.data(target, 'form'); + if (state){ + $.extend(state.options, options); + } else { + $.data(target, 'form', { + options: $.extend({}, $.fn.form.defaults, $.fn.form.parseOptions(target), options) + }); + } + } + + function validate(target){ + if ($.fn.validatebox){ + var t = $(target); + t.find('.validatebox-text:not(:disabled)').validatebox('validate'); + var invalidbox = t.find('.validatebox-invalid'); + invalidbox.filter(':not(:disabled):first').focus(); + return invalidbox.length == 0; + } + return true; + } + + function setValidation(target, novalidate){ + var opts = $.data(target, 'form').options; + opts.novalidate = novalidate; + $(target).find('.validatebox-text:not(:disabled)').validatebox(novalidate ? 'disableValidation' : 'enableValidation'); + } + + $.fn.form = function(options, param){ + if (typeof options == 'string'){ + this.each(function(){ + initForm(this); + }); + return $.fn.form.methods[options](this, param); + } + + return this.each(function(){ + initForm(this, options); + setForm(this); + }); + }; + + $.fn.form.methods = { + options: function(jq){ + return $.data(jq[0], 'form').options; + }, + submit: function(jq, options){ + return jq.each(function(){ + ajaxSubmit(this, options); + }); + }, + load: function(jq, data){ + return jq.each(function(){ + load(this, data); + }); + }, + clear: function(jq){ + return jq.each(function(){ + clear(this); + }); + }, + reset: function(jq){ + return jq.each(function(){ + reset(this); + }); + }, + validate: function(jq){ + return validate(jq[0]); + }, + disableValidation: function(jq){ + return jq.each(function(){ + setValidation(this, true); + }); + }, + enableValidation: function(jq){ + return jq.each(function(){ + setValidation(this, false); + }); + } + }; + + $.fn.form.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [{ajax:'boolean'}]), { + url: (t.attr('action') ? t.attr('action') : undefined) + }); + }; + + $.fn.form.defaults = { + fieldTypes: ['combobox','combotree','combogrid','datetimebox','datebox','combo', + 'datetimespinner','timespinner','numberspinner','spinner', + 'slider','searchbox','numberbox','textbox','switchbutton'], + novalidate: false, + ajax: true, + url: null, + queryParams: {}, + onSubmit: function(param){return $(this).form('validate');}, + success: function(data){}, + onBeforeLoad: function(param){}, + onLoadSuccess: function(data){}, + onLoadError: function(){}, + onChange: function(target){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.linkbutton.js b/vendor/FHC-vendor/easyui/src/jquery.linkbutton.js similarity index 96% rename from vendor/easyui/src/jquery.linkbutton.js rename to vendor/FHC-vendor/easyui/src/jquery.linkbutton.js index 92ed49720..2f5bad804 100644 --- a/vendor/easyui/src/jquery.linkbutton.js +++ b/vendor/FHC-vendor/easyui/src/jquery.linkbutton.js @@ -1,242 +1,242 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * linkbutton - jQuery EasyUI - * - */ -(function($){ - function setSize(target, param){ - var opts = $.data(target, 'linkbutton').options; - if (param){ - $.extend(opts, param); - } - if (opts.width || opts.height || opts.fit){ - var btn = $(target); - var parent = btn.parent(); - var isVisible = btn.is(':visible'); - if (!isVisible){ - var spacer = $('
                              ').insertBefore(target); - var style = { - position: btn.css('position'), - display: btn.css('display'), - left: btn.css('left') - }; - btn.appendTo('body'); - btn.css({ - position: 'absolute', - display: 'inline-block', - left: -20000 - }); - } - btn._size(opts, parent); - var left = btn.find('.l-btn-left'); - left.css('margin-top', 0); - left.css('margin-top', parseInt((btn.height()-left.height())/2)+'px'); - if (!isVisible){ - btn.insertAfter(spacer); - btn.css(style); - spacer.remove(); - } - } - } - - function createButton(target) { - var opts = $.data(target, 'linkbutton').options; - var t = $(target).empty(); - - t.addClass('l-btn').removeClass('l-btn-plain l-btn-selected l-btn-plain-selected l-btn-outline'); - t.removeClass('l-btn-small l-btn-medium l-btn-large').addClass('l-btn-'+opts.size); - if (opts.plain){t.addClass('l-btn-plain')} - if (opts.outline){t.addClass('l-btn-outline')} - if (opts.selected){ - t.addClass(opts.plain ? 'l-btn-selected l-btn-plain-selected' : 'l-btn-selected'); - } - t.attr('group', opts.group || ''); - t.attr('id', opts.id || ''); - - var inner = $('').appendTo(t); - if (opts.text){ - $('').html(opts.text).appendTo(inner); - } else { - $(' ').appendTo(inner); - } - if (opts.iconCls){ - $(' ').addClass(opts.iconCls).appendTo(inner); - inner.addClass('l-btn-icon-'+opts.iconAlign); - } - - t.unbind('.linkbutton').bind('focus.linkbutton',function(){ - if (!opts.disabled){ - $(this).addClass('l-btn-focus'); - } - }).bind('blur.linkbutton',function(){ - $(this).removeClass('l-btn-focus'); - }).bind('click.linkbutton',function(){ - if (!opts.disabled){ - if (opts.toggle){ - if (opts.selected){ - $(this).linkbutton('unselect'); - } else { - $(this).linkbutton('select'); - } - } - opts.onClick.call(this); - } -// return false; - }); -// if (opts.toggle && !opts.disabled){ -// t.bind('click.linkbutton', function(){ -// if (opts.selected){ -// $(this).linkbutton('unselect'); -// } else { -// $(this).linkbutton('select'); -// } -// }); -// } - - setSelected(target, opts.selected) - setDisabled(target, opts.disabled); - } - - function setSelected(target, selected){ - var opts = $.data(target, 'linkbutton').options; - if (selected){ - if (opts.group){ - $('a.l-btn[group="'+opts.group+'"]').each(function(){ - var o = $(this).linkbutton('options'); - if (o.toggle){ - $(this).removeClass('l-btn-selected l-btn-plain-selected'); - o.selected = false; - } - }); - } - $(target).addClass(opts.plain ? 'l-btn-selected l-btn-plain-selected' : 'l-btn-selected'); - opts.selected = true; - } else { - if (!opts.group){ - $(target).removeClass('l-btn-selected l-btn-plain-selected'); - opts.selected = false; - } - } - } - - function setDisabled(target, disabled){ - var state = $.data(target, 'linkbutton'); - var opts = state.options; - $(target).removeClass('l-btn-disabled l-btn-plain-disabled'); - if (disabled){ - opts.disabled = true; - var href = $(target).attr('href'); - if (href){ - state.href = href; - $(target).attr('href', 'javascript:void(0)'); - } - if (target.onclick){ - state.onclick = target.onclick; - target.onclick = null; - } - opts.plain ? $(target).addClass('l-btn-disabled l-btn-plain-disabled') : $(target).addClass('l-btn-disabled'); - } else { - opts.disabled = false; - if (state.href) { - $(target).attr('href', state.href); - } - if (state.onclick) { - target.onclick = state.onclick; - } - } - } - - $.fn.linkbutton = function(options, param){ - if (typeof options == 'string'){ - return $.fn.linkbutton.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'linkbutton'); - if (state){ - $.extend(state.options, options); - } else { - $.data(this, 'linkbutton', { - options: $.extend({}, $.fn.linkbutton.defaults, $.fn.linkbutton.parseOptions(this), options) - }); - $(this).removeAttr('disabled'); - $(this).bind('_resize', function(e, force){ - if ($(this).hasClass('easyui-fluid') || force){ - setSize(this); - } - return false; - }); - } - - createButton(this); - setSize(this); - }); - }; - - $.fn.linkbutton.methods = { - options: function(jq){ - return $.data(jq[0], 'linkbutton').options; - }, - resize: function(jq, param){ - return jq.each(function(){ - setSize(this, param); - }); - }, - enable: function(jq){ - return jq.each(function(){ - setDisabled(this, false); - }); - }, - disable: function(jq){ - return jq.each(function(){ - setDisabled(this, true); - }); - }, - select: function(jq){ - return jq.each(function(){ - setSelected(this, true); - }); - }, - unselect: function(jq){ - return jq.each(function(){ - setSelected(this, false); - }); - } - }; - - $.fn.linkbutton.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.parser.parseOptions(target, - ['id','iconCls','iconAlign','group','size','text',{plain:'boolean',toggle:'boolean',selected:'boolean',outline:'boolean'}] - ), { - disabled: (t.attr('disabled') ? true : undefined), - text: ($.trim(t.html()) || undefined), - iconCls: (t.attr('icon') || t.attr('iconCls')) - }); - }; - - $.fn.linkbutton.defaults = { - id: null, - disabled: false, - toggle: false, - selected: false, - outline: false, - group: null, - plain: false, - text: '', - iconCls: null, - iconAlign: 'left', - size: 'small', // small,large - onClick: function(){} - }; - -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * linkbutton - jQuery EasyUI + * + */ +(function($){ + function setSize(target, param){ + var opts = $.data(target, 'linkbutton').options; + if (param){ + $.extend(opts, param); + } + if (opts.width || opts.height || opts.fit){ + var btn = $(target); + var parent = btn.parent(); + var isVisible = btn.is(':visible'); + if (!isVisible){ + var spacer = $('
                              ').insertBefore(target); + var style = { + position: btn.css('position'), + display: btn.css('display'), + left: btn.css('left') + }; + btn.appendTo('body'); + btn.css({ + position: 'absolute', + display: 'inline-block', + left: -20000 + }); + } + btn._size(opts, parent); + var left = btn.find('.l-btn-left'); + left.css('margin-top', 0); + left.css('margin-top', parseInt((btn.height()-left.height())/2)+'px'); + if (!isVisible){ + btn.insertAfter(spacer); + btn.css(style); + spacer.remove(); + } + } + } + + function createButton(target) { + var opts = $.data(target, 'linkbutton').options; + var t = $(target).empty(); + + t.addClass('l-btn').removeClass('l-btn-plain l-btn-selected l-btn-plain-selected l-btn-outline'); + t.removeClass('l-btn-small l-btn-medium l-btn-large').addClass('l-btn-'+opts.size); + if (opts.plain){t.addClass('l-btn-plain')} + if (opts.outline){t.addClass('l-btn-outline')} + if (opts.selected){ + t.addClass(opts.plain ? 'l-btn-selected l-btn-plain-selected' : 'l-btn-selected'); + } + t.attr('group', opts.group || ''); + t.attr('id', opts.id || ''); + + var inner = $('').appendTo(t); + if (opts.text){ + $('').html(opts.text).appendTo(inner); + } else { + $(' ').appendTo(inner); + } + if (opts.iconCls){ + $(' ').addClass(opts.iconCls).appendTo(inner); + inner.addClass('l-btn-icon-'+opts.iconAlign); + } + + t.unbind('.linkbutton').bind('focus.linkbutton',function(){ + if (!opts.disabled){ + $(this).addClass('l-btn-focus'); + } + }).bind('blur.linkbutton',function(){ + $(this).removeClass('l-btn-focus'); + }).bind('click.linkbutton',function(){ + if (!opts.disabled){ + if (opts.toggle){ + if (opts.selected){ + $(this).linkbutton('unselect'); + } else { + $(this).linkbutton('select'); + } + } + opts.onClick.call(this); + } +// return false; + }); +// if (opts.toggle && !opts.disabled){ +// t.bind('click.linkbutton', function(){ +// if (opts.selected){ +// $(this).linkbutton('unselect'); +// } else { +// $(this).linkbutton('select'); +// } +// }); +// } + + setSelected(target, opts.selected) + setDisabled(target, opts.disabled); + } + + function setSelected(target, selected){ + var opts = $.data(target, 'linkbutton').options; + if (selected){ + if (opts.group){ + $('a.l-btn[group="'+opts.group+'"]').each(function(){ + var o = $(this).linkbutton('options'); + if (o.toggle){ + $(this).removeClass('l-btn-selected l-btn-plain-selected'); + o.selected = false; + } + }); + } + $(target).addClass(opts.plain ? 'l-btn-selected l-btn-plain-selected' : 'l-btn-selected'); + opts.selected = true; + } else { + if (!opts.group){ + $(target).removeClass('l-btn-selected l-btn-plain-selected'); + opts.selected = false; + } + } + } + + function setDisabled(target, disabled){ + var state = $.data(target, 'linkbutton'); + var opts = state.options; + $(target).removeClass('l-btn-disabled l-btn-plain-disabled'); + if (disabled){ + opts.disabled = true; + var href = $(target).attr('href'); + if (href){ + state.href = href; + $(target).attr('href', 'javascript:void(0)'); + } + if (target.onclick){ + state.onclick = target.onclick; + target.onclick = null; + } + opts.plain ? $(target).addClass('l-btn-disabled l-btn-plain-disabled') : $(target).addClass('l-btn-disabled'); + } else { + opts.disabled = false; + if (state.href) { + $(target).attr('href', state.href); + } + if (state.onclick) { + target.onclick = state.onclick; + } + } + } + + $.fn.linkbutton = function(options, param){ + if (typeof options == 'string'){ + return $.fn.linkbutton.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'linkbutton'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'linkbutton', { + options: $.extend({}, $.fn.linkbutton.defaults, $.fn.linkbutton.parseOptions(this), options) + }); + $(this).removeAttr('disabled'); + $(this).bind('_resize', function(e, force){ + if ($(this).hasClass('easyui-fluid') || force){ + setSize(this); + } + return false; + }); + } + + createButton(this); + setSize(this); + }); + }; + + $.fn.linkbutton.methods = { + options: function(jq){ + return $.data(jq[0], 'linkbutton').options; + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + enable: function(jq){ + return jq.each(function(){ + setDisabled(this, false); + }); + }, + disable: function(jq){ + return jq.each(function(){ + setDisabled(this, true); + }); + }, + select: function(jq){ + return jq.each(function(){ + setSelected(this, true); + }); + }, + unselect: function(jq){ + return jq.each(function(){ + setSelected(this, false); + }); + } + }; + + $.fn.linkbutton.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, + ['id','iconCls','iconAlign','group','size','text',{plain:'boolean',toggle:'boolean',selected:'boolean',outline:'boolean'}] + ), { + disabled: (t.attr('disabled') ? true : undefined), + text: ($.trim(t.html()) || undefined), + iconCls: (t.attr('icon') || t.attr('iconCls')) + }); + }; + + $.fn.linkbutton.defaults = { + id: null, + disabled: false, + toggle: false, + selected: false, + outline: false, + group: null, + plain: false, + text: '', + iconCls: null, + iconAlign: 'left', + size: 'small', // small,large + onClick: function(){} + }; + +})(jQuery); diff --git a/vendor/easyui/src/jquery.menu.js b/vendor/FHC-vendor/easyui/src/jquery.menu.js similarity index 96% rename from vendor/easyui/src/jquery.menu.js rename to vendor/FHC-vendor/easyui/src/jquery.menu.js index 879a470e1..9992c506f 100644 --- a/vendor/easyui/src/jquery.menu.js +++ b/vendor/FHC-vendor/easyui/src/jquery.menu.js @@ -1,637 +1,637 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * menu - jQuery EasyUI - * - */ -(function($){ - $(function(){ - $(document).unbind('.menu').bind('mousedown.menu', function(e){ - var m = $(e.target).closest('div.menu,div.combo-p'); - if (m.length){return} - $('body>div.menu-top:visible').not('.menu-inline').menu('hide'); - hideMenu($('body>div.menu:visible').not('.menu-inline')); - }); - }); - - /** - * initialize the target menu, the function can be invoked only once - */ - function init(target){ - var opts = $.data(target, 'menu').options; - $(target).addClass('menu-top'); // the top menu - opts.inline ? $(target).addClass('menu-inline') : $(target).appendTo('body'); - $(target).bind('_resize', function(e, force){ - if ($(this).hasClass('easyui-fluid') || force){ - $(target).menu('resize', target); - } - return false; - }); - - var menus = splitMenu($(target)); - for(var i=0; i').html(text)); - if (itemOpts.iconCls){ - $('').addClass(itemOpts.iconCls).appendTo(item); - } - if (itemOpts.disabled){ - setDisabled(target, item[0], true); - } - if (item[0].submenu){ - $('').appendTo(item); // has sub menu - } - - bindMenuItemEvent(target, item); - } - }); - $('').prependTo(menu); - } - setMenuSize(target, menu); - if (!menu.hasClass('menu-inline')){ - menu.hide(); - } - - bindMenuEvent(target, menu); - } - } - - function setMenuSize(target, menu){ - var opts = $.data(target, 'menu').options; - var style = menu.attr('style') || ''; - menu.css({ - display: 'block', - left:-10000, - height: 'auto', - overflow: 'hidden' - }); - menu.find('.menu-item').each(function(){ - $(this)._outerHeight(opts.itemHeight); - $(this).find('.menu-text').css({ - height: (opts.itemHeight-2)+'px', - lineHeight: (opts.itemHeight-2)+'px' - }); - }); - menu.removeClass('menu-noline').addClass(opts.noline?'menu-noline':''); - - var width = menu[0].originalWidth || 'auto'; - if (isNaN(parseInt(width))){ - width = 0; - menu.find('div.menu-text').each(function(){ - if (width < $(this)._outerWidth()){ - width = $(this)._outerWidth(); - } - }); - width += 40; - } - - var autoHeight = menu.outerHeight(); - var height = menu[0].originalHeight || 'auto'; - if (isNaN(parseInt(height))){ - height = autoHeight; - - if (menu.hasClass('menu-top') && opts.alignTo){ - var at = $(opts.alignTo); - var h1 = at.offset().top - $(document).scrollTop(); - var h2 = $(window)._outerHeight() + $(document).scrollTop() - at.offset().top - at._outerHeight(); - height = Math.min(height, Math.max(h1, h2)); - } else if (height > $(window)._outerHeight()){ - height = $(window).height(); - } - } - - menu.attr('style', style); // restore the original style - menu._size({ - fit: (menu[0]==target?opts.fit:false), - width: width, - minWidth: opts.minWidth, - height: height - }); - menu.css('overflow', menu.outerHeight() < autoHeight ? 'auto' : 'hidden'); - menu.children('div.menu-line')._outerHeight(autoHeight-2); - } - - /** - * bind menu event - */ - function bindMenuEvent(target, menu){ - if (menu.hasClass('menu-inline')){return} - var state = $.data(target, 'menu'); - menu.unbind('.menu').bind('mouseenter.menu', function(){ - if (state.timer){ - clearTimeout(state.timer); - state.timer = null; - } - }).bind('mouseleave.menu', function(){ - if (state.options.hideOnUnhover){ - state.timer = setTimeout(function(){ - hideAll(target, $(target).hasClass('menu-inline')); - }, state.options.duration); - } - }); - } - - /** - * bind menu item event - */ - function bindMenuItemEvent(target, item){ - if (!item.hasClass('menu-item')){return} - item.unbind('.menu'); - item.bind('click.menu', function(){ - if ($(this).hasClass('menu-item-disabled')){ - return; - } - // only the sub menu clicked can hide all menus - if (!this.submenu){ - hideAll(target, $(target).hasClass('menu-inline')); - var href = this.itemHref; - if (href){ - location.href = href; - } - } - $(this).trigger('mouseenter'); - var item = $(target).menu('getItem', this); - $.data(target, 'menu').options.onClick.call(target, item); - }).bind('mouseenter.menu', function(e){ - // hide other menu - item.siblings().each(function(){ - if (this.submenu){ - hideMenu(this.submenu); - } - $(this).removeClass('menu-active'); - }); - // show this menu - item.addClass('menu-active'); - - if ($(this).hasClass('menu-item-disabled')){ - item.addClass('menu-active-disabled'); - return; - } - - var submenu = item[0].submenu; - if (submenu){ - $(target).menu('show', { - menu: submenu, - parent: item - }); - } - }).bind('mouseleave.menu', function(e){ - item.removeClass('menu-active menu-active-disabled'); - var submenu = item[0].submenu; - if (submenu){ - if (e.pageX>=parseInt(submenu.css('left'))){ - item.addClass('menu-active'); - } else { - hideMenu(submenu); - } - - } else { - item.removeClass('menu-active'); - } - }); - } - - /** - * hide top menu and it's all sub menus - */ - function hideAll(target, inline){ - var state = $.data(target, 'menu'); - if (state){ - if ($(target).is(':visible')){ - hideMenu($(target)); - if (inline){ - $(target).show(); - } else { - state.options.onHide.call(target); - } - } - } - return false; - } - - /** - * show the menu, the 'param' object has one or more properties: - * left: the left position to display - * top: the top position to display - * menu: the menu to display, if not defined, the 'target menu' is used - * parent: the parent menu item to align to - * alignTo: the element object to align to - */ - function showMenu(target, param){ - var left,top; - param = param || {}; - var menu = $(param.menu || target); - $(target).menu('resize', menu[0]); - if (menu.hasClass('menu-top')){ - var opts = $.data(target, 'menu').options; - $.extend(opts, param); - left = opts.left; - top = opts.top; - if (opts.alignTo){ - var at = $(opts.alignTo); - left = at.offset().left; - top = at.offset().top + at._outerHeight(); - if (opts.align == 'right'){ - left += at.outerWidth() - menu.outerWidth(); - } - } - if (left + menu.outerWidth() > $(window)._outerWidth() + $(document)._scrollLeft()){ - left = $(window)._outerWidth() + $(document).scrollLeft() - menu.outerWidth() - 5; - } - if (left < 0){left = 0;} - top = _fixTop(top, opts.alignTo); - } else { - var parent = param.parent; // the parent menu item - left = parent.offset().left + parent.outerWidth() - 2; - if (left + menu.outerWidth() + 5 > $(window)._outerWidth() + $(document).scrollLeft()){ - left = parent.offset().left - menu.outerWidth() + 2; - } - top = _fixTop(parent.offset().top - 3); - } - - function _fixTop(top, alignTo){ - if (top + menu.outerHeight() > $(window)._outerHeight() + $(document).scrollTop()){ - if (alignTo){ - top = $(alignTo).offset().top - menu._outerHeight(); - } else { - top = $(window)._outerHeight() + $(document).scrollTop() - menu.outerHeight(); - } - } - if (top < 0){top = 0;} - return top; - } - - menu.css({left:left,top:top}); - menu.show(0, function(){ - if (!menu[0].shadow){ - menu[0].shadow = $('').insertAfter(menu); - } - menu[0].shadow.css({ - display:(menu.hasClass('menu-inline')?'none':'block'), - zIndex:$.fn.menu.defaults.zIndex++, - left:menu.css('left'), - top:menu.css('top'), - width:menu.outerWidth(), - height:menu.outerHeight() - }); - menu.css('z-index', $.fn.menu.defaults.zIndex++); - if (menu.hasClass('menu-top')){ - $.data(menu[0], 'menu').options.onShow.call(menu[0]); - } - }); - } - - function hideMenu(menu){ - if (menu && menu.length){ - hideit(menu); - menu.find('div.menu-item').each(function(){ - if (this.submenu){ - hideMenu(this.submenu); - } - $(this).removeClass('menu-active'); - }); - } - - function hideit(m){ - m.stop(true,true); - if (m[0].shadow){ - m[0].shadow.hide(); - } - m.hide(); - } - } - - function findItem(target, text){ - var result = null; - var tmp = $('
                              '); - function find(menu){ - menu.children('div.menu-item').each(function(){ - var item = $(target).menu('getItem', this); - var s = tmp.empty().html(item.text).text(); - if (text == $.trim(s)) { - result = item; - } else if (this.submenu && !result){ - find(this.submenu); - } - }); - } - find($(target)); - tmp.remove(); - return result; - } - - function setDisabled(target, itemEl, disabled){ - var t = $(itemEl); - if (!t.hasClass('menu-item')){return} - - if (disabled){ - t.addClass('menu-item-disabled'); - if (itemEl.onclick){ - itemEl.onclick1 = itemEl.onclick; - itemEl.onclick = null; - } - } else { - t.removeClass('menu-item-disabled'); - if (itemEl.onclick1){ - itemEl.onclick = itemEl.onclick1; - itemEl.onclick1 = null; - } - } - } - - function appendItem(target, param){ - var opts = $.data(target, 'menu').options; - var menu = $(target); - if (param.parent){ - if (!param.parent.submenu){ - var submenu = $('').appendTo('body'); - submenu.hide(); - param.parent.submenu = submenu; - $('').appendTo(param.parent); - } - menu = param.parent.submenu; - } - if (param.separator){ - var item = $('').appendTo(menu); - } else { - var item = $('').appendTo(menu); - $('').html(param.text).appendTo(item); - } - if (param.iconCls) $('').addClass(param.iconCls).appendTo(item); - if (param.id) item.attr('id', param.id); - if (param.name){item[0].itemName = param.name} - if (param.href){item[0].itemHref = param.href} - if (param.onclick){ - if (typeof param.onclick == 'string'){ - item.attr('onclick', param.onclick); - } else { - item[0].onclick = eval(param.onclick); - } - } - if (param.handler){item[0].onclick = eval(param.handler)} - if (param.disabled){setDisabled(target, item[0], true)} - - bindMenuItemEvent(target, item); - bindMenuEvent(target, menu); - setMenuSize(target, menu); - } - - function removeItem(target, itemEl){ - function removeit(el){ - if (el.submenu){ - el.submenu.children('div.menu-item').each(function(){ - removeit(this); - }); - var shadow = el.submenu[0].shadow; - if (shadow) shadow.remove(); - el.submenu.remove(); - } - $(el).remove(); - } - var menu = $(itemEl).parent(); - removeit(itemEl); - setMenuSize(target, menu); - } - - function setVisible(target, itemEl, visible){ - var menu = $(itemEl).parent(); - if (visible){ - $(itemEl).show(); - } else { - $(itemEl).hide(); - } - setMenuSize(target, menu); - } - - function destroyMenu(target){ - $(target).children('div.menu-item').each(function(){ - removeItem(target, this); - }); - if (target.shadow) target.shadow.remove(); - $(target).remove(); - } - - $.fn.menu = function(options, param){ - if (typeof options == 'string'){ - return $.fn.menu.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'menu'); - if (state){ - $.extend(state.options, options); - } else { - state = $.data(this, 'menu', { - options: $.extend({}, $.fn.menu.defaults, $.fn.menu.parseOptions(this), options) - }); - init(this); - } - $(this).css({ - left: state.options.left, - top: state.options.top - }); - }); - }; - - $.fn.menu.methods = { - options: function(jq){ - return $.data(jq[0], 'menu').options; - }, - show: function(jq, pos){ - return jq.each(function(){ - showMenu(this, pos); - }); - }, - hide: function(jq){ - return jq.each(function(){ - hideAll(this); - }); - }, - destroy: function(jq){ - return jq.each(function(){ - destroyMenu(this); - }); - }, - /** - * set the menu item text - * param: { - * target: DOM object, indicate the menu item - * text: string, the new text - * } - */ - setText: function(jq, param){ - return jq.each(function(){ - $(param.target).children('div.menu-text').html(param.text); - }); - }, - /** - * set the menu icon class - * param: { - * target: DOM object, indicate the menu item - * iconCls: the menu item icon class - * } - */ - setIcon: function(jq, param){ - return jq.each(function(){ - $(param.target).children('div.menu-icon').remove(); - if (param.iconCls){ - $('').addClass(param.iconCls).appendTo(param.target); - } - }); - }, - /** - * get the menu item data that contains the following property: - * { - * target: DOM object, the menu item - * id: the menu id - * text: the menu item text - * iconCls: the icon class - * href: a remote address to redirect to - * onclick: a function to be called when the item is clicked - * } - */ - getItem: function(jq, itemEl){ - var t = $(itemEl); - var item = { - target: itemEl, - id: t.attr('id'), - text: $.trim(t.children('div.menu-text').html()), - disabled: t.hasClass('menu-item-disabled'), -// href: t.attr('href'), -// name: t.attr('name'), - name: itemEl.itemName, - href: itemEl.itemHref, - onclick: itemEl.onclick - } - var icon = t.children('div.menu-icon'); - if (icon.length){ - var cc = []; - var aa = icon.attr('class').split(' '); - for(var i=0; idiv.menu-top:visible').not('.menu-inline').menu('hide'); + hideMenu($('body>div.menu:visible').not('.menu-inline')); + }); + }); + + /** + * initialize the target menu, the function can be invoked only once + */ + function init(target){ + var opts = $.data(target, 'menu').options; + $(target).addClass('menu-top'); // the top menu + opts.inline ? $(target).addClass('menu-inline') : $(target).appendTo('body'); + $(target).bind('_resize', function(e, force){ + if ($(this).hasClass('easyui-fluid') || force){ + $(target).menu('resize', target); + } + return false; + }); + + var menus = splitMenu($(target)); + for(var i=0; i').html(text)); + if (itemOpts.iconCls){ + $('').addClass(itemOpts.iconCls).appendTo(item); + } + if (itemOpts.disabled){ + setDisabled(target, item[0], true); + } + if (item[0].submenu){ + $('').appendTo(item); // has sub menu + } + + bindMenuItemEvent(target, item); + } + }); + $('').prependTo(menu); + } + setMenuSize(target, menu); + if (!menu.hasClass('menu-inline')){ + menu.hide(); + } + + bindMenuEvent(target, menu); + } + } + + function setMenuSize(target, menu){ + var opts = $.data(target, 'menu').options; + var style = menu.attr('style') || ''; + menu.css({ + display: 'block', + left:-10000, + height: 'auto', + overflow: 'hidden' + }); + menu.find('.menu-item').each(function(){ + $(this)._outerHeight(opts.itemHeight); + $(this).find('.menu-text').css({ + height: (opts.itemHeight-2)+'px', + lineHeight: (opts.itemHeight-2)+'px' + }); + }); + menu.removeClass('menu-noline').addClass(opts.noline?'menu-noline':''); + + var width = menu[0].originalWidth || 'auto'; + if (isNaN(parseInt(width))){ + width = 0; + menu.find('div.menu-text').each(function(){ + if (width < $(this)._outerWidth()){ + width = $(this)._outerWidth(); + } + }); + width += 40; + } + + var autoHeight = menu.outerHeight(); + var height = menu[0].originalHeight || 'auto'; + if (isNaN(parseInt(height))){ + height = autoHeight; + + if (menu.hasClass('menu-top') && opts.alignTo){ + var at = $(opts.alignTo); + var h1 = at.offset().top - $(document).scrollTop(); + var h2 = $(window)._outerHeight() + $(document).scrollTop() - at.offset().top - at._outerHeight(); + height = Math.min(height, Math.max(h1, h2)); + } else if (height > $(window)._outerHeight()){ + height = $(window).height(); + } + } + + menu.attr('style', style); // restore the original style + menu._size({ + fit: (menu[0]==target?opts.fit:false), + width: width, + minWidth: opts.minWidth, + height: height + }); + menu.css('overflow', menu.outerHeight() < autoHeight ? 'auto' : 'hidden'); + menu.children('div.menu-line')._outerHeight(autoHeight-2); + } + + /** + * bind menu event + */ + function bindMenuEvent(target, menu){ + if (menu.hasClass('menu-inline')){return} + var state = $.data(target, 'menu'); + menu.unbind('.menu').bind('mouseenter.menu', function(){ + if (state.timer){ + clearTimeout(state.timer); + state.timer = null; + } + }).bind('mouseleave.menu', function(){ + if (state.options.hideOnUnhover){ + state.timer = setTimeout(function(){ + hideAll(target, $(target).hasClass('menu-inline')); + }, state.options.duration); + } + }); + } + + /** + * bind menu item event + */ + function bindMenuItemEvent(target, item){ + if (!item.hasClass('menu-item')){return} + item.unbind('.menu'); + item.bind('click.menu', function(){ + if ($(this).hasClass('menu-item-disabled')){ + return; + } + // only the sub menu clicked can hide all menus + if (!this.submenu){ + hideAll(target, $(target).hasClass('menu-inline')); + var href = this.itemHref; + if (href){ + location.href = href; + } + } + $(this).trigger('mouseenter'); + var item = $(target).menu('getItem', this); + $.data(target, 'menu').options.onClick.call(target, item); + }).bind('mouseenter.menu', function(e){ + // hide other menu + item.siblings().each(function(){ + if (this.submenu){ + hideMenu(this.submenu); + } + $(this).removeClass('menu-active'); + }); + // show this menu + item.addClass('menu-active'); + + if ($(this).hasClass('menu-item-disabled')){ + item.addClass('menu-active-disabled'); + return; + } + + var submenu = item[0].submenu; + if (submenu){ + $(target).menu('show', { + menu: submenu, + parent: item + }); + } + }).bind('mouseleave.menu', function(e){ + item.removeClass('menu-active menu-active-disabled'); + var submenu = item[0].submenu; + if (submenu){ + if (e.pageX>=parseInt(submenu.css('left'))){ + item.addClass('menu-active'); + } else { + hideMenu(submenu); + } + + } else { + item.removeClass('menu-active'); + } + }); + } + + /** + * hide top menu and it's all sub menus + */ + function hideAll(target, inline){ + var state = $.data(target, 'menu'); + if (state){ + if ($(target).is(':visible')){ + hideMenu($(target)); + if (inline){ + $(target).show(); + } else { + state.options.onHide.call(target); + } + } + } + return false; + } + + /** + * show the menu, the 'param' object has one or more properties: + * left: the left position to display + * top: the top position to display + * menu: the menu to display, if not defined, the 'target menu' is used + * parent: the parent menu item to align to + * alignTo: the element object to align to + */ + function showMenu(target, param){ + var left,top; + param = param || {}; + var menu = $(param.menu || target); + $(target).menu('resize', menu[0]); + if (menu.hasClass('menu-top')){ + var opts = $.data(target, 'menu').options; + $.extend(opts, param); + left = opts.left; + top = opts.top; + if (opts.alignTo){ + var at = $(opts.alignTo); + left = at.offset().left; + top = at.offset().top + at._outerHeight(); + if (opts.align == 'right'){ + left += at.outerWidth() - menu.outerWidth(); + } + } + if (left + menu.outerWidth() > $(window)._outerWidth() + $(document)._scrollLeft()){ + left = $(window)._outerWidth() + $(document).scrollLeft() - menu.outerWidth() - 5; + } + if (left < 0){left = 0;} + top = _fixTop(top, opts.alignTo); + } else { + var parent = param.parent; // the parent menu item + left = parent.offset().left + parent.outerWidth() - 2; + if (left + menu.outerWidth() + 5 > $(window)._outerWidth() + $(document).scrollLeft()){ + left = parent.offset().left - menu.outerWidth() + 2; + } + top = _fixTop(parent.offset().top - 3); + } + + function _fixTop(top, alignTo){ + if (top + menu.outerHeight() > $(window)._outerHeight() + $(document).scrollTop()){ + if (alignTo){ + top = $(alignTo).offset().top - menu._outerHeight(); + } else { + top = $(window)._outerHeight() + $(document).scrollTop() - menu.outerHeight(); + } + } + if (top < 0){top = 0;} + return top; + } + + menu.css({left:left,top:top}); + menu.show(0, function(){ + if (!menu[0].shadow){ + menu[0].shadow = $('').insertAfter(menu); + } + menu[0].shadow.css({ + display:(menu.hasClass('menu-inline')?'none':'block'), + zIndex:$.fn.menu.defaults.zIndex++, + left:menu.css('left'), + top:menu.css('top'), + width:menu.outerWidth(), + height:menu.outerHeight() + }); + menu.css('z-index', $.fn.menu.defaults.zIndex++); + if (menu.hasClass('menu-top')){ + $.data(menu[0], 'menu').options.onShow.call(menu[0]); + } + }); + } + + function hideMenu(menu){ + if (menu && menu.length){ + hideit(menu); + menu.find('div.menu-item').each(function(){ + if (this.submenu){ + hideMenu(this.submenu); + } + $(this).removeClass('menu-active'); + }); + } + + function hideit(m){ + m.stop(true,true); + if (m[0].shadow){ + m[0].shadow.hide(); + } + m.hide(); + } + } + + function findItem(target, text){ + var result = null; + var tmp = $('
                              '); + function find(menu){ + menu.children('div.menu-item').each(function(){ + var item = $(target).menu('getItem', this); + var s = tmp.empty().html(item.text).text(); + if (text == $.trim(s)) { + result = item; + } else if (this.submenu && !result){ + find(this.submenu); + } + }); + } + find($(target)); + tmp.remove(); + return result; + } + + function setDisabled(target, itemEl, disabled){ + var t = $(itemEl); + if (!t.hasClass('menu-item')){return} + + if (disabled){ + t.addClass('menu-item-disabled'); + if (itemEl.onclick){ + itemEl.onclick1 = itemEl.onclick; + itemEl.onclick = null; + } + } else { + t.removeClass('menu-item-disabled'); + if (itemEl.onclick1){ + itemEl.onclick = itemEl.onclick1; + itemEl.onclick1 = null; + } + } + } + + function appendItem(target, param){ + var opts = $.data(target, 'menu').options; + var menu = $(target); + if (param.parent){ + if (!param.parent.submenu){ + var submenu = $('').appendTo('body'); + submenu.hide(); + param.parent.submenu = submenu; + $('').appendTo(param.parent); + } + menu = param.parent.submenu; + } + if (param.separator){ + var item = $('').appendTo(menu); + } else { + var item = $('').appendTo(menu); + $('').html(param.text).appendTo(item); + } + if (param.iconCls) $('').addClass(param.iconCls).appendTo(item); + if (param.id) item.attr('id', param.id); + if (param.name){item[0].itemName = param.name} + if (param.href){item[0].itemHref = param.href} + if (param.onclick){ + if (typeof param.onclick == 'string'){ + item.attr('onclick', param.onclick); + } else { + item[0].onclick = eval(param.onclick); + } + } + if (param.handler){item[0].onclick = eval(param.handler)} + if (param.disabled){setDisabled(target, item[0], true)} + + bindMenuItemEvent(target, item); + bindMenuEvent(target, menu); + setMenuSize(target, menu); + } + + function removeItem(target, itemEl){ + function removeit(el){ + if (el.submenu){ + el.submenu.children('div.menu-item').each(function(){ + removeit(this); + }); + var shadow = el.submenu[0].shadow; + if (shadow) shadow.remove(); + el.submenu.remove(); + } + $(el).remove(); + } + var menu = $(itemEl).parent(); + removeit(itemEl); + setMenuSize(target, menu); + } + + function setVisible(target, itemEl, visible){ + var menu = $(itemEl).parent(); + if (visible){ + $(itemEl).show(); + } else { + $(itemEl).hide(); + } + setMenuSize(target, menu); + } + + function destroyMenu(target){ + $(target).children('div.menu-item').each(function(){ + removeItem(target, this); + }); + if (target.shadow) target.shadow.remove(); + $(target).remove(); + } + + $.fn.menu = function(options, param){ + if (typeof options == 'string'){ + return $.fn.menu.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'menu'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'menu', { + options: $.extend({}, $.fn.menu.defaults, $.fn.menu.parseOptions(this), options) + }); + init(this); + } + $(this).css({ + left: state.options.left, + top: state.options.top + }); + }); + }; + + $.fn.menu.methods = { + options: function(jq){ + return $.data(jq[0], 'menu').options; + }, + show: function(jq, pos){ + return jq.each(function(){ + showMenu(this, pos); + }); + }, + hide: function(jq){ + return jq.each(function(){ + hideAll(this); + }); + }, + destroy: function(jq){ + return jq.each(function(){ + destroyMenu(this); + }); + }, + /** + * set the menu item text + * param: { + * target: DOM object, indicate the menu item + * text: string, the new text + * } + */ + setText: function(jq, param){ + return jq.each(function(){ + $(param.target).children('div.menu-text').html(param.text); + }); + }, + /** + * set the menu icon class + * param: { + * target: DOM object, indicate the menu item + * iconCls: the menu item icon class + * } + */ + setIcon: function(jq, param){ + return jq.each(function(){ + $(param.target).children('div.menu-icon').remove(); + if (param.iconCls){ + $('').addClass(param.iconCls).appendTo(param.target); + } + }); + }, + /** + * get the menu item data that contains the following property: + * { + * target: DOM object, the menu item + * id: the menu id + * text: the menu item text + * iconCls: the icon class + * href: a remote address to redirect to + * onclick: a function to be called when the item is clicked + * } + */ + getItem: function(jq, itemEl){ + var t = $(itemEl); + var item = { + target: itemEl, + id: t.attr('id'), + text: $.trim(t.children('div.menu-text').html()), + disabled: t.hasClass('menu-item-disabled'), +// href: t.attr('href'), +// name: t.attr('name'), + name: itemEl.itemName, + href: itemEl.itemHref, + onclick: itemEl.onclick + } + var icon = t.children('div.menu-icon'); + if (icon.length){ + var cc = []; + var aa = icon.attr('class').split(' '); + for(var i=0; i= 0){ - v = Math.floor((parent.width()-delta) * v / 100.0); - } else { - v = Math.floor((parent.height()-delta) * v / 100.0); - } - } else { - v = parseInt(v) || undefined; - } - return v; - }, - - /** - * parse options, including standard 'data-options' attribute. - * - * calling examples: - * $.parser.parseOptions(target); - * $.parser.parseOptions(target, ['id','title','width',{fit:'boolean',border:'boolean'},{min:'number'}]); - */ - parseOptions: function(target, properties){ - var t = $(target); - var options = {}; - - var s = $.trim(t.attr('data-options')); - if (s){ - if (s.substring(0, 1) != '{'){ - s = '{' + s + '}'; - } - options = (new Function('return ' + s))(); - } - $.map(['width','height','left','top','minWidth','maxWidth','minHeight','maxHeight'], function(p){ - var pv = $.trim(target.style[p] || ''); - if (pv){ - if (pv.indexOf('%') == -1){ - pv = parseInt(pv) || undefined; - } - options[p] = pv; - } - }); - - if (properties){ - var opts = {}; - for(var i=0; i').appendTo('body'); - $._boxModel = d.outerWidth()!=100; - d.remove(); - d = $('
                              ').appendTo('body'); - $._positionFixed = (d.css('position') == 'fixed'); - d.remove(); - - if (!window.easyloader && $.parser.auto){ - $.parser.parse(); - } - }); - - /** - * extend plugin to set box model width - */ - $.fn._outerWidth = function(width){ - if (width == undefined){ - if (this[0] == window){ - return this.width() || document.body.clientWidth; - } - return this.outerWidth()||0; - } - return this._size('width', width); - }; - - /** - * extend plugin to set box model height - */ - $.fn._outerHeight = function(height){ - if (height == undefined){ - if (this[0] == window){ - return this.height() || document.body.clientHeight; - } - return this.outerHeight()||0; - } - return this._size('height', height); - }; - - $.fn._scrollLeft = function(left){ - if (left == undefined){ - return this.scrollLeft(); - } else { - return this.each(function(){$(this).scrollLeft(left)}); - } - }; - - $.fn._propAttr = $.fn.prop || $.fn.attr; - - $.fn._size = function(options, parent){ - if (typeof options == 'string'){ - if (options == 'clear'){ - return this.each(function(){ - $(this).css({width:'',minWidth:'',maxWidth:'',height:'',minHeight:'',maxHeight:''}); - }); - } else if (options == 'fit'){ - return this.each(function(){ - _fit(this, this.tagName=='BODY' ? $('body') : $(this).parent(), true); - }); - } else if (options == 'unfit'){ - return this.each(function(){ - _fit(this, $(this).parent(), false); - }); - } else { - if (parent == undefined){ - return _css(this[0], options); - } else { - return this.each(function(){ - _css(this, options, parent); - }); - } - } - } else { - return this.each(function(){ - parent = parent || $(this).parent(); - $.extend(options, _fit(this, parent, options.fit)||{}); - var r1 = _setSize(this, 'width', parent, options); - var r2 = _setSize(this, 'height', parent, options); - if (r1 || r2){ - $(this).addClass('easyui-fluid'); - } else { - $(this).removeClass('easyui-fluid'); - } - }); - } - - function _fit(target, parent, fit){ - if (!parent.length){return false;} - var t = $(target)[0]; - var p = parent[0]; - var fcount = p.fcount || 0; - if (fit){ - if (!t.fitted){ - t.fitted = true; - p.fcount = fcount + 1; - $(p).addClass('panel-noscroll'); - if (p.tagName == 'BODY'){ - $('html').addClass('panel-fit'); - } - } - return { - width: ($(p).width()||1), - height: ($(p).height()||1) - }; - } else { - if (t.fitted){ - t.fitted = false; - p.fcount = fcount - 1; - if (p.fcount == 0){ - $(p).removeClass('panel-noscroll'); - if (p.tagName == 'BODY'){ - $('html').removeClass('panel-fit'); - } - } - } - return false; - } - } - function _setSize(target, property, parent, options){ - var t = $(target); - var p = property; - var p1 = p.substr(0,1).toUpperCase() + p.substr(1); - var min = $.parser.parseValue('min'+p1, options['min'+p1], parent);// || 0; - var max = $.parser.parseValue('max'+p1, options['max'+p1], parent);// || 99999; - var val = $.parser.parseValue(p, options[p], parent); - var fluid = (String(options[p]||'').indexOf('%') >= 0 ? true : false); - - if (!isNaN(val)){ - var v = Math.min(Math.max(val, min||0), max||99999); - if (!fluid){ - options[p] = v; - } - t._size('min'+p1, ''); - t._size('max'+p1, ''); - t._size(p, v); - } else { - t._size(p, ''); - t._size('min'+p1, min); - t._size('max'+p1, max); - } - return fluid || options.fit; - } - function _css(target, property, value){ - var t = $(target); - if (value == undefined){ - value = parseInt(target.style[property]); - if (isNaN(value)){return undefined;} - if ($._boxModel){ - value += getDeltaSize(); - } - return value; - } else if (value === ''){ - t.css(property, ''); - } else { - if ($._boxModel){ - value -= getDeltaSize(); - if (value < 0){value = 0;} - } - t.css(property, value+'px'); - } - function getDeltaSize(){ - if (property.toLowerCase().indexOf('width') >= 0){ - return t.outerWidth() - t.width(); - } else { - return t.outerHeight() - t.height(); - } - } - } - }; - -})(jQuery); - -/** - * support for mobile devices - */ -(function($){ - var longTouchTimer = null; - var dblTouchTimer = null; - var isDblClick = false; - - function onTouchStart(e){ - if (e.touches.length != 1){return} - if (!isDblClick){ - isDblClick = true; - dblClickTimer = setTimeout(function(){ - isDblClick = false; - }, 500); - } else { - clearTimeout(dblClickTimer); - isDblClick = false; - fire(e, 'dblclick'); -// e.preventDefault(); - } - longTouchTimer = setTimeout(function(){ - fire(e, 'contextmenu', 3); - }, 1000); - fire(e, 'mousedown'); - if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ - e.preventDefault(); - } - } - function onTouchMove(e){ - if (e.touches.length != 1){return} - if (longTouchTimer){ - clearTimeout(longTouchTimer); - } - fire(e, 'mousemove'); - if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ - e.preventDefault(); - } - } - function onTouchEnd(e){ -// if (e.touches.length > 0){return} - if (longTouchTimer){ - clearTimeout(longTouchTimer); - } - fire(e, 'mouseup'); - if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ - e.preventDefault(); - } - } - - function fire(e, name, which){ - var event = new $.Event(name); - event.pageX = e.changedTouches[0].pageX; - event.pageY = e.changedTouches[0].pageY; - event.which = which || 1; - $(e.target).trigger(event); - } - - if (document.addEventListener){ - document.addEventListener("touchstart", onTouchStart, true); - document.addEventListener("touchmove", onTouchMove, true); - document.addEventListener("touchend", onTouchEnd, true); - } -})(jQuery); - +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * parser - jQuery EasyUI + * + */ + +(function($){ + $.parser = { + auto: true, + onComplete: function(context){}, + plugins:['draggable','droppable','resizable','pagination','tooltip', + 'linkbutton','menu','menubutton','splitbutton','switchbutton','progressbar', + 'tree','textbox','filebox','combo','combobox','combotree','combogrid','numberbox','validatebox','searchbox', + 'spinner','numberspinner','timespinner','datetimespinner','calendar','datebox','datetimebox','slider', + 'layout','panel','datagrid','propertygrid','treegrid','datalist','tabs','accordion','window','dialog','form' + ], + parse: function(context){ + var aa = []; + for(var i=0; i<$.parser.plugins.length; i++){ + var name = $.parser.plugins[i]; + var r = $('.easyui-' + name, context); + if (r.length){ + if (r[name]){ + r[name](); + } else { + aa.push({name:name,jq:r}); + } + } + } + if (aa.length && window.easyloader){ + var names = []; + for(var i=0; i= 0){ + v = Math.floor((parent.width()-delta) * v / 100.0); + } else { + v = Math.floor((parent.height()-delta) * v / 100.0); + } + } else { + v = parseInt(v) || undefined; + } + return v; + }, + + /** + * parse options, including standard 'data-options' attribute. + * + * calling examples: + * $.parser.parseOptions(target); + * $.parser.parseOptions(target, ['id','title','width',{fit:'boolean',border:'boolean'},{min:'number'}]); + */ + parseOptions: function(target, properties){ + var t = $(target); + var options = {}; + + var s = $.trim(t.attr('data-options')); + if (s){ + if (s.substring(0, 1) != '{'){ + s = '{' + s + '}'; + } + options = (new Function('return ' + s))(); + } + $.map(['width','height','left','top','minWidth','maxWidth','minHeight','maxHeight'], function(p){ + var pv = $.trim(target.style[p] || ''); + if (pv){ + if (pv.indexOf('%') == -1){ + pv = parseInt(pv) || undefined; + } + options[p] = pv; + } + }); + + if (properties){ + var opts = {}; + for(var i=0; i').appendTo('body'); + $._boxModel = d.outerWidth()!=100; + d.remove(); + d = $('
                              ').appendTo('body'); + $._positionFixed = (d.css('position') == 'fixed'); + d.remove(); + + if (!window.easyloader && $.parser.auto){ + $.parser.parse(); + } + }); + + /** + * extend plugin to set box model width + */ + $.fn._outerWidth = function(width){ + if (width == undefined){ + if (this[0] == window){ + return this.width() || document.body.clientWidth; + } + return this.outerWidth()||0; + } + return this._size('width', width); + }; + + /** + * extend plugin to set box model height + */ + $.fn._outerHeight = function(height){ + if (height == undefined){ + if (this[0] == window){ + return this.height() || document.body.clientHeight; + } + return this.outerHeight()||0; + } + return this._size('height', height); + }; + + $.fn._scrollLeft = function(left){ + if (left == undefined){ + return this.scrollLeft(); + } else { + return this.each(function(){$(this).scrollLeft(left)}); + } + }; + + $.fn._propAttr = $.fn.prop || $.fn.attr; + + $.fn._size = function(options, parent){ + if (typeof options == 'string'){ + if (options == 'clear'){ + return this.each(function(){ + $(this).css({width:'',minWidth:'',maxWidth:'',height:'',minHeight:'',maxHeight:''}); + }); + } else if (options == 'fit'){ + return this.each(function(){ + _fit(this, this.tagName=='BODY' ? $('body') : $(this).parent(), true); + }); + } else if (options == 'unfit'){ + return this.each(function(){ + _fit(this, $(this).parent(), false); + }); + } else { + if (parent == undefined){ + return _css(this[0], options); + } else { + return this.each(function(){ + _css(this, options, parent); + }); + } + } + } else { + return this.each(function(){ + parent = parent || $(this).parent(); + $.extend(options, _fit(this, parent, options.fit)||{}); + var r1 = _setSize(this, 'width', parent, options); + var r2 = _setSize(this, 'height', parent, options); + if (r1 || r2){ + $(this).addClass('easyui-fluid'); + } else { + $(this).removeClass('easyui-fluid'); + } + }); + } + + function _fit(target, parent, fit){ + if (!parent.length){return false;} + var t = $(target)[0]; + var p = parent[0]; + var fcount = p.fcount || 0; + if (fit){ + if (!t.fitted){ + t.fitted = true; + p.fcount = fcount + 1; + $(p).addClass('panel-noscroll'); + if (p.tagName == 'BODY'){ + $('html').addClass('panel-fit'); + } + } + return { + width: ($(p).width()||1), + height: ($(p).height()||1) + }; + } else { + if (t.fitted){ + t.fitted = false; + p.fcount = fcount - 1; + if (p.fcount == 0){ + $(p).removeClass('panel-noscroll'); + if (p.tagName == 'BODY'){ + $('html').removeClass('panel-fit'); + } + } + } + return false; + } + } + function _setSize(target, property, parent, options){ + var t = $(target); + var p = property; + var p1 = p.substr(0,1).toUpperCase() + p.substr(1); + var min = $.parser.parseValue('min'+p1, options['min'+p1], parent);// || 0; + var max = $.parser.parseValue('max'+p1, options['max'+p1], parent);// || 99999; + var val = $.parser.parseValue(p, options[p], parent); + var fluid = (String(options[p]||'').indexOf('%') >= 0 ? true : false); + + if (!isNaN(val)){ + var v = Math.min(Math.max(val, min||0), max||99999); + if (!fluid){ + options[p] = v; + } + t._size('min'+p1, ''); + t._size('max'+p1, ''); + t._size(p, v); + } else { + t._size(p, ''); + t._size('min'+p1, min); + t._size('max'+p1, max); + } + return fluid || options.fit; + } + function _css(target, property, value){ + var t = $(target); + if (value == undefined){ + value = parseInt(target.style[property]); + if (isNaN(value)){return undefined;} + if ($._boxModel){ + value += getDeltaSize(); + } + return value; + } else if (value === ''){ + t.css(property, ''); + } else { + if ($._boxModel){ + value -= getDeltaSize(); + if (value < 0){value = 0;} + } + t.css(property, value+'px'); + } + function getDeltaSize(){ + if (property.toLowerCase().indexOf('width') >= 0){ + return t.outerWidth() - t.width(); + } else { + return t.outerHeight() - t.height(); + } + } + } + }; + +})(jQuery); + +/** + * support for mobile devices + */ +(function($){ + var longTouchTimer = null; + var dblTouchTimer = null; + var isDblClick = false; + + function onTouchStart(e){ + if (e.touches.length != 1){return} + if (!isDblClick){ + isDblClick = true; + dblClickTimer = setTimeout(function(){ + isDblClick = false; + }, 500); + } else { + clearTimeout(dblClickTimer); + isDblClick = false; + fire(e, 'dblclick'); +// e.preventDefault(); + } + longTouchTimer = setTimeout(function(){ + fire(e, 'contextmenu', 3); + }, 1000); + fire(e, 'mousedown'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + function onTouchMove(e){ + if (e.touches.length != 1){return} + if (longTouchTimer){ + clearTimeout(longTouchTimer); + } + fire(e, 'mousemove'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + function onTouchEnd(e){ +// if (e.touches.length > 0){return} + if (longTouchTimer){ + clearTimeout(longTouchTimer); + } + fire(e, 'mouseup'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + + function fire(e, name, which){ + var event = new $.Event(name); + event.pageX = e.changedTouches[0].pageX; + event.pageY = e.changedTouches[0].pageY; + event.which = which || 1; + $(e.target).trigger(event); + } + + if (document.addEventListener){ + document.addEventListener("touchstart", onTouchStart, true); + document.addEventListener("touchmove", onTouchMove, true); + document.addEventListener("touchend", onTouchEnd, true); + } +})(jQuery); + diff --git a/vendor/easyui/src/jquery.progressbar.js b/vendor/FHC-vendor/easyui/src/jquery.progressbar.js similarity index 96% rename from vendor/easyui/src/jquery.progressbar.js rename to vendor/FHC-vendor/easyui/src/jquery.progressbar.js index be756d224..66aca6a12 100644 --- a/vendor/easyui/src/jquery.progressbar.js +++ b/vendor/FHC-vendor/easyui/src/jquery.progressbar.js @@ -1,107 +1,107 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * progressbar - jQuery EasyUI - * - * Dependencies: - * none - * - */ -(function($){ - function init(target){ - $(target).addClass('progressbar'); - $(target).html('
                              '); - $(target).bind('_resize', function(e,force){ - if ($(this).hasClass('easyui-fluid') || force){ - setSize(target); - } - return false; - }); - return $(target); - } - - function setSize(target,width){ - var opts = $.data(target, 'progressbar').options; - var bar = $.data(target, 'progressbar').bar; - if (width) opts.width = width; - bar._size(opts); - - bar.find('div.progressbar-text').css('width', bar.width()); - bar.find('div.progressbar-text,div.progressbar-value').css({ - height: bar.height()+'px', - lineHeight: bar.height()+'px' - }); - } - - $.fn.progressbar = function(options, param){ - if (typeof options == 'string'){ - var method = $.fn.progressbar.methods[options]; - if (method){ - return method(this, param); - } - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'progressbar'); - if (state){ - $.extend(state.options, options); - } else { - state = $.data(this, 'progressbar', { - options: $.extend({}, $.fn.progressbar.defaults, $.fn.progressbar.parseOptions(this), options), - bar: init(this) - }); - } - $(this).progressbar('setValue', state.options.value); - setSize(this); - }); - }; - - $.fn.progressbar.methods = { - options: function(jq){ - return $.data(jq[0], 'progressbar').options; - }, - resize: function(jq, width){ - return jq.each(function(){ - setSize(this, width); - }); - }, - getValue: function(jq){ - return $.data(jq[0], 'progressbar').options.value; - }, - setValue: function(jq, value){ - if (value < 0) value = 0; - if (value > 100) value = 100; - return jq.each(function(){ - var opts = $.data(this, 'progressbar').options; - var text = opts.text.replace(/{value}/, value); - var oldValue = opts.value; - opts.value = value; - $(this).find('div.progressbar-value').width(value+'%'); - $(this).find('div.progressbar-text').html(text); - if (oldValue != value){ - opts.onChange.call(this, value, oldValue); - } - }); - } - }; - - $.fn.progressbar.parseOptions = function(target){ - return $.extend({}, $.parser.parseOptions(target, ['width','height','text',{value:'number'}])); - }; - - $.fn.progressbar.defaults = { - width: 'auto', - height: 22, - value: 0, // percentage value - text: '{value}%', - onChange:function(newValue,oldValue){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * progressbar - jQuery EasyUI + * + * Dependencies: + * none + * + */ +(function($){ + function init(target){ + $(target).addClass('progressbar'); + $(target).html('
                              '); + $(target).bind('_resize', function(e,force){ + if ($(this).hasClass('easyui-fluid') || force){ + setSize(target); + } + return false; + }); + return $(target); + } + + function setSize(target,width){ + var opts = $.data(target, 'progressbar').options; + var bar = $.data(target, 'progressbar').bar; + if (width) opts.width = width; + bar._size(opts); + + bar.find('div.progressbar-text').css('width', bar.width()); + bar.find('div.progressbar-text,div.progressbar-value').css({ + height: bar.height()+'px', + lineHeight: bar.height()+'px' + }); + } + + $.fn.progressbar = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.progressbar.methods[options]; + if (method){ + return method(this, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'progressbar'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'progressbar', { + options: $.extend({}, $.fn.progressbar.defaults, $.fn.progressbar.parseOptions(this), options), + bar: init(this) + }); + } + $(this).progressbar('setValue', state.options.value); + setSize(this); + }); + }; + + $.fn.progressbar.methods = { + options: function(jq){ + return $.data(jq[0], 'progressbar').options; + }, + resize: function(jq, width){ + return jq.each(function(){ + setSize(this, width); + }); + }, + getValue: function(jq){ + return $.data(jq[0], 'progressbar').options.value; + }, + setValue: function(jq, value){ + if (value < 0) value = 0; + if (value > 100) value = 100; + return jq.each(function(){ + var opts = $.data(this, 'progressbar').options; + var text = opts.text.replace(/{value}/, value); + var oldValue = opts.value; + opts.value = value; + $(this).find('div.progressbar-value').width(value+'%'); + $(this).find('div.progressbar-text').html(text); + if (oldValue != value){ + opts.onChange.call(this, value, oldValue); + } + }); + } + }; + + $.fn.progressbar.parseOptions = function(target){ + return $.extend({}, $.parser.parseOptions(target, ['width','height','text',{value:'number'}])); + }; + + $.fn.progressbar.defaults = { + width: 'auto', + height: 22, + value: 0, // percentage value + text: '{value}%', + onChange:function(newValue,oldValue){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.propertygrid.js b/vendor/FHC-vendor/easyui/src/jquery.propertygrid.js similarity index 96% rename from vendor/easyui/src/jquery.propertygrid.js rename to vendor/FHC-vendor/easyui/src/jquery.propertygrid.js index d7e321e9c..65658157b 100644 --- a/vendor/easyui/src/jquery.propertygrid.js +++ b/vendor/FHC-vendor/easyui/src/jquery.propertygrid.js @@ -1,420 +1,420 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * propertygrid - jQuery EasyUI - * - * Dependencies: - * datagrid - * - */ -(function($){ - var currTarget; - $(document).unbind('.propertygrid').bind('mousedown.propertygrid', function(e){ - var p = $(e.target).closest('div.datagrid-view,div.combo-panel'); - if (p.length){return;} - stopEditing(currTarget); - currTarget = undefined; - }); - - function buildGrid(target){ - var state = $.data(target, 'propertygrid'); - var opts = $.data(target, 'propertygrid').options; - $(target).datagrid($.extend({}, opts, { - cls:'propertygrid', - view:(opts.showGroup ? opts.groupView : opts.view), - onBeforeEdit:function(index, row){ - if (opts.onBeforeEdit.call(target, index, row) == false){return false;} - var dg = $(this); - var row = dg.datagrid('getRows')[index]; - var col = dg.datagrid('getColumnOption', 'value'); - col.editor = row.editor; - }, - onClickCell:function(index, field, value){ - if (currTarget != this){ - stopEditing(currTarget); - currTarget = this; - } - if (opts.editIndex != index){ - stopEditing(currTarget); - $(this).datagrid('beginEdit', index); - var ed = $(this).datagrid('getEditor', {index:index,field:field}); - if (!ed){ - ed = $(this).datagrid('getEditor', {index:index,field:'value'}); - } - if (ed){ - var t = $(ed.target); - var input = t.data('textbox') ? t.textbox('textbox') : t; - input.focus(); - opts.editIndex = index; - } - } - opts.onClickCell.call(target, index, field, value); - }, - loadFilter:function(data){ - stopEditing(this); - return opts.loadFilter.call(this, data); - } - })); - } - - function stopEditing(target){ - var t = $(target); - if (!t.length){return} - var opts = $.data(target, 'propertygrid').options; - opts.finder.getTr(target, null, 'editing').each(function(){ - var index = parseInt($(this).attr('datagrid-row-index')); - if (t.datagrid('validateRow', index)){ - t.datagrid('endEdit', index); - } else { - t.datagrid('cancelEdit', index); - } - }); - opts.editIndex = undefined; - } - - $.fn.propertygrid = function(options, param){ - if (typeof options == 'string'){ - var method = $.fn.propertygrid.methods[options]; - if (method){ - return method(this, param); - } else { - return this.datagrid(options, param); - } - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'propertygrid'); - if (state){ - $.extend(state.options, options); - } else { - var opts = $.extend({}, $.fn.propertygrid.defaults, $.fn.propertygrid.parseOptions(this), options); - opts.frozenColumns = $.extend(true, [], opts.frozenColumns); - opts.columns = $.extend(true, [], opts.columns); - $.data(this, 'propertygrid', { - options: opts - }); - } - buildGrid(this); - }); - } - - $.fn.propertygrid.methods = { - options: function(jq){ - return $.data(jq[0], 'propertygrid').options; - } - }; - - $.fn.propertygrid.parseOptions = function(target){ - return $.extend({}, $.fn.datagrid.parseOptions(target), $.parser.parseOptions(target,[{showGroup:'boolean'}])); - }; - - // the group view definition - var groupview = $.extend({}, $.fn.datagrid.defaults.view, { - render: function(target, container, frozen){ - var table = []; - var groups = this.groups; - for(var i=0; i'); - if ((frozen && (opts.rownumbers || opts.frozenColumns.length)) || - (!frozen && !(opts.rownumbers || opts.frozenColumns.length))){ - table.push(''); - table.push(' '); - table.push(''); - } - if (!frozen){ - table.push(''); - table.push(opts.groupFormatter.call(target, group.value, group.rows)); - table.push(''); - } - table.push(''); - - table.push(''); - var index = group.startIndex; - for(var j=0; j'); - table.push(this.renderRow.call(this, target, fields, frozen, index, group.rows[j])); - table.push(''); - index++; - } - table.push('
                              '); - return table.join(''); - }, - - bindEvents: function(target){ - var state = $.data(target, 'datagrid'); - var dc = state.dc; - var body = dc.body1.add(dc.body2); - var clickHandler = ($.data(body[0],'events')||$._data(body[0],'events')).click[0].handler; - body.unbind('click').bind('click', function(e){ - var tt = $(e.target); - var expander = tt.closest('span.datagrid-row-expander'); - if (expander.length){ - var gindex = expander.closest('div.datagrid-group').attr('group-index'); - if (expander.hasClass('datagrid-row-collapse')){ - $(target).datagrid('collapseGroup', gindex); - } else { - $(target).datagrid('expandGroup', gindex); - } - } else { - clickHandler(e); - } - e.stopPropagation(); - }); - }, - - onBeforeRender: function(target, rows){ - var state = $.data(target, 'datagrid'); - var opts = state.options; - - initCss(); - - var groups = []; - for(var i=0; i' + - '.datagrid-group{height:'+opts.groupHeight+'px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}' + - '.datagrid-group-title,.datagrid-group-expander{display:inline-block;vertical-align:bottom;height:100%;line-height:'+opts.groupHeight+'px;padding:0 4px;}' + - '.datagrid-group-expander{width:'+opts.expanderWidth+'px;text-align:center;padding:0}' + - '.datagrid-row-expander{margin:'+Math.floor((opts.groupHeight-16)/2)+'px 0;display:inline-block;width:16px;height:16px;cursor:pointer}' + - '' - ); - } - } - } - }); - - $.extend($.fn.datagrid.methods, { - groups:function(jq){ - return jq.datagrid('options').view.groups; - }, - expandGroup:function(jq, groupIndex){ - return jq.each(function(){ - var view = $.data(this, 'datagrid').dc.view; - var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); - var expander = group.find('span.datagrid-row-expander'); - if (expander.hasClass('datagrid-row-expand')){ - expander.removeClass('datagrid-row-expand').addClass('datagrid-row-collapse'); - group.next('table').show(); - } - $(this).datagrid('fixRowHeight'); - }); - }, - collapseGroup:function(jq, groupIndex){ - return jq.each(function(){ - var view = $.data(this, 'datagrid').dc.view; - var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); - var expander = group.find('span.datagrid-row-expander'); - if (expander.hasClass('datagrid-row-collapse')){ - expander.removeClass('datagrid-row-collapse').addClass('datagrid-row-expand'); - group.next('table').hide(); - } - $(this).datagrid('fixRowHeight'); - }); - } - }); - - $.extend(groupview, { - refreshGroupTitle: function(target, groupIndex){ - var state = $.data(target, 'datagrid'); - var opts = state.options; - var dc = state.dc; - var group = this.groups[groupIndex]; - var span = dc.body2.children('div.datagrid-group[group-index=' + groupIndex + ']').find('span.datagrid-group-title'); - span.html(opts.groupFormatter.call(target, group.value, group.rows)); - }, - - insertRow: function(target, index, row){ - var state = $.data(target, 'datagrid'); - var opts = state.options; - var dc = state.dc; - var group = null; - var groupIndex; - - if (!state.data.rows.length){ - $(target).datagrid('loadData', [row]); - return; - } - - for(var i=0; i group.startIndex + group.rows.length){ - index = group.startIndex + group.rows.length; - } - $.fn.datagrid.defaults.view.insertRow.call(this, target, index, row); - - if (index >= group.startIndex + group.rows.length){ - _moveTr(index, true); - _moveTr(index, false); - } - group.rows.splice(index - group.startIndex, 0, row); - } else { - group = { - value: row[opts.groupField], - rows: [row], - startIndex: state.data.rows.length - } - groupIndex = this.groups.length; - dc.body1.append(this.renderGroup.call(this, target, groupIndex, group, true)); - dc.body2.append(this.renderGroup.call(this, target, groupIndex, group, false)); - this.groups.push(group); - state.data.rows.push(row); - } - - this.refreshGroupTitle(target, groupIndex); - - function _moveTr(index,frozen){ - var serno = frozen?1:2; - var prevTr = opts.finder.getTr(target, index-1, 'body', serno); - var tr = opts.finder.getTr(target, index, 'body', serno); - tr.insertAfter(prevTr); - } - }, - - updateRow: function(target, index, row){ - var opts = $.data(target, 'datagrid').options; - $.fn.datagrid.defaults.view.updateRow.call(this, target, index, row); - var tb = opts.finder.getTr(target, index, 'body', 2).closest('table.datagrid-btable'); - var groupIndex = parseInt(tb.prev().attr('group-index')); - this.refreshGroupTitle(target, groupIndex); - }, - - deleteRow: function(target, index){ - var state = $.data(target, 'datagrid'); - var opts = state.options; - var dc = state.dc; - var body = dc.body1.add(dc.body2); - - var tb = opts.finder.getTr(target, index, 'body', 2).closest('table.datagrid-btable'); - var groupIndex = parseInt(tb.prev().attr('group-index')); - - $.fn.datagrid.defaults.view.deleteRow.call(this, target, index); - - var group = this.groups[groupIndex]; - if (group.rows.length > 1){ - group.rows.splice(index-group.startIndex, 1); - this.refreshGroupTitle(target, groupIndex); - } else { - body.children('div.datagrid-group[group-index='+groupIndex+']').remove(); - for(var i=groupIndex+1; i'); + if ((frozen && (opts.rownumbers || opts.frozenColumns.length)) || + (!frozen && !(opts.rownumbers || opts.frozenColumns.length))){ + table.push(''); + table.push(' '); + table.push(''); + } + if (!frozen){ + table.push(''); + table.push(opts.groupFormatter.call(target, group.value, group.rows)); + table.push(''); + } + table.push(''); + + table.push(''); + var index = group.startIndex; + for(var j=0; j'); + table.push(this.renderRow.call(this, target, fields, frozen, index, group.rows[j])); + table.push(''); + index++; + } + table.push('
                              '); + return table.join(''); + }, + + bindEvents: function(target){ + var state = $.data(target, 'datagrid'); + var dc = state.dc; + var body = dc.body1.add(dc.body2); + var clickHandler = ($.data(body[0],'events')||$._data(body[0],'events')).click[0].handler; + body.unbind('click').bind('click', function(e){ + var tt = $(e.target); + var expander = tt.closest('span.datagrid-row-expander'); + if (expander.length){ + var gindex = expander.closest('div.datagrid-group').attr('group-index'); + if (expander.hasClass('datagrid-row-collapse')){ + $(target).datagrid('collapseGroup', gindex); + } else { + $(target).datagrid('expandGroup', gindex); + } + } else { + clickHandler(e); + } + e.stopPropagation(); + }); + }, + + onBeforeRender: function(target, rows){ + var state = $.data(target, 'datagrid'); + var opts = state.options; + + initCss(); + + var groups = []; + for(var i=0; i' + + '.datagrid-group{height:'+opts.groupHeight+'px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}' + + '.datagrid-group-title,.datagrid-group-expander{display:inline-block;vertical-align:bottom;height:100%;line-height:'+opts.groupHeight+'px;padding:0 4px;}' + + '.datagrid-group-expander{width:'+opts.expanderWidth+'px;text-align:center;padding:0}' + + '.datagrid-row-expander{margin:'+Math.floor((opts.groupHeight-16)/2)+'px 0;display:inline-block;width:16px;height:16px;cursor:pointer}' + + '' + ); + } + } + } + }); + + $.extend($.fn.datagrid.methods, { + groups:function(jq){ + return jq.datagrid('options').view.groups; + }, + expandGroup:function(jq, groupIndex){ + return jq.each(function(){ + var view = $.data(this, 'datagrid').dc.view; + var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); + var expander = group.find('span.datagrid-row-expander'); + if (expander.hasClass('datagrid-row-expand')){ + expander.removeClass('datagrid-row-expand').addClass('datagrid-row-collapse'); + group.next('table').show(); + } + $(this).datagrid('fixRowHeight'); + }); + }, + collapseGroup:function(jq, groupIndex){ + return jq.each(function(){ + var view = $.data(this, 'datagrid').dc.view; + var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); + var expander = group.find('span.datagrid-row-expander'); + if (expander.hasClass('datagrid-row-collapse')){ + expander.removeClass('datagrid-row-collapse').addClass('datagrid-row-expand'); + group.next('table').hide(); + } + $(this).datagrid('fixRowHeight'); + }); + } + }); + + $.extend(groupview, { + refreshGroupTitle: function(target, groupIndex){ + var state = $.data(target, 'datagrid'); + var opts = state.options; + var dc = state.dc; + var group = this.groups[groupIndex]; + var span = dc.body2.children('div.datagrid-group[group-index=' + groupIndex + ']').find('span.datagrid-group-title'); + span.html(opts.groupFormatter.call(target, group.value, group.rows)); + }, + + insertRow: function(target, index, row){ + var state = $.data(target, 'datagrid'); + var opts = state.options; + var dc = state.dc; + var group = null; + var groupIndex; + + if (!state.data.rows.length){ + $(target).datagrid('loadData', [row]); + return; + } + + for(var i=0; i group.startIndex + group.rows.length){ + index = group.startIndex + group.rows.length; + } + $.fn.datagrid.defaults.view.insertRow.call(this, target, index, row); + + if (index >= group.startIndex + group.rows.length){ + _moveTr(index, true); + _moveTr(index, false); + } + group.rows.splice(index - group.startIndex, 0, row); + } else { + group = { + value: row[opts.groupField], + rows: [row], + startIndex: state.data.rows.length + } + groupIndex = this.groups.length; + dc.body1.append(this.renderGroup.call(this, target, groupIndex, group, true)); + dc.body2.append(this.renderGroup.call(this, target, groupIndex, group, false)); + this.groups.push(group); + state.data.rows.push(row); + } + + this.refreshGroupTitle(target, groupIndex); + + function _moveTr(index,frozen){ + var serno = frozen?1:2; + var prevTr = opts.finder.getTr(target, index-1, 'body', serno); + var tr = opts.finder.getTr(target, index, 'body', serno); + tr.insertAfter(prevTr); + } + }, + + updateRow: function(target, index, row){ + var opts = $.data(target, 'datagrid').options; + $.fn.datagrid.defaults.view.updateRow.call(this, target, index, row); + var tb = opts.finder.getTr(target, index, 'body', 2).closest('table.datagrid-btable'); + var groupIndex = parseInt(tb.prev().attr('group-index')); + this.refreshGroupTitle(target, groupIndex); + }, + + deleteRow: function(target, index){ + var state = $.data(target, 'datagrid'); + var opts = state.options; + var dc = state.dc; + var body = dc.body1.add(dc.body2); + + var tb = opts.finder.getTr(target, index, 'body', 2).closest('table.datagrid-btable'); + var groupIndex = parseInt(tb.prev().attr('group-index')); + + $.fn.datagrid.defaults.view.deleteRow.call(this, target, index); + + var group = this.groups[groupIndex]; + if (group.rows.length > 1){ + group.rows.splice(index-group.startIndex, 1); + this.refreshGroupTitle(target, groupIndex); + } else { + body.children('div.datagrid-group[group-index='+groupIndex+']').remove(); + for(var i=groupIndex+1; i= options.minWidth && resizeData.width <= options.maxWidth) { -// resizeData.left = resizeData.startLeft + e.pageX - resizeData.startX; -// } - } - if (resizeData.dir.indexOf('n') != -1) { - var height = resizeData.startHeight - e.pageY + resizeData.startY; - height = Math.min( - Math.max(height, options.minHeight), - options.maxHeight - ); - resizeData.height = height; - resizeData.top = resizeData.startTop + resizeData.startHeight - resizeData.height; - -// resizeData.height = resizeData.startHeight - e.pageY + resizeData.startY; -// if (resizeData.height >= options.minHeight && resizeData.height <= options.maxHeight) { -// resizeData.top = resizeData.startTop + e.pageY - resizeData.startY; -// } - } - } - - function applySize(e){ - var resizeData = e.data; - var t = $(resizeData.target); - t.css({ - left: resizeData.left, - top: resizeData.top - }); - if (t.outerWidth() != resizeData.width){t._outerWidth(resizeData.width)} - if (t.outerHeight() != resizeData.height){t._outerHeight(resizeData.height)} -// t._outerWidth(resizeData.width)._outerHeight(resizeData.height); - } - - function doDown(e){ -// isResizing = true; - $.fn.resizable.isResizing = true; - $.data(e.data.target, 'resizable').options.onStartResize.call(e.data.target, e); - return false; - } - - function doMove(e){ - resize(e); - if ($.data(e.data.target, 'resizable').options.onResize.call(e.data.target, e) != false){ - applySize(e) - } - return false; - } - - function doUp(e){ -// isResizing = false; - $.fn.resizable.isResizing = false; - resize(e, true); - applySize(e); - $.data(e.data.target, 'resizable').options.onStopResize.call(e.data.target, e); - $(document).unbind('.resizable'); - $('body').css('cursor',''); -// $('body').css('cursor','auto'); - return false; - } - - return this.each(function(){ - var opts = null; - var state = $.data(this, 'resizable'); - if (state) { - $(this).unbind('.resizable'); - opts = $.extend(state.options, options || {}); - } else { - opts = $.extend({}, $.fn.resizable.defaults, $.fn.resizable.parseOptions(this), options || {}); - $.data(this, 'resizable', { - options:opts - }); - } - - if (opts.disabled == true) { - return; - } - - // bind mouse event using namespace resizable - $(this).bind('mousemove.resizable', {target:this}, function(e){ -// if (isResizing) return; - if ($.fn.resizable.isResizing){return} - var dir = getDirection(e); - if (dir == '') { - $(e.data.target).css('cursor', ''); - } else { - $(e.data.target).css('cursor', dir + '-resize'); - } - }).bind('mouseleave.resizable', {target:this}, function(e){ - $(e.data.target).css('cursor', ''); - }).bind('mousedown.resizable', {target:this}, function(e){ - var dir = getDirection(e); - if (dir == '') return; - - function getCssValue(css) { - var val = parseInt($(e.data.target).css(css)); - if (isNaN(val)) { - return 0; - } else { - return val; - } - } - - var data = { - target: e.data.target, - dir: dir, - startLeft: getCssValue('left'), - startTop: getCssValue('top'), - left: getCssValue('left'), - top: getCssValue('top'), - startX: e.pageX, - startY: e.pageY, - startWidth: $(e.data.target).outerWidth(), - startHeight: $(e.data.target).outerHeight(), - width: $(e.data.target).outerWidth(), - height: $(e.data.target).outerHeight(), - deltaWidth: $(e.data.target).outerWidth() - $(e.data.target).width(), - deltaHeight: $(e.data.target).outerHeight() - $(e.data.target).height() - }; - $(document).bind('mousedown.resizable', data, doDown); - $(document).bind('mousemove.resizable', data, doMove); - $(document).bind('mouseup.resizable', data, doUp); - $('body').css('cursor', dir+'-resize'); - }); - - // get the resize direction - function getDirection(e) { - var tt = $(e.data.target); - var dir = ''; - var offset = tt.offset(); - var width = tt.outerWidth(); - var height = tt.outerHeight(); - var edge = opts.edge; - if (e.pageY > offset.top && e.pageY < offset.top + edge) { - dir += 'n'; - } else if (e.pageY < offset.top + height && e.pageY > offset.top + height - edge) { - dir += 's'; - } - if (e.pageX > offset.left && e.pageX < offset.left + edge) { - dir += 'w'; - } else if (e.pageX < offset.left + width && e.pageX > offset.left + width - edge) { - dir += 'e'; - } - - var handles = opts.handles.split(','); - for(var i=0; i= options.minWidth && resizeData.width <= options.maxWidth) { +// resizeData.left = resizeData.startLeft + e.pageX - resizeData.startX; +// } + } + if (resizeData.dir.indexOf('n') != -1) { + var height = resizeData.startHeight - e.pageY + resizeData.startY; + height = Math.min( + Math.max(height, options.minHeight), + options.maxHeight + ); + resizeData.height = height; + resizeData.top = resizeData.startTop + resizeData.startHeight - resizeData.height; + +// resizeData.height = resizeData.startHeight - e.pageY + resizeData.startY; +// if (resizeData.height >= options.minHeight && resizeData.height <= options.maxHeight) { +// resizeData.top = resizeData.startTop + e.pageY - resizeData.startY; +// } + } + } + + function applySize(e){ + var resizeData = e.data; + var t = $(resizeData.target); + t.css({ + left: resizeData.left, + top: resizeData.top + }); + if (t.outerWidth() != resizeData.width){t._outerWidth(resizeData.width)} + if (t.outerHeight() != resizeData.height){t._outerHeight(resizeData.height)} +// t._outerWidth(resizeData.width)._outerHeight(resizeData.height); + } + + function doDown(e){ +// isResizing = true; + $.fn.resizable.isResizing = true; + $.data(e.data.target, 'resizable').options.onStartResize.call(e.data.target, e); + return false; + } + + function doMove(e){ + resize(e); + if ($.data(e.data.target, 'resizable').options.onResize.call(e.data.target, e) != false){ + applySize(e) + } + return false; + } + + function doUp(e){ +// isResizing = false; + $.fn.resizable.isResizing = false; + resize(e, true); + applySize(e); + $.data(e.data.target, 'resizable').options.onStopResize.call(e.data.target, e); + $(document).unbind('.resizable'); + $('body').css('cursor',''); +// $('body').css('cursor','auto'); + return false; + } + + return this.each(function(){ + var opts = null; + var state = $.data(this, 'resizable'); + if (state) { + $(this).unbind('.resizable'); + opts = $.extend(state.options, options || {}); + } else { + opts = $.extend({}, $.fn.resizable.defaults, $.fn.resizable.parseOptions(this), options || {}); + $.data(this, 'resizable', { + options:opts + }); + } + + if (opts.disabled == true) { + return; + } + + // bind mouse event using namespace resizable + $(this).bind('mousemove.resizable', {target:this}, function(e){ +// if (isResizing) return; + if ($.fn.resizable.isResizing){return} + var dir = getDirection(e); + if (dir == '') { + $(e.data.target).css('cursor', ''); + } else { + $(e.data.target).css('cursor', dir + '-resize'); + } + }).bind('mouseleave.resizable', {target:this}, function(e){ + $(e.data.target).css('cursor', ''); + }).bind('mousedown.resizable', {target:this}, function(e){ + var dir = getDirection(e); + if (dir == '') return; + + function getCssValue(css) { + var val = parseInt($(e.data.target).css(css)); + if (isNaN(val)) { + return 0; + } else { + return val; + } + } + + var data = { + target: e.data.target, + dir: dir, + startLeft: getCssValue('left'), + startTop: getCssValue('top'), + left: getCssValue('left'), + top: getCssValue('top'), + startX: e.pageX, + startY: e.pageY, + startWidth: $(e.data.target).outerWidth(), + startHeight: $(e.data.target).outerHeight(), + width: $(e.data.target).outerWidth(), + height: $(e.data.target).outerHeight(), + deltaWidth: $(e.data.target).outerWidth() - $(e.data.target).width(), + deltaHeight: $(e.data.target).outerHeight() - $(e.data.target).height() + }; + $(document).bind('mousedown.resizable', data, doDown); + $(document).bind('mousemove.resizable', data, doMove); + $(document).bind('mouseup.resizable', data, doUp); + $('body').css('cursor', dir+'-resize'); + }); + + // get the resize direction + function getDirection(e) { + var tt = $(e.data.target); + var dir = ''; + var offset = tt.offset(); + var width = tt.outerWidth(); + var height = tt.outerHeight(); + var edge = opts.edge; + if (e.pageY > offset.top && e.pageY < offset.top + edge) { + dir += 'n'; + } else if (e.pageY < offset.top + height && e.pageY > offset.top + height - edge) { + dir += 's'; + } + if (e.pageX > offset.left && e.pageX < offset.left + edge) { + dir += 'w'; + } else if (e.pageX < offset.left + width && e.pageX > offset.left + width - edge) { + dir += 'e'; + } + + var handles = opts.handles.split(','); + for(var i=0; i' + - '
                              ' + - '' + - '' + - '
                              ' + - '
                              ' + - '
                              ' + - '
                              ' + - '' + - '').insertAfter(target); - var t = $(target); - t.addClass('slider-f').hide(); - var name = t.attr('name'); - if (name){ - slider.find('input.slider-value').attr('name', name); - t.removeAttr('name').attr('sliderName', name); - } - slider.bind('_resize', function(e,force){ - if ($(this).hasClass('easyui-fluid') || force){ - setSize(target); - } - return false; - }); - return slider; - } - - /** - * set the slider size, for vertical slider, the height property is required - */ - function setSize(target, param){ - var state = $.data(target, 'slider'); - var opts = state.options; - var slider = state.slider; - - if (param){ - if (param.width) opts.width = param.width; - if (param.height) opts.height = param.height; - } - slider._size(opts); - if (opts.mode == 'h'){ - slider.css('height', ''); - slider.children('div').css('height', ''); - } else { - slider.css('width', ''); - slider.children('div').css('width', ''); - slider.children('div.slider-rule,div.slider-rulelabel,div.slider-inner')._outerHeight(slider._outerHeight()); - } - initValue(target); - } - - /** - * show slider rule if needed - */ - function showRule(target){ - var state = $.data(target, 'slider'); - var opts = state.options; - var slider = state.slider; - - var aa = opts.mode == 'h' ? opts.rule : opts.rule.slice(0).reverse(); - if (opts.reversed){ - aa = aa.slice(0).reverse(); - } - _build(aa); - - function _build(aa){ - var rule = slider.find('div.slider-rule'); - var label = slider.find('div.slider-rulelabel'); - rule.empty(); - label.empty(); - for(var i=0; i').appendTo(rule); - span.css((opts.mode=='h'?'left':'top'), distance); - - // show the labels - if (aa[i] != '|'){ - span = $('').appendTo(label); - span.html(aa[i]); - if (opts.mode == 'h'){ - span.css({ - left: distance, - marginLeft: -Math.round(span.outerWidth()/2) - }); - } else { - span.css({ - top: distance, - marginTop: -Math.round(span.outerHeight()/2) - }); - } - } - } - } - } - - /** - * build the slider and set some properties - */ - function buildSlider(target){ - var state = $.data(target, 'slider'); - var opts = state.options; - var slider = state.slider; - - slider.removeClass('slider-h slider-v slider-disabled'); - slider.addClass(opts.mode == 'h' ? 'slider-h' : 'slider-v'); - slider.addClass(opts.disabled ? 'slider-disabled' : ''); - - var inner = slider.find('.slider-inner'); - inner.html( - '' + - '' - ); - if (opts.range){ - inner.append( - '' + - '' - ); - } - - slider.find('a.slider-handle').draggable({ - axis:opts.mode, - cursor:'pointer', - disabled: opts.disabled, - onDrag:function(e){ - var left = e.data.left; - var width = slider.width(); - if (opts.mode!='h'){ - left = e.data.top; - width = slider.height(); - } - if (left < 0 || left > width) { - return false; - } else { - setPos(left, this); - return false; - } - }, - onStartDrag:function(){ - state.isDragging = true; - opts.onSlideStart.call(target, opts.value); - }, - onStopDrag:function(e){ - setPos(opts.mode=='h'?e.data.left:e.data.top, this); - opts.onSlideEnd.call(target, opts.value); - opts.onComplete.call(target, opts.value); - state.isDragging = false; - } - }); - slider.find('div.slider-inner').unbind('.slider').bind('mousedown.slider', function(e){ - if (state.isDragging || opts.disabled){return} - var pos = $(this).offset(); - setPos(opts.mode=='h'?(e.pageX-pos.left):(e.pageY-pos.top)); - opts.onComplete.call(target, opts.value); - }); - - function setPos(pos, handle){ - var value = pos2value(target, pos); - var s = Math.abs(value % opts.step); - if (s < opts.step/2){ - value -= s; - } else { - value = value - s + opts.step; - } - if (opts.range){ - var v1 = opts.value[0]; - var v2 = opts.value[1]; - var m = parseFloat((v1+v2)/2); - if (handle){ - var isLeft = $(handle).nextAll('.slider-handle').length > 0; - if (value <= v2 && isLeft){ - v1 = value; - } else if (value >= v1 && (!isLeft)){ - v2 = value; - } - } else { - if (value < v1){ - v1 = value; - } else if (value > v2){ - v2 = value; - } else { - value < m ? v1 = value : v2 = value; - } - } - $(target).slider('setValues', [v1,v2]); - } else { - $(target).slider('setValue', value); - } - } - } - - /** - * set a specified value to slider - */ - function setValues(target, values){ - var state = $.data(target, 'slider'); - var opts = state.options; - var slider = state.slider; - var oldValues = $.isArray(opts.value) ? opts.value : [opts.value]; - var newValues = []; - - if (!$.isArray(values)){ - values = $.map(String(values).split(opts.separator), function(v){ - return parseFloat(v); - }); - } - - slider.find('.slider-value').remove(); - var name = $(target).attr('sliderName') || ''; - for(var i=0; i opts.max) value = opts.max; - - var input = $('').appendTo(slider); - input.attr('name', name); - input.val(value); - newValues.push(value); - - var handle = slider.find('.slider-handle:eq('+i+')'); - var tip = handle.next(); - var pos = value2pos(target, value); - if (opts.showTip){ - tip.show(); - tip.html(opts.tipFormatter.call(target, value)); - } else { - tip.hide(); - } - - if (opts.mode == 'h'){ - var style = 'left:'+pos+'px;'; - handle.attr('style', style); - tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth()/2)) + 'px'); - } else { - var style = 'top:' + pos + 'px;'; - handle.attr('style', style); - tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth())) + 'px'); - } - } - opts.value = opts.range ? newValues : newValues[0]; - $(target).val(opts.range ? newValues.join(opts.separator) : newValues[0]); - - if (oldValues.join(',') != newValues.join(',')){ - opts.onChange.call(target, opts.value, (opts.range?oldValues:oldValues[0])); - } - } - - function initValue(target){ - var opts = $.data(target, 'slider').options; - var fn = opts.onChange; - opts.onChange = function(){}; - setValues(target, opts.value); - opts.onChange = fn; - } - - /** - * translate value to slider position - */ - function value2pos(target, value){ - var state = $.data(target, 'slider'); - var opts = state.options; - var slider = state.slider; - var size = opts.mode == 'h' ? slider.width() : slider.height(); - var pos = opts.converter.toPosition.call(target, value, size); - if (opts.mode == 'v'){ - pos = slider.height() - pos; - } - if (opts.reversed){ - pos = size - pos; - } - return pos.toFixed(0); - } - - /** - * translate slider position to value - */ - function pos2value(target, pos){ - var state = $.data(target, 'slider'); - var opts = state.options; - var slider = state.slider; - var size = opts.mode == 'h' ? slider.width() : slider.height(); - var pos = opts.mode=='h' ? (opts.reversed?(size-pos):pos) : (opts.reversed?pos:(size-pos)); - var value = opts.converter.toValue.call(target, pos, size); - return value.toFixed(0); - } - - $.fn.slider = function(options, param){ - if (typeof options == 'string'){ - return $.fn.slider.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'slider'); - if (state){ - $.extend(state.options, options); - } else { - state = $.data(this, 'slider', { - options: $.extend({}, $.fn.slider.defaults, $.fn.slider.parseOptions(this), options), - slider: init(this) - }); - $(this).removeAttr('disabled'); - } - - var opts = state.options; - opts.min = parseFloat(opts.min); - opts.max = parseFloat(opts.max); - if (opts.range){ - if (!$.isArray(opts.value)){ - opts.value = $.map(String(opts.value).split(opts.separator), function(v){ - return parseFloat(v); - }); - } - if (opts.value.length < 2){ - opts.value.push(opts.max); - } - } else { - opts.value = parseFloat(opts.value); - } - opts.step = parseFloat(opts.step); - opts.originalValue = opts.value; - - buildSlider(this); - showRule(this); - setSize(this); - }); - }; - - $.fn.slider.methods = { - options: function(jq){ - return $.data(jq[0], 'slider').options; - }, - destroy: function(jq){ - return jq.each(function(){ - $.data(this, 'slider').slider.remove(); - $(this).remove(); - }); - }, - resize: function(jq, param){ - return jq.each(function(){ - setSize(this, param); - }); - }, - getValue: function(jq){ - return jq.slider('options').value; - }, - getValues: function(jq){ - return jq.slider('options').value; - }, - setValue: function(jq, value){ - return jq.each(function(){ - setValues(this, [value]); - }); - }, - setValues: function(jq, values){ - return jq.each(function(){ - setValues(this, values); - }); - }, - clear: function(jq){ - return jq.each(function(){ - var opts = $(this).slider('options'); - setValues(this, opts.range?[opts.min,opts.max]:[opts.min]); - }); - }, - reset: function(jq){ - return jq.each(function(){ - var opts = $(this).slider('options'); - $(this).slider(opts.range?'setValues':'setValue', opts.originalValue); - }); - }, - enable: function(jq){ - return jq.each(function(){ - $.data(this, 'slider').options.disabled = false; - buildSlider(this); - }); - }, - disable: function(jq){ - return jq.each(function(){ - $.data(this, 'slider').options.disabled = true; - buildSlider(this); - }); - } - }; - - $.fn.slider.parseOptions = function(target){ - var t = $(target); - return $.extend({}, $.parser.parseOptions(target, [ - 'width','height','mode',{reversed:'boolean',showTip:'boolean',range:'boolean',min:'number',max:'number',step:'number'} - ]), { - value: (t.val() || undefined), - disabled: (t.attr('disabled') ? true : undefined), - rule: (t.attr('rule') ? eval(t.attr('rule')) : undefined) - }); - }; - - $.fn.slider.defaults = { - width: 'auto', - height: 'auto', - mode: 'h', // 'h'(horizontal) or 'v'(vertical) - reversed: false, - showTip: false, - disabled: false, - range: false, - value: 0, - separator: ',', - min: 0, - max: 100, - step: 1, - rule: [], // [0,'|',100] - tipFormatter: function(value){return value}, - converter:{ - toPosition:function(value, size){ - var opts = $(this).slider('options'); - return (value-opts.min)/(opts.max-opts.min)*size; - }, - toValue:function(pos, size){ - var opts = $(this).slider('options'); - return opts.min + (opts.max-opts.min)*(pos/size); - } - }, - onChange: function(value, oldValue){}, - onSlideStart: function(value){}, - onSlideEnd: function(value){}, - onComplete: function(value){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * slider - jQuery EasyUI + * + * Dependencies: + * draggable + * + */ +(function($){ + function init(target){ + var slider = $('
                              ' + + '
                              ' + + '' + + '' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '' + + '
                              ').insertAfter(target); + var t = $(target); + t.addClass('slider-f').hide(); + var name = t.attr('name'); + if (name){ + slider.find('input.slider-value').attr('name', name); + t.removeAttr('name').attr('sliderName', name); + } + slider.bind('_resize', function(e,force){ + if ($(this).hasClass('easyui-fluid') || force){ + setSize(target); + } + return false; + }); + return slider; + } + + /** + * set the slider size, for vertical slider, the height property is required + */ + function setSize(target, param){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + if (param){ + if (param.width) opts.width = param.width; + if (param.height) opts.height = param.height; + } + slider._size(opts); + if (opts.mode == 'h'){ + slider.css('height', ''); + slider.children('div').css('height', ''); + } else { + slider.css('width', ''); + slider.children('div').css('width', ''); + slider.children('div.slider-rule,div.slider-rulelabel,div.slider-inner')._outerHeight(slider._outerHeight()); + } + initValue(target); + } + + /** + * show slider rule if needed + */ + function showRule(target){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + var aa = opts.mode == 'h' ? opts.rule : opts.rule.slice(0).reverse(); + if (opts.reversed){ + aa = aa.slice(0).reverse(); + } + _build(aa); + + function _build(aa){ + var rule = slider.find('div.slider-rule'); + var label = slider.find('div.slider-rulelabel'); + rule.empty(); + label.empty(); + for(var i=0; i').appendTo(rule); + span.css((opts.mode=='h'?'left':'top'), distance); + + // show the labels + if (aa[i] != '|'){ + span = $('').appendTo(label); + span.html(aa[i]); + if (opts.mode == 'h'){ + span.css({ + left: distance, + marginLeft: -Math.round(span.outerWidth()/2) + }); + } else { + span.css({ + top: distance, + marginTop: -Math.round(span.outerHeight()/2) + }); + } + } + } + } + } + + /** + * build the slider and set some properties + */ + function buildSlider(target){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + slider.removeClass('slider-h slider-v slider-disabled'); + slider.addClass(opts.mode == 'h' ? 'slider-h' : 'slider-v'); + slider.addClass(opts.disabled ? 'slider-disabled' : ''); + + var inner = slider.find('.slider-inner'); + inner.html( + '' + + '' + ); + if (opts.range){ + inner.append( + '' + + '' + ); + } + + slider.find('a.slider-handle').draggable({ + axis:opts.mode, + cursor:'pointer', + disabled: opts.disabled, + onDrag:function(e){ + var left = e.data.left; + var width = slider.width(); + if (opts.mode!='h'){ + left = e.data.top; + width = slider.height(); + } + if (left < 0 || left > width) { + return false; + } else { + setPos(left, this); + return false; + } + }, + onStartDrag:function(){ + state.isDragging = true; + opts.onSlideStart.call(target, opts.value); + }, + onStopDrag:function(e){ + setPos(opts.mode=='h'?e.data.left:e.data.top, this); + opts.onSlideEnd.call(target, opts.value); + opts.onComplete.call(target, opts.value); + state.isDragging = false; + } + }); + slider.find('div.slider-inner').unbind('.slider').bind('mousedown.slider', function(e){ + if (state.isDragging || opts.disabled){return} + var pos = $(this).offset(); + setPos(opts.mode=='h'?(e.pageX-pos.left):(e.pageY-pos.top)); + opts.onComplete.call(target, opts.value); + }); + + function setPos(pos, handle){ + var value = pos2value(target, pos); + var s = Math.abs(value % opts.step); + if (s < opts.step/2){ + value -= s; + } else { + value = value - s + opts.step; + } + if (opts.range){ + var v1 = opts.value[0]; + var v2 = opts.value[1]; + var m = parseFloat((v1+v2)/2); + if (handle){ + var isLeft = $(handle).nextAll('.slider-handle').length > 0; + if (value <= v2 && isLeft){ + v1 = value; + } else if (value >= v1 && (!isLeft)){ + v2 = value; + } + } else { + if (value < v1){ + v1 = value; + } else if (value > v2){ + v2 = value; + } else { + value < m ? v1 = value : v2 = value; + } + } + $(target).slider('setValues', [v1,v2]); + } else { + $(target).slider('setValue', value); + } + } + } + + /** + * set a specified value to slider + */ + function setValues(target, values){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var oldValues = $.isArray(opts.value) ? opts.value : [opts.value]; + var newValues = []; + + if (!$.isArray(values)){ + values = $.map(String(values).split(opts.separator), function(v){ + return parseFloat(v); + }); + } + + slider.find('.slider-value').remove(); + var name = $(target).attr('sliderName') || ''; + for(var i=0; i opts.max) value = opts.max; + + var input = $('').appendTo(slider); + input.attr('name', name); + input.val(value); + newValues.push(value); + + var handle = slider.find('.slider-handle:eq('+i+')'); + var tip = handle.next(); + var pos = value2pos(target, value); + if (opts.showTip){ + tip.show(); + tip.html(opts.tipFormatter.call(target, value)); + } else { + tip.hide(); + } + + if (opts.mode == 'h'){ + var style = 'left:'+pos+'px;'; + handle.attr('style', style); + tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth()/2)) + 'px'); + } else { + var style = 'top:' + pos + 'px;'; + handle.attr('style', style); + tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth())) + 'px'); + } + } + opts.value = opts.range ? newValues : newValues[0]; + $(target).val(opts.range ? newValues.join(opts.separator) : newValues[0]); + + if (oldValues.join(',') != newValues.join(',')){ + opts.onChange.call(target, opts.value, (opts.range?oldValues:oldValues[0])); + } + } + + function initValue(target){ + var opts = $.data(target, 'slider').options; + var fn = opts.onChange; + opts.onChange = function(){}; + setValues(target, opts.value); + opts.onChange = fn; + } + + /** + * translate value to slider position + */ + function value2pos(target, value){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var size = opts.mode == 'h' ? slider.width() : slider.height(); + var pos = opts.converter.toPosition.call(target, value, size); + if (opts.mode == 'v'){ + pos = slider.height() - pos; + } + if (opts.reversed){ + pos = size - pos; + } + return pos.toFixed(0); + } + + /** + * translate slider position to value + */ + function pos2value(target, pos){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var size = opts.mode == 'h' ? slider.width() : slider.height(); + var pos = opts.mode=='h' ? (opts.reversed?(size-pos):pos) : (opts.reversed?pos:(size-pos)); + var value = opts.converter.toValue.call(target, pos, size); + return value.toFixed(0); + } + + $.fn.slider = function(options, param){ + if (typeof options == 'string'){ + return $.fn.slider.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'slider'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'slider', { + options: $.extend({}, $.fn.slider.defaults, $.fn.slider.parseOptions(this), options), + slider: init(this) + }); + $(this).removeAttr('disabled'); + } + + var opts = state.options; + opts.min = parseFloat(opts.min); + opts.max = parseFloat(opts.max); + if (opts.range){ + if (!$.isArray(opts.value)){ + opts.value = $.map(String(opts.value).split(opts.separator), function(v){ + return parseFloat(v); + }); + } + if (opts.value.length < 2){ + opts.value.push(opts.max); + } + } else { + opts.value = parseFloat(opts.value); + } + opts.step = parseFloat(opts.step); + opts.originalValue = opts.value; + + buildSlider(this); + showRule(this); + setSize(this); + }); + }; + + $.fn.slider.methods = { + options: function(jq){ + return $.data(jq[0], 'slider').options; + }, + destroy: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').slider.remove(); + $(this).remove(); + }); + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + getValue: function(jq){ + return jq.slider('options').value; + }, + getValues: function(jq){ + return jq.slider('options').value; + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValues(this, [value]); + }); + }, + setValues: function(jq, values){ + return jq.each(function(){ + setValues(this, values); + }); + }, + clear: function(jq){ + return jq.each(function(){ + var opts = $(this).slider('options'); + setValues(this, opts.range?[opts.min,opts.max]:[opts.min]); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).slider('options'); + $(this).slider(opts.range?'setValues':'setValue', opts.originalValue); + }); + }, + enable: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').options.disabled = false; + buildSlider(this); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').options.disabled = true; + buildSlider(this); + }); + } + }; + + $.fn.slider.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height','mode',{reversed:'boolean',showTip:'boolean',range:'boolean',min:'number',max:'number',step:'number'} + ]), { + value: (t.val() || undefined), + disabled: (t.attr('disabled') ? true : undefined), + rule: (t.attr('rule') ? eval(t.attr('rule')) : undefined) + }); + }; + + $.fn.slider.defaults = { + width: 'auto', + height: 'auto', + mode: 'h', // 'h'(horizontal) or 'v'(vertical) + reversed: false, + showTip: false, + disabled: false, + range: false, + value: 0, + separator: ',', + min: 0, + max: 100, + step: 1, + rule: [], // [0,'|',100] + tipFormatter: function(value){return value}, + converter:{ + toPosition:function(value, size){ + var opts = $(this).slider('options'); + return (value-opts.min)/(opts.max-opts.min)*size; + }, + toValue:function(pos, size){ + var opts = $(this).slider('options'); + return opts.min + (opts.max-opts.min)*(pos/size); + } + }, + onChange: function(value, oldValue){}, + onSlideStart: function(value){}, + onSlideEnd: function(value){}, + onComplete: function(value){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.tabs.js b/vendor/FHC-vendor/easyui/src/jquery.tabs.js similarity index 96% rename from vendor/easyui/src/jquery.tabs.js rename to vendor/FHC-vendor/easyui/src/jquery.tabs.js index 45b0e15e4..dc5705007 100644 --- a/vendor/easyui/src/jquery.tabs.js +++ b/vendor/FHC-vendor/easyui/src/jquery.tabs.js @@ -1,884 +1,884 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * tabs - jQuery EasyUI - * - * Dependencies: - * panel - * linkbutton - * - */ -(function($){ - function getContentWidth(c){ - var w = 0; - $(c).children().each(function(){ - w += $(this).outerWidth(true); - }); - return w; - } - /** - * set the tabs scrollers to show or not, - * dependent on the tabs count and width - */ - function setScrollers(container) { - var opts = $.data(container, 'tabs').options; - if (opts.tabPosition == 'left' || opts.tabPosition == 'right' || !opts.showHeader){return} - - var header = $(container).children('div.tabs-header'); - var tool = header.children('div.tabs-tool:not(.tabs-tool-hidden)'); - var sLeft = header.children('div.tabs-scroller-left'); - var sRight = header.children('div.tabs-scroller-right'); - var wrap = header.children('div.tabs-wrap'); - - // set the tool height - var tHeight = header.outerHeight(); - if (opts.plain){ - tHeight -= tHeight - header.height(); - } - tool._outerHeight(tHeight); - - var tabsWidth = getContentWidth(header.find('ul.tabs')); - var cWidth = header.width() - tool._outerWidth(); - - if (tabsWidth > cWidth) { - sLeft.add(sRight).show()._outerHeight(tHeight); - if (opts.toolPosition == 'left'){ - tool.css({ - left: sLeft.outerWidth(), - right: '' - }); - wrap.css({ - marginLeft: sLeft.outerWidth() + tool._outerWidth(), - marginRight: sRight._outerWidth(), - width: cWidth - sLeft.outerWidth() - sRight.outerWidth() - }); - } else { - tool.css({ - left: '', - right: sRight.outerWidth() - }); - wrap.css({ - marginLeft: sLeft.outerWidth(), - marginRight: sRight.outerWidth() + tool._outerWidth(), - width: cWidth - sLeft.outerWidth() - sRight.outerWidth() - }); - } - } else { - sLeft.add(sRight).hide(); - if (opts.toolPosition == 'left'){ - tool.css({ - left: 0, - right: '' - }); - wrap.css({ - marginLeft: tool._outerWidth(), - marginRight: 0, - width: cWidth - }); - } else { - tool.css({ - left: '', - right: 0 - }); - wrap.css({ - marginLeft: 0, - marginRight: tool._outerWidth(), - width: cWidth - }); - } - } - } - - function addTools(container){ - var opts = $.data(container, 'tabs').options; - var header = $(container).children('div.tabs-header'); - if (opts.tools) { - if (typeof opts.tools == 'string'){ - $(opts.tools).addClass('tabs-tool').appendTo(header); - $(opts.tools).show(); - } else { - header.children('div.tabs-tool').remove(); - var tools = $('
                              ').appendTo(header); - var tr = tools.find('tr'); - for(var i=0; i').appendTo(tr); - var tool = $('').appendTo(td); - tool[0].onclick = eval(opts.tools[i].handler || function(){}); - tool.linkbutton($.extend({}, opts.tools[i], { - plain: true - })); - } - } - } else { - header.children('div.tabs-tool').remove(); - } - } - - function setSize(container, param) { - var state = $.data(container, 'tabs'); - var opts = state.options; - var cc = $(container); - - if (!opts.doSize){return} - if (param){ - $.extend(opts, { - width: param.width, - height: param.height - }); - } - cc._size(opts); - - var header = cc.children('div.tabs-header'); - var panels = cc.children('div.tabs-panels'); - var wrap = header.find('div.tabs-wrap'); - var ul = wrap.find('.tabs'); - ul.children('li').removeClass('tabs-first tabs-last'); - ul.children('li:first').addClass('tabs-first'); - ul.children('li:last').addClass('tabs-last'); - - if (opts.tabPosition == 'left' || opts.tabPosition == 'right'){ - header._outerWidth(opts.showHeader ? opts.headerWidth : 0); - panels._outerWidth(cc.width() - header.outerWidth()); - header.add(panels)._size('height', isNaN(parseInt(opts.height)) ? '' : cc.height()); - wrap._outerWidth(header.width()); - ul._outerWidth(wrap.width()).css('height',''); - } else { - header.children('div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool:not(.tabs-tool-hidden)').css('display', opts.showHeader?'block':'none'); - header._outerWidth(cc.width()).css('height',''); - if (opts.showHeader){ - header.css('background-color',''); - wrap.css('height',''); - } else { - header.css('background-color','transparent'); - header._outerHeight(0); - wrap._outerHeight(0); - } - ul._outerHeight(opts.tabHeight).css('width',''); - ul._outerHeight(ul.outerHeight()-ul.height()-1+opts.tabHeight).css('width',''); - - panels._size('height', isNaN(parseInt(opts.height)) ? '' : (cc.height()-header.outerHeight())); - panels._size('width', cc.width()); - } - - if (state.tabs.length){ - var d1 = ul.outerWidth(true) - ul.width(); - var li = ul.children('li:first'); - var d2 = li.outerWidth(true) - li.width(); - var hwidth = header.width() - header.children('.tabs-tool:not(.tabs-tool-hidden)')._outerWidth(); - var justifiedWidth = Math.floor((hwidth-d1-d2*state.tabs.length)/state.tabs.length); - - $.map(state.tabs, function(p){ - setTabSize(p, (opts.justified && $.inArray(opts.tabPosition,['top','bottom'])>=0) ? justifiedWidth : undefined); - }); - if (opts.justified && $.inArray(opts.tabPosition,['top','bottom'])>=0){ - var deltaWidth = hwidth - d1 - getContentWidth(ul); - setTabSize(state.tabs[state.tabs.length-1], justifiedWidth+deltaWidth); - } - } - setScrollers(container); - - function setTabSize(p, width){ - var p_opts = p.panel('options'); - var p_t = p_opts.tab.find('a.tabs-inner'); - var width = width ? width : (parseInt(p_opts.tabWidth||opts.tabWidth||undefined)); - if (width){ - p_t._outerWidth(width); - } else { - p_t.css('width', ''); - } - p_t._outerHeight(opts.tabHeight); - p_t.css('lineHeight', p_t.height()+'px'); - p_t.find('.easyui-fluid:visible').triggerHandler('_resize'); - } - } - - /** - * set selected tab panel size - */ - function setSelectedSize(container){ - var opts = $.data(container, 'tabs').options; - var tab = getSelectedTab(container); - if (tab){ - var panels = $(container).children('div.tabs-panels'); - var width = opts.width=='auto' ? 'auto' : panels.width(); - var height = opts.height=='auto' ? 'auto' : panels.height(); - tab.panel('resize', { - width: width, - height: height - }); - } - } - - /** - * wrap the tabs header and body - */ - function wrapTabs(container) { - var tabs = $.data(container, 'tabs').tabs; - var cc = $(container).addClass('tabs-container'); - var panels = $('
                              ').insertBefore(cc); - cc.children('div').each(function(){ - panels[0].appendChild(this); - }); - cc[0].appendChild(panels[0]); - $('
                              ' - + '
                              ' - + '
                              ' - + '
                              ' - + '
                                ' - + '
                                ' - + '
                                ').prependTo(container); - - cc.children('div.tabs-panels').children('div').each(function(i){ - var opts = $.extend({}, $.parser.parseOptions(this), { - disabled: ($(this).attr('disabled') ? true : undefined), - selected: ($(this).attr('selected') ? true : undefined) - }); - createTab(container, opts, $(this)); - }); - - cc.children('div.tabs-header').find('.tabs-scroller-left, .tabs-scroller-right').hover( - function(){$(this).addClass('tabs-scroller-over');}, - function(){$(this).removeClass('tabs-scroller-over');} - ); - cc.bind('_resize', function(e,force){ - if ($(this).hasClass('easyui-fluid') || force){ - setSize(container); - setSelectedSize(container); - } - return false; - }); - } - - function bindEvents(container){ - var state = $.data(container, 'tabs') - var opts = state.options; - $(container).children('div.tabs-header').unbind().bind('click', function(e){ - if ($(e.target).hasClass('tabs-scroller-left')){ - $(container).tabs('scrollBy', -opts.scrollIncrement); - } else if ($(e.target).hasClass('tabs-scroller-right')){ - $(container).tabs('scrollBy', opts.scrollIncrement); - } else { - var li = $(e.target).closest('li'); - if (li.hasClass('tabs-disabled')){return false;} - var a = $(e.target).closest('a.tabs-close'); - if (a.length){ - closeTab(container, getLiIndex(li)); - } else if (li.length){ -// selectTab(container, getLiIndex(li)); - var index = getLiIndex(li); - var popts = state.tabs[index].panel('options'); - if (popts.collapsible){ - popts.closed ? selectTab(container, index) : unselectTab(container, index); - } else { - selectTab(container, index); - } - } - return false; - } - }).bind('contextmenu', function(e){ - var li = $(e.target).closest('li'); - if (li.hasClass('tabs-disabled')){return;} - if (li.length){ - opts.onContextMenu.call(container, e, li.find('span.tabs-title').html(), getLiIndex(li)); - } - }); - - function getLiIndex(li){ - var index = 0; - li.parent().children('li').each(function(i){ - if (li[0] == this){ - index = i; - return false; - } - }); - return index; - } - } - - function setProperties(container){ - var opts = $.data(container, 'tabs').options; - var header = $(container).children('div.tabs-header'); - var panels = $(container).children('div.tabs-panels'); - - header.removeClass('tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right'); - panels.removeClass('tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right'); - if (opts.tabPosition == 'top'){ - header.insertBefore(panels); - } else if (opts.tabPosition == 'bottom'){ - header.insertAfter(panels); - header.addClass('tabs-header-bottom'); - panels.addClass('tabs-panels-top'); - } else if (opts.tabPosition == 'left'){ - header.addClass('tabs-header-left'); - panels.addClass('tabs-panels-right'); - } else if (opts.tabPosition == 'right'){ - header.addClass('tabs-header-right'); - panels.addClass('tabs-panels-left'); - } - - if (opts.plain == true) { - header.addClass('tabs-header-plain'); - } else { - header.removeClass('tabs-header-plain'); - } - header.removeClass('tabs-header-narrow').addClass(opts.narrow?'tabs-header-narrow':''); - var tabs = header.find('.tabs'); - tabs.removeClass('tabs-pill').addClass(opts.pill?'tabs-pill':''); - tabs.removeClass('tabs-narrow').addClass(opts.narrow?'tabs-narrow':''); - tabs.removeClass('tabs-justified').addClass(opts.justified?'tabs-justified':''); - if (opts.border == true){ - header.removeClass('tabs-header-noborder'); - panels.removeClass('tabs-panels-noborder'); - } else { - header.addClass('tabs-header-noborder'); - panels.addClass('tabs-panels-noborder'); - } - opts.doSize = true; - } - - function createTab(container, options, pp) { - options = options || {}; - var state = $.data(container, 'tabs'); - var tabs = state.tabs; - if (options.index == undefined || options.index > tabs.length){options.index = tabs.length} - if (options.index < 0){options.index = 0} - - var ul = $(container).children('div.tabs-header').find('ul.tabs'); - var panels = $(container).children('div.tabs-panels'); - var tab = $( - '
                              • ' + - '' + - '' + - '' + - '' + - '
                              • '); - if (!pp){pp = $('
                                ');} - if (options.index >= tabs.length){ - tab.appendTo(ul); - pp.appendTo(panels); - tabs.push(pp); - } else { - tab.insertBefore(ul.children('li:eq('+options.index+')')); - pp.insertBefore(panels.children('div.panel:eq('+options.index+')')); - tabs.splice(options.index, 0, pp); - } - - // create panel - pp.panel($.extend({}, options, { - tab: tab, - border: false, - noheader: true, - closed: true, - doSize: false, - iconCls: (options.icon ? options.icon : undefined), - onLoad: function(){ - if (options.onLoad){ - options.onLoad.call(this, arguments); - } - state.options.onLoad.call(container, $(this)); - }, - onBeforeOpen: function(){ - if (options.onBeforeOpen){ - if (options.onBeforeOpen.call(this) == false){return false;} - } - var p = $(container).tabs('getSelected'); - if (p){ - if (p[0] != this){ - $(container).tabs('unselect', getTabIndex(container, p)); - p = $(container).tabs('getSelected'); - if (p){ - return false; - } - } else { - setSelectedSize(container); - return false; - } - } - - var popts = $(this).panel('options'); - popts.tab.addClass('tabs-selected'); - // scroll the tab to center position if required. - var wrap = $(container).find('>div.tabs-header>div.tabs-wrap'); - var left = popts.tab.position().left; - var right = left + popts.tab.outerWidth(); - if (left < 0 || right > wrap.width()){ - var deltaX = left - (wrap.width()-popts.tab.width()) / 2; - $(container).tabs('scrollBy', deltaX); - } else { - $(container).tabs('scrollBy', 0); - } - - var panel = $(this).panel('panel'); - panel.css('display','block'); - setSelectedSize(container); - panel.css('display','none'); - }, - onOpen: function(){ - if (options.onOpen){ - options.onOpen.call(this); - } - var popts = $(this).panel('options'); - state.selectHis.push(popts.title); - state.options.onSelect.call(container, popts.title, getTabIndex(container, this)); - }, - onBeforeClose: function(){ - if (options.onBeforeClose){ - if (options.onBeforeClose.call(this) == false){return false;} - } - $(this).panel('options').tab.removeClass('tabs-selected'); - }, - onClose: function(){ - if (options.onClose){ - options.onClose.call(this); - } - var popts = $(this).panel('options'); - state.options.onUnselect.call(container, popts.title, getTabIndex(container, this)); - } - })); - - // only update the tab header - $(container).tabs('update', { - tab: pp, - options: pp.panel('options'), - type: 'header' - }); - } - - function addTab(container, options) { - var state = $.data(container, 'tabs'); - var opts = state.options; - if (options.selected == undefined) options.selected = true; - - createTab(container, options); - opts.onAdd.call(container, options.title, options.index); - if (options.selected){ - selectTab(container, options.index); // select the added tab panel - } - } - - /** - * update tab panel, param has following properties: - * tab: the tab panel to be updated - * options: the tab panel options - * type: the update type, possible values are: 'header','body','all' - */ - function updateTab(container, param){ - param.type = param.type || 'all'; - var selectHis = $.data(container, 'tabs').selectHis; - var pp = param.tab; // the tab panel - var opts = pp.panel('options'); // get the tab panel options - var oldTitle = opts.title; - $.extend(opts, param.options, { - iconCls: (param.options.icon ? param.options.icon : undefined) - }); - - if (param.type == 'all' || param.type == 'body'){ - pp.panel(); - } - if (param.type == 'all' || param.type == 'header'){ - var tab = opts.tab; - - if (opts.header){ - tab.find('.tabs-inner').html($(opts.header)); - } else { - var s_title = tab.find('span.tabs-title'); - var s_icon = tab.find('span.tabs-icon'); - s_title.html(opts.title); - s_icon.attr('class', 'tabs-icon'); - - tab.find('a.tabs-close').remove(); - if (opts.closable){ - s_title.addClass('tabs-closable'); - $('').appendTo(tab); - } else{ - s_title.removeClass('tabs-closable'); - } - if (opts.iconCls){ - s_title.addClass('tabs-with-icon'); - s_icon.addClass(opts.iconCls); - } else { - s_title.removeClass('tabs-with-icon'); - } - if (opts.tools){ - var p_tool = tab.find('span.tabs-p-tool'); - if (!p_tool.length){ - var p_tool = $('').insertAfter(tab.find('a.tabs-inner')); - } - if ($.isArray(opts.tools)){ - p_tool.empty(); - for(var i=0; i').appendTo(p_tool); - t.addClass(opts.tools[i].iconCls); - if (opts.tools[i].handler){ - t.bind('click', {handler:opts.tools[i].handler}, function(e){ - if ($(this).parents('li').hasClass('tabs-disabled')){return;} - e.data.handler.call(this); - }); - } - } - } else { - $(opts.tools).children().appendTo(p_tool); - } - var pr = p_tool.children().length * 12; - if (opts.closable) { - pr += 8; - } else { - pr -= 3; - p_tool.css('right','5px'); - } - s_title.css('padding-right', pr+'px'); - } else { - tab.find('span.tabs-p-tool').remove(); - s_title.css('padding-right', ''); - } - } - if (oldTitle != opts.title){ - for(var i=0; i= tabs.length){ - return null; - } else { - var tab = tabs[which]; - if (removeit) { - tabs.splice(which, 1); - } - return tab; - } - } - for(var i=0; i.tabs-header>.tabs-tool'); - if (visible){ - tool.removeClass('tabs-tool-hidden').show(); - } else { - tool.addClass('tabs-tool-hidden').hide(); - } - $(container).tabs('resize').tabs('scrollBy', 0); - } - - - $.fn.tabs = function(options, param){ - if (typeof options == 'string') { - return $.fn.tabs.methods[options](this, param); - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'tabs'); - if (state) { - $.extend(state.options, options); - } else { - $.data(this, 'tabs', { - options: $.extend({},$.fn.tabs.defaults, $.fn.tabs.parseOptions(this), options), - tabs: [], - selectHis: [] - }); - wrapTabs(this); - } - - addTools(this); - setProperties(this); - setSize(this); - bindEvents(this); - - doFirstSelect(this); - }); - }; - - $.fn.tabs.methods = { - options: function(jq){ - var cc = jq[0]; - var opts = $.data(cc, 'tabs').options; - var s = getSelectedTab(cc); - opts.selected = s ? getTabIndex(cc, s) : -1; - return opts; - }, - tabs: function(jq){ - return $.data(jq[0], 'tabs').tabs; - }, - resize: function(jq, param){ - return jq.each(function(){ - setSize(this, param); - setSelectedSize(this); - }); - }, - add: function(jq, options){ - return jq.each(function(){ - addTab(this, options); - }); - }, - close: function(jq, which){ - return jq.each(function(){ - closeTab(this, which); - }); - }, - getTab: function(jq, which){ - return getTab(jq[0], which); - }, - getTabIndex: function(jq, tab){ - return getTabIndex(jq[0], tab); - }, - getSelected: function(jq){ - return getSelectedTab(jq[0]); - }, - select: function(jq, which){ - return jq.each(function(){ - selectTab(this, which); - }); - }, - unselect: function(jq, which){ - return jq.each(function(){ - unselectTab(this, which); - }); - }, - exists: function(jq, which){ - return exists(jq[0], which); - }, - update: function(jq, options){ - return jq.each(function(){ - updateTab(this, options); - }); - }, - enableTab: function(jq, which){ - return jq.each(function(){ - var opts = $(this).tabs('getTab', which).panel('options'); - opts.tab.removeClass('tabs-disabled'); - opts.disabled = false; - }); - }, - disableTab: function(jq, which){ - return jq.each(function(){ - var opts = $(this).tabs('getTab', which).panel('options'); - opts.tab.addClass('tabs-disabled'); - opts.disabled = true; - }); - }, - showHeader: function(jq){ - return jq.each(function(){ - showHeader(this, true); - }); - }, - hideHeader: function(jq){ - return jq.each(function(){ - showHeader(this, false); - }); - }, - showTool: function(jq){ - return jq.each(function(){ - showTool(this, true); - }); - }, - hideTool: function(jq){ - return jq.each(function(){ - showTool(this, false); - }); - }, - scrollBy: function(jq, deltaX){ // scroll the tab header by the specified amount of pixels - return jq.each(function(){ - var opts = $(this).tabs('options'); - var wrap = $(this).find('>div.tabs-header>div.tabs-wrap'); - var pos = Math.min(wrap._scrollLeft() + deltaX, getMaxScrollWidth()); - wrap.animate({scrollLeft: pos}, opts.scrollDuration); - - function getMaxScrollWidth(){ - var w = 0; - var ul = wrap.children('ul'); - ul.children('li').each(function(){ - w += $(this).outerWidth(true); - }); - return w - wrap.width() + (ul.outerWidth() - ul.width()); - } - }); - } - }; - - $.fn.tabs.parseOptions = function(target){ - return $.extend({}, $.parser.parseOptions(target, [ - 'tools','toolPosition','tabPosition', - {fit:'boolean',border:'boolean',plain:'boolean'}, - {headerWidth:'number',tabWidth:'number',tabHeight:'number',selected:'number'}, - {showHeader:'boolean',justified:'boolean',narrow:'boolean',pill:'boolean'} - ])); - }; - - $.fn.tabs.defaults = { - width: 'auto', - height: 'auto', - headerWidth: 150, // the tab header width, it is valid only when tabPosition set to 'left' or 'right' - tabWidth: 'auto', // the tab width - tabHeight: 27, // the tab height - selected: 0, // the initialized selected tab index - showHeader: true, - plain: false, - fit: false, - border: true, - justified: false, - narrow: false, - pill: false, - tools: null, - toolPosition: 'right', // left,right - tabPosition: 'top', // possible values: top,bottom - scrollIncrement: 100, - scrollDuration: 400, - onLoad: function(panel){}, - onSelect: function(title, index){}, - onUnselect: function(title, index){}, - onBeforeClose: function(title, index){}, - onClose: function(title, index){}, - onAdd: function(title, index){}, - onUpdate: function(title, index){}, - onContextMenu: function(e, title, index){} - }; -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * tabs - jQuery EasyUI + * + * Dependencies: + * panel + * linkbutton + * + */ +(function($){ + function getContentWidth(c){ + var w = 0; + $(c).children().each(function(){ + w += $(this).outerWidth(true); + }); + return w; + } + /** + * set the tabs scrollers to show or not, + * dependent on the tabs count and width + */ + function setScrollers(container) { + var opts = $.data(container, 'tabs').options; + if (opts.tabPosition == 'left' || opts.tabPosition == 'right' || !opts.showHeader){return} + + var header = $(container).children('div.tabs-header'); + var tool = header.children('div.tabs-tool:not(.tabs-tool-hidden)'); + var sLeft = header.children('div.tabs-scroller-left'); + var sRight = header.children('div.tabs-scroller-right'); + var wrap = header.children('div.tabs-wrap'); + + // set the tool height + var tHeight = header.outerHeight(); + if (opts.plain){ + tHeight -= tHeight - header.height(); + } + tool._outerHeight(tHeight); + + var tabsWidth = getContentWidth(header.find('ul.tabs')); + var cWidth = header.width() - tool._outerWidth(); + + if (tabsWidth > cWidth) { + sLeft.add(sRight).show()._outerHeight(tHeight); + if (opts.toolPosition == 'left'){ + tool.css({ + left: sLeft.outerWidth(), + right: '' + }); + wrap.css({ + marginLeft: sLeft.outerWidth() + tool._outerWidth(), + marginRight: sRight._outerWidth(), + width: cWidth - sLeft.outerWidth() - sRight.outerWidth() + }); + } else { + tool.css({ + left: '', + right: sRight.outerWidth() + }); + wrap.css({ + marginLeft: sLeft.outerWidth(), + marginRight: sRight.outerWidth() + tool._outerWidth(), + width: cWidth - sLeft.outerWidth() - sRight.outerWidth() + }); + } + } else { + sLeft.add(sRight).hide(); + if (opts.toolPosition == 'left'){ + tool.css({ + left: 0, + right: '' + }); + wrap.css({ + marginLeft: tool._outerWidth(), + marginRight: 0, + width: cWidth + }); + } else { + tool.css({ + left: '', + right: 0 + }); + wrap.css({ + marginLeft: 0, + marginRight: tool._outerWidth(), + width: cWidth + }); + } + } + } + + function addTools(container){ + var opts = $.data(container, 'tabs').options; + var header = $(container).children('div.tabs-header'); + if (opts.tools) { + if (typeof opts.tools == 'string'){ + $(opts.tools).addClass('tabs-tool').appendTo(header); + $(opts.tools).show(); + } else { + header.children('div.tabs-tool').remove(); + var tools = $('
                                ').appendTo(header); + var tr = tools.find('tr'); + for(var i=0; i').appendTo(tr); + var tool = $('').appendTo(td); + tool[0].onclick = eval(opts.tools[i].handler || function(){}); + tool.linkbutton($.extend({}, opts.tools[i], { + plain: true + })); + } + } + } else { + header.children('div.tabs-tool').remove(); + } + } + + function setSize(container, param) { + var state = $.data(container, 'tabs'); + var opts = state.options; + var cc = $(container); + + if (!opts.doSize){return} + if (param){ + $.extend(opts, { + width: param.width, + height: param.height + }); + } + cc._size(opts); + + var header = cc.children('div.tabs-header'); + var panels = cc.children('div.tabs-panels'); + var wrap = header.find('div.tabs-wrap'); + var ul = wrap.find('.tabs'); + ul.children('li').removeClass('tabs-first tabs-last'); + ul.children('li:first').addClass('tabs-first'); + ul.children('li:last').addClass('tabs-last'); + + if (opts.tabPosition == 'left' || opts.tabPosition == 'right'){ + header._outerWidth(opts.showHeader ? opts.headerWidth : 0); + panels._outerWidth(cc.width() - header.outerWidth()); + header.add(panels)._size('height', isNaN(parseInt(opts.height)) ? '' : cc.height()); + wrap._outerWidth(header.width()); + ul._outerWidth(wrap.width()).css('height',''); + } else { + header.children('div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool:not(.tabs-tool-hidden)').css('display', opts.showHeader?'block':'none'); + header._outerWidth(cc.width()).css('height',''); + if (opts.showHeader){ + header.css('background-color',''); + wrap.css('height',''); + } else { + header.css('background-color','transparent'); + header._outerHeight(0); + wrap._outerHeight(0); + } + ul._outerHeight(opts.tabHeight).css('width',''); + ul._outerHeight(ul.outerHeight()-ul.height()-1+opts.tabHeight).css('width',''); + + panels._size('height', isNaN(parseInt(opts.height)) ? '' : (cc.height()-header.outerHeight())); + panels._size('width', cc.width()); + } + + if (state.tabs.length){ + var d1 = ul.outerWidth(true) - ul.width(); + var li = ul.children('li:first'); + var d2 = li.outerWidth(true) - li.width(); + var hwidth = header.width() - header.children('.tabs-tool:not(.tabs-tool-hidden)')._outerWidth(); + var justifiedWidth = Math.floor((hwidth-d1-d2*state.tabs.length)/state.tabs.length); + + $.map(state.tabs, function(p){ + setTabSize(p, (opts.justified && $.inArray(opts.tabPosition,['top','bottom'])>=0) ? justifiedWidth : undefined); + }); + if (opts.justified && $.inArray(opts.tabPosition,['top','bottom'])>=0){ + var deltaWidth = hwidth - d1 - getContentWidth(ul); + setTabSize(state.tabs[state.tabs.length-1], justifiedWidth+deltaWidth); + } + } + setScrollers(container); + + function setTabSize(p, width){ + var p_opts = p.panel('options'); + var p_t = p_opts.tab.find('a.tabs-inner'); + var width = width ? width : (parseInt(p_opts.tabWidth||opts.tabWidth||undefined)); + if (width){ + p_t._outerWidth(width); + } else { + p_t.css('width', ''); + } + p_t._outerHeight(opts.tabHeight); + p_t.css('lineHeight', p_t.height()+'px'); + p_t.find('.easyui-fluid:visible').triggerHandler('_resize'); + } + } + + /** + * set selected tab panel size + */ + function setSelectedSize(container){ + var opts = $.data(container, 'tabs').options; + var tab = getSelectedTab(container); + if (tab){ + var panels = $(container).children('div.tabs-panels'); + var width = opts.width=='auto' ? 'auto' : panels.width(); + var height = opts.height=='auto' ? 'auto' : panels.height(); + tab.panel('resize', { + width: width, + height: height + }); + } + } + + /** + * wrap the tabs header and body + */ + function wrapTabs(container) { + var tabs = $.data(container, 'tabs').tabs; + var cc = $(container).addClass('tabs-container'); + var panels = $('
                                ').insertBefore(cc); + cc.children('div').each(function(){ + panels[0].appendChild(this); + }); + cc[0].appendChild(panels[0]); + $('
                                ' + + '
                                ' + + '
                                ' + + '
                                ' + + '
                                  ' + + '
                                  ' + + '
                                  ').prependTo(container); + + cc.children('div.tabs-panels').children('div').each(function(i){ + var opts = $.extend({}, $.parser.parseOptions(this), { + disabled: ($(this).attr('disabled') ? true : undefined), + selected: ($(this).attr('selected') ? true : undefined) + }); + createTab(container, opts, $(this)); + }); + + cc.children('div.tabs-header').find('.tabs-scroller-left, .tabs-scroller-right').hover( + function(){$(this).addClass('tabs-scroller-over');}, + function(){$(this).removeClass('tabs-scroller-over');} + ); + cc.bind('_resize', function(e,force){ + if ($(this).hasClass('easyui-fluid') || force){ + setSize(container); + setSelectedSize(container); + } + return false; + }); + } + + function bindEvents(container){ + var state = $.data(container, 'tabs') + var opts = state.options; + $(container).children('div.tabs-header').unbind().bind('click', function(e){ + if ($(e.target).hasClass('tabs-scroller-left')){ + $(container).tabs('scrollBy', -opts.scrollIncrement); + } else if ($(e.target).hasClass('tabs-scroller-right')){ + $(container).tabs('scrollBy', opts.scrollIncrement); + } else { + var li = $(e.target).closest('li'); + if (li.hasClass('tabs-disabled')){return false;} + var a = $(e.target).closest('a.tabs-close'); + if (a.length){ + closeTab(container, getLiIndex(li)); + } else if (li.length){ +// selectTab(container, getLiIndex(li)); + var index = getLiIndex(li); + var popts = state.tabs[index].panel('options'); + if (popts.collapsible){ + popts.closed ? selectTab(container, index) : unselectTab(container, index); + } else { + selectTab(container, index); + } + } + return false; + } + }).bind('contextmenu', function(e){ + var li = $(e.target).closest('li'); + if (li.hasClass('tabs-disabled')){return;} + if (li.length){ + opts.onContextMenu.call(container, e, li.find('span.tabs-title').html(), getLiIndex(li)); + } + }); + + function getLiIndex(li){ + var index = 0; + li.parent().children('li').each(function(i){ + if (li[0] == this){ + index = i; + return false; + } + }); + return index; + } + } + + function setProperties(container){ + var opts = $.data(container, 'tabs').options; + var header = $(container).children('div.tabs-header'); + var panels = $(container).children('div.tabs-panels'); + + header.removeClass('tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right'); + panels.removeClass('tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right'); + if (opts.tabPosition == 'top'){ + header.insertBefore(panels); + } else if (opts.tabPosition == 'bottom'){ + header.insertAfter(panels); + header.addClass('tabs-header-bottom'); + panels.addClass('tabs-panels-top'); + } else if (opts.tabPosition == 'left'){ + header.addClass('tabs-header-left'); + panels.addClass('tabs-panels-right'); + } else if (opts.tabPosition == 'right'){ + header.addClass('tabs-header-right'); + panels.addClass('tabs-panels-left'); + } + + if (opts.plain == true) { + header.addClass('tabs-header-plain'); + } else { + header.removeClass('tabs-header-plain'); + } + header.removeClass('tabs-header-narrow').addClass(opts.narrow?'tabs-header-narrow':''); + var tabs = header.find('.tabs'); + tabs.removeClass('tabs-pill').addClass(opts.pill?'tabs-pill':''); + tabs.removeClass('tabs-narrow').addClass(opts.narrow?'tabs-narrow':''); + tabs.removeClass('tabs-justified').addClass(opts.justified?'tabs-justified':''); + if (opts.border == true){ + header.removeClass('tabs-header-noborder'); + panels.removeClass('tabs-panels-noborder'); + } else { + header.addClass('tabs-header-noborder'); + panels.addClass('tabs-panels-noborder'); + } + opts.doSize = true; + } + + function createTab(container, options, pp) { + options = options || {}; + var state = $.data(container, 'tabs'); + var tabs = state.tabs; + if (options.index == undefined || options.index > tabs.length){options.index = tabs.length} + if (options.index < 0){options.index = 0} + + var ul = $(container).children('div.tabs-header').find('ul.tabs'); + var panels = $(container).children('div.tabs-panels'); + var tab = $( + '
                                • ' + + '' + + '' + + '' + + '' + + '
                                • '); + if (!pp){pp = $('
                                  ');} + if (options.index >= tabs.length){ + tab.appendTo(ul); + pp.appendTo(panels); + tabs.push(pp); + } else { + tab.insertBefore(ul.children('li:eq('+options.index+')')); + pp.insertBefore(panels.children('div.panel:eq('+options.index+')')); + tabs.splice(options.index, 0, pp); + } + + // create panel + pp.panel($.extend({}, options, { + tab: tab, + border: false, + noheader: true, + closed: true, + doSize: false, + iconCls: (options.icon ? options.icon : undefined), + onLoad: function(){ + if (options.onLoad){ + options.onLoad.call(this, arguments); + } + state.options.onLoad.call(container, $(this)); + }, + onBeforeOpen: function(){ + if (options.onBeforeOpen){ + if (options.onBeforeOpen.call(this) == false){return false;} + } + var p = $(container).tabs('getSelected'); + if (p){ + if (p[0] != this){ + $(container).tabs('unselect', getTabIndex(container, p)); + p = $(container).tabs('getSelected'); + if (p){ + return false; + } + } else { + setSelectedSize(container); + return false; + } + } + + var popts = $(this).panel('options'); + popts.tab.addClass('tabs-selected'); + // scroll the tab to center position if required. + var wrap = $(container).find('>div.tabs-header>div.tabs-wrap'); + var left = popts.tab.position().left; + var right = left + popts.tab.outerWidth(); + if (left < 0 || right > wrap.width()){ + var deltaX = left - (wrap.width()-popts.tab.width()) / 2; + $(container).tabs('scrollBy', deltaX); + } else { + $(container).tabs('scrollBy', 0); + } + + var panel = $(this).panel('panel'); + panel.css('display','block'); + setSelectedSize(container); + panel.css('display','none'); + }, + onOpen: function(){ + if (options.onOpen){ + options.onOpen.call(this); + } + var popts = $(this).panel('options'); + state.selectHis.push(popts.title); + state.options.onSelect.call(container, popts.title, getTabIndex(container, this)); + }, + onBeforeClose: function(){ + if (options.onBeforeClose){ + if (options.onBeforeClose.call(this) == false){return false;} + } + $(this).panel('options').tab.removeClass('tabs-selected'); + }, + onClose: function(){ + if (options.onClose){ + options.onClose.call(this); + } + var popts = $(this).panel('options'); + state.options.onUnselect.call(container, popts.title, getTabIndex(container, this)); + } + })); + + // only update the tab header + $(container).tabs('update', { + tab: pp, + options: pp.panel('options'), + type: 'header' + }); + } + + function addTab(container, options) { + var state = $.data(container, 'tabs'); + var opts = state.options; + if (options.selected == undefined) options.selected = true; + + createTab(container, options); + opts.onAdd.call(container, options.title, options.index); + if (options.selected){ + selectTab(container, options.index); // select the added tab panel + } + } + + /** + * update tab panel, param has following properties: + * tab: the tab panel to be updated + * options: the tab panel options + * type: the update type, possible values are: 'header','body','all' + */ + function updateTab(container, param){ + param.type = param.type || 'all'; + var selectHis = $.data(container, 'tabs').selectHis; + var pp = param.tab; // the tab panel + var opts = pp.panel('options'); // get the tab panel options + var oldTitle = opts.title; + $.extend(opts, param.options, { + iconCls: (param.options.icon ? param.options.icon : undefined) + }); + + if (param.type == 'all' || param.type == 'body'){ + pp.panel(); + } + if (param.type == 'all' || param.type == 'header'){ + var tab = opts.tab; + + if (opts.header){ + tab.find('.tabs-inner').html($(opts.header)); + } else { + var s_title = tab.find('span.tabs-title'); + var s_icon = tab.find('span.tabs-icon'); + s_title.html(opts.title); + s_icon.attr('class', 'tabs-icon'); + + tab.find('a.tabs-close').remove(); + if (opts.closable){ + s_title.addClass('tabs-closable'); + $('').appendTo(tab); + } else{ + s_title.removeClass('tabs-closable'); + } + if (opts.iconCls){ + s_title.addClass('tabs-with-icon'); + s_icon.addClass(opts.iconCls); + } else { + s_title.removeClass('tabs-with-icon'); + } + if (opts.tools){ + var p_tool = tab.find('span.tabs-p-tool'); + if (!p_tool.length){ + var p_tool = $('').insertAfter(tab.find('a.tabs-inner')); + } + if ($.isArray(opts.tools)){ + p_tool.empty(); + for(var i=0; i').appendTo(p_tool); + t.addClass(opts.tools[i].iconCls); + if (opts.tools[i].handler){ + t.bind('click', {handler:opts.tools[i].handler}, function(e){ + if ($(this).parents('li').hasClass('tabs-disabled')){return;} + e.data.handler.call(this); + }); + } + } + } else { + $(opts.tools).children().appendTo(p_tool); + } + var pr = p_tool.children().length * 12; + if (opts.closable) { + pr += 8; + } else { + pr -= 3; + p_tool.css('right','5px'); + } + s_title.css('padding-right', pr+'px'); + } else { + tab.find('span.tabs-p-tool').remove(); + s_title.css('padding-right', ''); + } + } + if (oldTitle != opts.title){ + for(var i=0; i= tabs.length){ + return null; + } else { + var tab = tabs[which]; + if (removeit) { + tabs.splice(which, 1); + } + return tab; + } + } + for(var i=0; i.tabs-header>.tabs-tool'); + if (visible){ + tool.removeClass('tabs-tool-hidden').show(); + } else { + tool.addClass('tabs-tool-hidden').hide(); + } + $(container).tabs('resize').tabs('scrollBy', 0); + } + + + $.fn.tabs = function(options, param){ + if (typeof options == 'string') { + return $.fn.tabs.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'tabs'); + if (state) { + $.extend(state.options, options); + } else { + $.data(this, 'tabs', { + options: $.extend({},$.fn.tabs.defaults, $.fn.tabs.parseOptions(this), options), + tabs: [], + selectHis: [] + }); + wrapTabs(this); + } + + addTools(this); + setProperties(this); + setSize(this); + bindEvents(this); + + doFirstSelect(this); + }); + }; + + $.fn.tabs.methods = { + options: function(jq){ + var cc = jq[0]; + var opts = $.data(cc, 'tabs').options; + var s = getSelectedTab(cc); + opts.selected = s ? getTabIndex(cc, s) : -1; + return opts; + }, + tabs: function(jq){ + return $.data(jq[0], 'tabs').tabs; + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + setSelectedSize(this); + }); + }, + add: function(jq, options){ + return jq.each(function(){ + addTab(this, options); + }); + }, + close: function(jq, which){ + return jq.each(function(){ + closeTab(this, which); + }); + }, + getTab: function(jq, which){ + return getTab(jq[0], which); + }, + getTabIndex: function(jq, tab){ + return getTabIndex(jq[0], tab); + }, + getSelected: function(jq){ + return getSelectedTab(jq[0]); + }, + select: function(jq, which){ + return jq.each(function(){ + selectTab(this, which); + }); + }, + unselect: function(jq, which){ + return jq.each(function(){ + unselectTab(this, which); + }); + }, + exists: function(jq, which){ + return exists(jq[0], which); + }, + update: function(jq, options){ + return jq.each(function(){ + updateTab(this, options); + }); + }, + enableTab: function(jq, which){ + return jq.each(function(){ + var opts = $(this).tabs('getTab', which).panel('options'); + opts.tab.removeClass('tabs-disabled'); + opts.disabled = false; + }); + }, + disableTab: function(jq, which){ + return jq.each(function(){ + var opts = $(this).tabs('getTab', which).panel('options'); + opts.tab.addClass('tabs-disabled'); + opts.disabled = true; + }); + }, + showHeader: function(jq){ + return jq.each(function(){ + showHeader(this, true); + }); + }, + hideHeader: function(jq){ + return jq.each(function(){ + showHeader(this, false); + }); + }, + showTool: function(jq){ + return jq.each(function(){ + showTool(this, true); + }); + }, + hideTool: function(jq){ + return jq.each(function(){ + showTool(this, false); + }); + }, + scrollBy: function(jq, deltaX){ // scroll the tab header by the specified amount of pixels + return jq.each(function(){ + var opts = $(this).tabs('options'); + var wrap = $(this).find('>div.tabs-header>div.tabs-wrap'); + var pos = Math.min(wrap._scrollLeft() + deltaX, getMaxScrollWidth()); + wrap.animate({scrollLeft: pos}, opts.scrollDuration); + + function getMaxScrollWidth(){ + var w = 0; + var ul = wrap.children('ul'); + ul.children('li').each(function(){ + w += $(this).outerWidth(true); + }); + return w - wrap.width() + (ul.outerWidth() - ul.width()); + } + }); + } + }; + + $.fn.tabs.parseOptions = function(target){ + return $.extend({}, $.parser.parseOptions(target, [ + 'tools','toolPosition','tabPosition', + {fit:'boolean',border:'boolean',plain:'boolean'}, + {headerWidth:'number',tabWidth:'number',tabHeight:'number',selected:'number'}, + {showHeader:'boolean',justified:'boolean',narrow:'boolean',pill:'boolean'} + ])); + }; + + $.fn.tabs.defaults = { + width: 'auto', + height: 'auto', + headerWidth: 150, // the tab header width, it is valid only when tabPosition set to 'left' or 'right' + tabWidth: 'auto', // the tab width + tabHeight: 27, // the tab height + selected: 0, // the initialized selected tab index + showHeader: true, + plain: false, + fit: false, + border: true, + justified: false, + narrow: false, + pill: false, + tools: null, + toolPosition: 'right', // left,right + tabPosition: 'top', // possible values: top,bottom + scrollIncrement: 100, + scrollDuration: 400, + onLoad: function(panel){}, + onSelect: function(title, index){}, + onUnselect: function(title, index){}, + onBeforeClose: function(title, index){}, + onClose: function(title, index){}, + onAdd: function(title, index){}, + onUpdate: function(title, index){}, + onContextMenu: function(e, title, index){} + }; +})(jQuery); diff --git a/vendor/easyui/src/jquery.window.js b/vendor/FHC-vendor/easyui/src/jquery.window.js similarity index 96% rename from vendor/easyui/src/jquery.window.js rename to vendor/FHC-vendor/easyui/src/jquery.window.js index fbb93e1df..397e194d5 100644 --- a/vendor/easyui/src/jquery.window.js +++ b/vendor/FHC-vendor/easyui/src/jquery.window.js @@ -1,374 +1,374 @@ -/** - * jQuery EasyUI 1.4.4 - * - * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. - * - * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php - * To use it on other terms please contact us: info@jeasyui.com - * - */ -/** - * window - jQuery EasyUI - * - * Dependencies: - * panel - * draggable - * resizable - * - */ -(function($){ - function moveWindow(target, param){ - var state = $.data(target, 'window'); - if (param){ - if (param.left != null) state.options.left = param.left; - if (param.top != null) state.options.top = param.top; - } - $(target).panel('move', state.options); - if (state.shadow){ - state.shadow.css({ - left: state.options.left, - top: state.options.top - }); - } - } - - /** - * center the window only horizontally - */ - function hcenter(target, tomove){ - var opts = $.data(target, 'window').options; - var pp = $(target).window('panel'); - var width = pp._outerWidth(); - if (opts.inline){ - var parent = pp.parent(); - opts.left = Math.ceil((parent.width() - width) / 2 + parent.scrollLeft()); - } else { - opts.left = Math.ceil(($(window)._outerWidth() - width) / 2 + $(document).scrollLeft()); - } - if (tomove){moveWindow(target);} - } - - /** - * center the window only vertically - */ - function vcenter(target, tomove){ - var opts = $.data(target, 'window').options; - var pp = $(target).window('panel'); - var height = pp._outerHeight(); - if (opts.inline){ - var parent = pp.parent(); - opts.top = Math.ceil((parent.height() - height) / 2 + parent.scrollTop()); - } else { - opts.top = Math.ceil(($(window)._outerHeight() - height) / 2 + $(document).scrollTop()); - } - if (tomove){moveWindow(target);} - } - - function create(target){ - var state = $.data(target, 'window'); - var opts = state.options; - var win = $(target).panel($.extend({}, state.options, { - border: false, - doSize: true, // size the panel, the property undefined in window component - closed: true, // close the panel - cls: 'window', - headerCls: 'window-header', - bodyCls: 'window-body ' + (opts.noheader ? 'window-body-noheader' : ''), - - onBeforeDestroy: function(){ - if (opts.onBeforeDestroy.call(target) == false){return false;} - if (state.shadow){state.shadow.remove();} - if (state.mask){state.mask.remove();} - }, - onClose: function(){ - if (state.shadow){state.shadow.hide();} - if (state.mask){state.mask.hide();} - opts.onClose.call(target); - }, - onOpen: function(){ - if (state.mask){ - state.mask.css($.extend({ - display:'block', - zIndex: $.fn.window.defaults.zIndex++ - }, $.fn.window.getMaskSize(target))); - } - if (state.shadow){ - state.shadow.css({ - display:'block', - zIndex: $.fn.window.defaults.zIndex++, - left: opts.left, - top: opts.top, - width: state.window._outerWidth(), - height: state.window._outerHeight() - }); - } - state.window.css('z-index', $.fn.window.defaults.zIndex++); - - opts.onOpen.call(target); - }, - onResize: function(width, height){ - var popts = $(this).panel('options'); - $.extend(opts, { - width: popts.width, - height: popts.height, - left: popts.left, - top: popts.top - }); - if (state.shadow){ - state.shadow.css({ - left: opts.left, - top: opts.top, - width: state.window._outerWidth(), - height: state.window._outerHeight() - }); - } - opts.onResize.call(target, width, height); - }, - onMinimize: function(){ - if (state.shadow){state.shadow.hide();} - if (state.mask){state.mask.hide();} - state.options.onMinimize.call(target); - }, - onBeforeCollapse: function(){ - if (opts.onBeforeCollapse.call(target) == false){return false;} - if (state.shadow){state.shadow.hide();} - }, - onExpand: function(){ - if (state.shadow){state.shadow.show();} - opts.onExpand.call(target); - } - })); - - state.window = win.panel('panel'); - - // create mask - if (state.mask){state.mask.remove();} - if (opts.modal){ - state.mask = $('').insertAfter(state.window); - } - - // create shadow - if (state.shadow){state.shadow.remove();} - if (opts.shadow){ - state.shadow = $('').insertAfter(state.window); - } - - // center and open the window - var closed = opts.closed; - if (opts.left == null){hcenter(target);} - if (opts.top == null){vcenter(target);} - moveWindow(target); - if (!closed){win.window('open');} - } - - - /** - * set window drag and resize property - */ - function setProperties(target){ - var state = $.data(target, 'window'); - - state.window.draggable({ - handle: '>div.panel-header>div.panel-title', - disabled: state.options.draggable == false, - onStartDrag: function(e){ - if (state.mask) state.mask.css('z-index', $.fn.window.defaults.zIndex++); - if (state.shadow) state.shadow.css('z-index', $.fn.window.defaults.zIndex++); - state.window.css('z-index', $.fn.window.defaults.zIndex++); - - if (!state.proxy){ - state.proxy = $('
                                  ').insertAfter(state.window); - } - state.proxy.css({ - display:'none', - zIndex: $.fn.window.defaults.zIndex++, - left: e.data.left, - top: e.data.top - }); - state.proxy._outerWidth(state.window._outerWidth()); - state.proxy._outerHeight(state.window._outerHeight()); - setTimeout(function(){ - if (state.proxy) state.proxy.show(); - }, 500); - }, - onDrag: function(e){ - state.proxy.css({ - display:'block', - left: e.data.left, - top: e.data.top - }); - return false; - }, - onStopDrag: function(e){ - state.options.left = e.data.left; - state.options.top = e.data.top; - $(target).window('move'); - state.proxy.remove(); - state.proxy = null; - } - }); - - state.window.resizable({ - disabled: state.options.resizable == false, - onStartResize:function(e){ - if (state.pmask){state.pmask.remove();} - state.pmask = $('
                                  ').insertAfter(state.window); - state.pmask.css({ - zIndex: $.fn.window.defaults.zIndex++, - left: e.data.left, - top: e.data.top, - width: state.window._outerWidth(), - height: state.window._outerHeight() - }); - if (state.proxy){state.proxy.remove();} - state.proxy = $('
                                  ').insertAfter(state.window); - state.proxy.css({ - zIndex: $.fn.window.defaults.zIndex++, - left: e.data.left, - top: e.data.top - }); - state.proxy._outerWidth(e.data.width)._outerHeight(e.data.height); - }, - onResize: function(e){ - state.proxy.css({ - left: e.data.left, - top: e.data.top - }); - state.proxy._outerWidth(e.data.width); - state.proxy._outerHeight(e.data.height); - return false; - }, - onStopResize: function(e){ - $(target).window('resize', e.data); - state.pmask.remove(); - state.pmask = null; - state.proxy.remove(); - state.proxy = null; - } - }); - } - - // function getPageArea() { - // if (document.compatMode == 'BackCompat') { - // return { - // width: Math.max(document.body.scrollWidth, document.body.clientWidth), - // height: Math.max(document.body.scrollHeight, document.body.clientHeight) - // } - // } else { - // return { - // width: Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth), - // height: Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) - // } - // } - // } - - // when window resize, reset the width and height of the window's mask - $(window).resize(function(){ - $('body>div.window-mask').css({ - width: $(window)._outerWidth(), - height: $(window)._outerHeight() - }); - setTimeout(function(){ - $('body>div.window-mask').css($.fn.window.getMaskSize()); - }, 50); - }); - - $.fn.window = function(options, param){ - if (typeof options == 'string'){ - var method = $.fn.window.methods[options]; - if (method){ - return method(this, param); - } else { - return this.panel(options, param); - } - } - - options = options || {}; - return this.each(function(){ - var state = $.data(this, 'window'); - if (state){ - $.extend(state.options, options); - } else { - state = $.data(this, 'window', { - options: $.extend({}, $.fn.window.defaults, $.fn.window.parseOptions(this), options) - }); - if (!state.options.inline){ - document.body.appendChild(this); - } - } - create(this); - setProperties(this); - }); - }; - - $.fn.window.methods = { - options: function(jq){ - var popts = jq.panel('options'); - var wopts = $.data(jq[0], 'window').options; - return $.extend(wopts, { - closed: popts.closed, - collapsed: popts.collapsed, - minimized: popts.minimized, - maximized: popts.maximized - }); - }, - window: function(jq){ - return $.data(jq[0], 'window').window; - }, - move: function(jq, param){ - return jq.each(function(){ - moveWindow(this, param); - }); - }, - hcenter: function(jq){ - return jq.each(function(){ - hcenter(this, true); - }); - }, - vcenter: function(jq){ - return jq.each(function(){ - vcenter(this, true); - }); - }, - center: function(jq){ - return jq.each(function(){ - hcenter(this); - vcenter(this); - moveWindow(this); - }); - } - }; - - $.fn.window.getMaskSize = function(target){ - var state = $(target).data('window'); - var inline = (state && state.options.inline); - return { - width: (inline ? '100%' : $(document).width()), - height: (inline ? '100%' : $(document).height()) - }; - }; - - $.fn.window.parseOptions = function(target){ - return $.extend({}, $.fn.panel.parseOptions(target), $.parser.parseOptions(target, [ - {draggable:'boolean',resizable:'boolean',shadow:'boolean',modal:'boolean',inline:'boolean'} - ])); - }; - - // Inherited from $.fn.panel.defaults - $.fn.window.defaults = $.extend({}, $.fn.panel.defaults, { - zIndex: 9000, - draggable: true, - resizable: true, - shadow: true, - modal: false, - inline: false, // true to stay inside its parent, false to go on top of all elements - - // window's property which difference from panel - title: 'New Window', - collapsible: true, - minimizable: true, - maximizable: true, - closable: true, - closed: false - }); -})(jQuery); +/** + * jQuery EasyUI 1.4.4 + * + * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +/** + * window - jQuery EasyUI + * + * Dependencies: + * panel + * draggable + * resizable + * + */ +(function($){ + function moveWindow(target, param){ + var state = $.data(target, 'window'); + if (param){ + if (param.left != null) state.options.left = param.left; + if (param.top != null) state.options.top = param.top; + } + $(target).panel('move', state.options); + if (state.shadow){ + state.shadow.css({ + left: state.options.left, + top: state.options.top + }); + } + } + + /** + * center the window only horizontally + */ + function hcenter(target, tomove){ + var opts = $.data(target, 'window').options; + var pp = $(target).window('panel'); + var width = pp._outerWidth(); + if (opts.inline){ + var parent = pp.parent(); + opts.left = Math.ceil((parent.width() - width) / 2 + parent.scrollLeft()); + } else { + opts.left = Math.ceil(($(window)._outerWidth() - width) / 2 + $(document).scrollLeft()); + } + if (tomove){moveWindow(target);} + } + + /** + * center the window only vertically + */ + function vcenter(target, tomove){ + var opts = $.data(target, 'window').options; + var pp = $(target).window('panel'); + var height = pp._outerHeight(); + if (opts.inline){ + var parent = pp.parent(); + opts.top = Math.ceil((parent.height() - height) / 2 + parent.scrollTop()); + } else { + opts.top = Math.ceil(($(window)._outerHeight() - height) / 2 + $(document).scrollTop()); + } + if (tomove){moveWindow(target);} + } + + function create(target){ + var state = $.data(target, 'window'); + var opts = state.options; + var win = $(target).panel($.extend({}, state.options, { + border: false, + doSize: true, // size the panel, the property undefined in window component + closed: true, // close the panel + cls: 'window', + headerCls: 'window-header', + bodyCls: 'window-body ' + (opts.noheader ? 'window-body-noheader' : ''), + + onBeforeDestroy: function(){ + if (opts.onBeforeDestroy.call(target) == false){return false;} + if (state.shadow){state.shadow.remove();} + if (state.mask){state.mask.remove();} + }, + onClose: function(){ + if (state.shadow){state.shadow.hide();} + if (state.mask){state.mask.hide();} + opts.onClose.call(target); + }, + onOpen: function(){ + if (state.mask){ + state.mask.css($.extend({ + display:'block', + zIndex: $.fn.window.defaults.zIndex++ + }, $.fn.window.getMaskSize(target))); + } + if (state.shadow){ + state.shadow.css({ + display:'block', + zIndex: $.fn.window.defaults.zIndex++, + left: opts.left, + top: opts.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + } + state.window.css('z-index', $.fn.window.defaults.zIndex++); + + opts.onOpen.call(target); + }, + onResize: function(width, height){ + var popts = $(this).panel('options'); + $.extend(opts, { + width: popts.width, + height: popts.height, + left: popts.left, + top: popts.top + }); + if (state.shadow){ + state.shadow.css({ + left: opts.left, + top: opts.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + } + opts.onResize.call(target, width, height); + }, + onMinimize: function(){ + if (state.shadow){state.shadow.hide();} + if (state.mask){state.mask.hide();} + state.options.onMinimize.call(target); + }, + onBeforeCollapse: function(){ + if (opts.onBeforeCollapse.call(target) == false){return false;} + if (state.shadow){state.shadow.hide();} + }, + onExpand: function(){ + if (state.shadow){state.shadow.show();} + opts.onExpand.call(target); + } + })); + + state.window = win.panel('panel'); + + // create mask + if (state.mask){state.mask.remove();} + if (opts.modal){ + state.mask = $('').insertAfter(state.window); + } + + // create shadow + if (state.shadow){state.shadow.remove();} + if (opts.shadow){ + state.shadow = $('').insertAfter(state.window); + } + + // center and open the window + var closed = opts.closed; + if (opts.left == null){hcenter(target);} + if (opts.top == null){vcenter(target);} + moveWindow(target); + if (!closed){win.window('open');} + } + + + /** + * set window drag and resize property + */ + function setProperties(target){ + var state = $.data(target, 'window'); + + state.window.draggable({ + handle: '>div.panel-header>div.panel-title', + disabled: state.options.draggable == false, + onStartDrag: function(e){ + if (state.mask) state.mask.css('z-index', $.fn.window.defaults.zIndex++); + if (state.shadow) state.shadow.css('z-index', $.fn.window.defaults.zIndex++); + state.window.css('z-index', $.fn.window.defaults.zIndex++); + + if (!state.proxy){ + state.proxy = $('
                                  ').insertAfter(state.window); + } + state.proxy.css({ + display:'none', + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(state.window._outerWidth()); + state.proxy._outerHeight(state.window._outerHeight()); + setTimeout(function(){ + if (state.proxy) state.proxy.show(); + }, 500); + }, + onDrag: function(e){ + state.proxy.css({ + display:'block', + left: e.data.left, + top: e.data.top + }); + return false; + }, + onStopDrag: function(e){ + state.options.left = e.data.left; + state.options.top = e.data.top; + $(target).window('move'); + state.proxy.remove(); + state.proxy = null; + } + }); + + state.window.resizable({ + disabled: state.options.resizable == false, + onStartResize:function(e){ + if (state.pmask){state.pmask.remove();} + state.pmask = $('
                                  ').insertAfter(state.window); + state.pmask.css({ + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + if (state.proxy){state.proxy.remove();} + state.proxy = $('
                                  ').insertAfter(state.window); + state.proxy.css({ + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(e.data.width)._outerHeight(e.data.height); + }, + onResize: function(e){ + state.proxy.css({ + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(e.data.width); + state.proxy._outerHeight(e.data.height); + return false; + }, + onStopResize: function(e){ + $(target).window('resize', e.data); + state.pmask.remove(); + state.pmask = null; + state.proxy.remove(); + state.proxy = null; + } + }); + } + + // function getPageArea() { + // if (document.compatMode == 'BackCompat') { + // return { + // width: Math.max(document.body.scrollWidth, document.body.clientWidth), + // height: Math.max(document.body.scrollHeight, document.body.clientHeight) + // } + // } else { + // return { + // width: Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth), + // height: Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + // } + // } + // } + + // when window resize, reset the width and height of the window's mask + $(window).resize(function(){ + $('body>div.window-mask').css({ + width: $(window)._outerWidth(), + height: $(window)._outerHeight() + }); + setTimeout(function(){ + $('body>div.window-mask').css($.fn.window.getMaskSize()); + }, 50); + }); + + $.fn.window = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.window.methods[options]; + if (method){ + return method(this, param); + } else { + return this.panel(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'window'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'window', { + options: $.extend({}, $.fn.window.defaults, $.fn.window.parseOptions(this), options) + }); + if (!state.options.inline){ + document.body.appendChild(this); + } + } + create(this); + setProperties(this); + }); + }; + + $.fn.window.methods = { + options: function(jq){ + var popts = jq.panel('options'); + var wopts = $.data(jq[0], 'window').options; + return $.extend(wopts, { + closed: popts.closed, + collapsed: popts.collapsed, + minimized: popts.minimized, + maximized: popts.maximized + }); + }, + window: function(jq){ + return $.data(jq[0], 'window').window; + }, + move: function(jq, param){ + return jq.each(function(){ + moveWindow(this, param); + }); + }, + hcenter: function(jq){ + return jq.each(function(){ + hcenter(this, true); + }); + }, + vcenter: function(jq){ + return jq.each(function(){ + vcenter(this, true); + }); + }, + center: function(jq){ + return jq.each(function(){ + hcenter(this); + vcenter(this); + moveWindow(this); + }); + } + }; + + $.fn.window.getMaskSize = function(target){ + var state = $(target).data('window'); + var inline = (state && state.options.inline); + return { + width: (inline ? '100%' : $(document).width()), + height: (inline ? '100%' : $(document).height()) + }; + }; + + $.fn.window.parseOptions = function(target){ + return $.extend({}, $.fn.panel.parseOptions(target), $.parser.parseOptions(target, [ + {draggable:'boolean',resizable:'boolean',shadow:'boolean',modal:'boolean',inline:'boolean'} + ])); + }; + + // Inherited from $.fn.panel.defaults + $.fn.window.defaults = $.extend({}, $.fn.panel.defaults, { + zIndex: 9000, + draggable: true, + resizable: true, + shadow: true, + modal: false, + inline: false, // true to stay inside its parent, false to go on top of all elements + + // window's property which difference from panel + title: 'New Window', + collapsible: true, + minimizable: true, + maximizable: true, + closable: true, + closed: false + }); +})(jQuery); diff --git a/vendor/easyui/themes/black/accordion.css b/vendor/FHC-vendor/easyui/themes/black/accordion.css similarity index 100% rename from vendor/easyui/themes/black/accordion.css rename to vendor/FHC-vendor/easyui/themes/black/accordion.css diff --git a/vendor/easyui/themes/black/calendar.css b/vendor/FHC-vendor/easyui/themes/black/calendar.css similarity index 100% rename from vendor/easyui/themes/black/calendar.css rename to vendor/FHC-vendor/easyui/themes/black/calendar.css diff --git a/vendor/easyui/themes/black/combo.css b/vendor/FHC-vendor/easyui/themes/black/combo.css similarity index 100% rename from vendor/easyui/themes/black/combo.css rename to vendor/FHC-vendor/easyui/themes/black/combo.css diff --git a/vendor/easyui/themes/black/combobox.css b/vendor/FHC-vendor/easyui/themes/black/combobox.css similarity index 100% rename from vendor/easyui/themes/black/combobox.css rename to vendor/FHC-vendor/easyui/themes/black/combobox.css diff --git a/vendor/easyui/themes/black/datagrid.css b/vendor/FHC-vendor/easyui/themes/black/datagrid.css similarity index 100% rename from vendor/easyui/themes/black/datagrid.css rename to vendor/FHC-vendor/easyui/themes/black/datagrid.css diff --git a/vendor/easyui/themes/black/datalist.css b/vendor/FHC-vendor/easyui/themes/black/datalist.css similarity index 100% rename from vendor/easyui/themes/black/datalist.css rename to vendor/FHC-vendor/easyui/themes/black/datalist.css diff --git a/vendor/easyui/themes/black/datebox.css b/vendor/FHC-vendor/easyui/themes/black/datebox.css similarity index 100% rename from vendor/easyui/themes/black/datebox.css rename to vendor/FHC-vendor/easyui/themes/black/datebox.css diff --git a/vendor/easyui/themes/black/dialog.css b/vendor/FHC-vendor/easyui/themes/black/dialog.css similarity index 100% rename from vendor/easyui/themes/black/dialog.css rename to vendor/FHC-vendor/easyui/themes/black/dialog.css diff --git a/vendor/easyui/themes/black/easyui.css b/vendor/FHC-vendor/easyui/themes/black/easyui.css similarity index 100% rename from vendor/easyui/themes/black/easyui.css rename to vendor/FHC-vendor/easyui/themes/black/easyui.css diff --git a/vendor/easyui/themes/black/filebox.css b/vendor/FHC-vendor/easyui/themes/black/filebox.css similarity index 100% rename from vendor/easyui/themes/black/filebox.css rename to vendor/FHC-vendor/easyui/themes/black/filebox.css diff --git a/vendor/easyui/themes/black/images/accordion_arrows.png b/vendor/FHC-vendor/easyui/themes/black/images/accordion_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/accordion_arrows.png rename to vendor/FHC-vendor/easyui/themes/black/images/accordion_arrows.png diff --git a/vendor/easyui/themes/black/images/blank.gif b/vendor/FHC-vendor/easyui/themes/black/images/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/blank.gif rename to vendor/FHC-vendor/easyui/themes/black/images/blank.gif diff --git a/vendor/easyui/themes/black/images/calendar_arrows.png b/vendor/FHC-vendor/easyui/themes/black/images/calendar_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/calendar_arrows.png rename to vendor/FHC-vendor/easyui/themes/black/images/calendar_arrows.png diff --git a/vendor/easyui/themes/black/images/combo_arrow.png b/vendor/FHC-vendor/easyui/themes/black/images/combo_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/combo_arrow.png rename to vendor/FHC-vendor/easyui/themes/black/images/combo_arrow.png diff --git a/vendor/easyui/themes/black/images/datagrid_icons.png b/vendor/FHC-vendor/easyui/themes/black/images/datagrid_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/datagrid_icons.png rename to vendor/FHC-vendor/easyui/themes/black/images/datagrid_icons.png diff --git a/vendor/easyui/themes/black/images/datebox_arrow.png b/vendor/FHC-vendor/easyui/themes/black/images/datebox_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/datebox_arrow.png rename to vendor/FHC-vendor/easyui/themes/black/images/datebox_arrow.png diff --git a/vendor/easyui/themes/black/images/layout_arrows.png b/vendor/FHC-vendor/easyui/themes/black/images/layout_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/layout_arrows.png rename to vendor/FHC-vendor/easyui/themes/black/images/layout_arrows.png diff --git a/vendor/easyui/themes/black/images/linkbutton_bg.png b/vendor/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/linkbutton_bg.png rename to vendor/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png diff --git a/vendor/easyui/themes/black/images/loading.gif b/vendor/FHC-vendor/easyui/themes/black/images/loading.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/loading.gif rename to vendor/FHC-vendor/easyui/themes/black/images/loading.gif diff --git a/vendor/easyui/themes/black/images/menu_arrows.png b/vendor/FHC-vendor/easyui/themes/black/images/menu_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/menu_arrows.png rename to vendor/FHC-vendor/easyui/themes/black/images/menu_arrows.png diff --git a/vendor/easyui/themes/black/images/messager_icons.png b/vendor/FHC-vendor/easyui/themes/black/images/messager_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/messager_icons.png rename to vendor/FHC-vendor/easyui/themes/black/images/messager_icons.png diff --git a/vendor/easyui/themes/black/images/pagination_icons.png b/vendor/FHC-vendor/easyui/themes/black/images/pagination_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/pagination_icons.png rename to vendor/FHC-vendor/easyui/themes/black/images/pagination_icons.png diff --git a/vendor/easyui/themes/black/images/panel_tools.png b/vendor/FHC-vendor/easyui/themes/black/images/panel_tools.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/panel_tools.png rename to vendor/FHC-vendor/easyui/themes/black/images/panel_tools.png diff --git a/vendor/easyui/themes/black/images/searchbox_button.png b/vendor/FHC-vendor/easyui/themes/black/images/searchbox_button.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/searchbox_button.png rename to vendor/FHC-vendor/easyui/themes/black/images/searchbox_button.png diff --git a/vendor/easyui/themes/black/images/slider_handle.png b/vendor/FHC-vendor/easyui/themes/black/images/slider_handle.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/slider_handle.png rename to vendor/FHC-vendor/easyui/themes/black/images/slider_handle.png diff --git a/vendor/easyui/themes/black/images/spinner_arrows.png b/vendor/FHC-vendor/easyui/themes/black/images/spinner_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/spinner_arrows.png rename to vendor/FHC-vendor/easyui/themes/black/images/spinner_arrows.png diff --git a/vendor/easyui/themes/black/images/tabs_icons.png b/vendor/FHC-vendor/easyui/themes/black/images/tabs_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/tabs_icons.png rename to vendor/FHC-vendor/easyui/themes/black/images/tabs_icons.png diff --git a/vendor/easyui/themes/black/images/tree_icons.png b/vendor/FHC-vendor/easyui/themes/black/images/tree_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/tree_icons.png rename to vendor/FHC-vendor/easyui/themes/black/images/tree_icons.png diff --git a/vendor/easyui/themes/black/images/validatebox_warning.png b/vendor/FHC-vendor/easyui/themes/black/images/validatebox_warning.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/black/images/validatebox_warning.png rename to vendor/FHC-vendor/easyui/themes/black/images/validatebox_warning.png diff --git a/vendor/easyui/themes/black/layout.css b/vendor/FHC-vendor/easyui/themes/black/layout.css similarity index 100% rename from vendor/easyui/themes/black/layout.css rename to vendor/FHC-vendor/easyui/themes/black/layout.css diff --git a/vendor/easyui/themes/black/linkbutton.css b/vendor/FHC-vendor/easyui/themes/black/linkbutton.css similarity index 100% rename from vendor/easyui/themes/black/linkbutton.css rename to vendor/FHC-vendor/easyui/themes/black/linkbutton.css diff --git a/vendor/easyui/themes/black/menu.css b/vendor/FHC-vendor/easyui/themes/black/menu.css similarity index 100% rename from vendor/easyui/themes/black/menu.css rename to vendor/FHC-vendor/easyui/themes/black/menu.css diff --git a/vendor/easyui/themes/black/menubutton.css b/vendor/FHC-vendor/easyui/themes/black/menubutton.css similarity index 100% rename from vendor/easyui/themes/black/menubutton.css rename to vendor/FHC-vendor/easyui/themes/black/menubutton.css diff --git a/vendor/easyui/themes/black/messager.css b/vendor/FHC-vendor/easyui/themes/black/messager.css similarity index 100% rename from vendor/easyui/themes/black/messager.css rename to vendor/FHC-vendor/easyui/themes/black/messager.css diff --git a/vendor/easyui/themes/black/numberbox.css b/vendor/FHC-vendor/easyui/themes/black/numberbox.css similarity index 100% rename from vendor/easyui/themes/black/numberbox.css rename to vendor/FHC-vendor/easyui/themes/black/numberbox.css diff --git a/vendor/easyui/themes/black/pagination.css b/vendor/FHC-vendor/easyui/themes/black/pagination.css similarity index 100% rename from vendor/easyui/themes/black/pagination.css rename to vendor/FHC-vendor/easyui/themes/black/pagination.css diff --git a/vendor/easyui/themes/black/panel.css b/vendor/FHC-vendor/easyui/themes/black/panel.css similarity index 100% rename from vendor/easyui/themes/black/panel.css rename to vendor/FHC-vendor/easyui/themes/black/panel.css diff --git a/vendor/easyui/themes/black/progressbar.css b/vendor/FHC-vendor/easyui/themes/black/progressbar.css similarity index 100% rename from vendor/easyui/themes/black/progressbar.css rename to vendor/FHC-vendor/easyui/themes/black/progressbar.css diff --git a/vendor/easyui/themes/black/propertygrid.css b/vendor/FHC-vendor/easyui/themes/black/propertygrid.css similarity index 100% rename from vendor/easyui/themes/black/propertygrid.css rename to vendor/FHC-vendor/easyui/themes/black/propertygrid.css diff --git a/vendor/easyui/themes/black/searchbox.css b/vendor/FHC-vendor/easyui/themes/black/searchbox.css similarity index 100% rename from vendor/easyui/themes/black/searchbox.css rename to vendor/FHC-vendor/easyui/themes/black/searchbox.css diff --git a/vendor/easyui/themes/black/slider.css b/vendor/FHC-vendor/easyui/themes/black/slider.css similarity index 100% rename from vendor/easyui/themes/black/slider.css rename to vendor/FHC-vendor/easyui/themes/black/slider.css diff --git a/vendor/easyui/themes/black/spinner.css b/vendor/FHC-vendor/easyui/themes/black/spinner.css similarity index 100% rename from vendor/easyui/themes/black/spinner.css rename to vendor/FHC-vendor/easyui/themes/black/spinner.css diff --git a/vendor/easyui/themes/black/splitbutton.css b/vendor/FHC-vendor/easyui/themes/black/splitbutton.css similarity index 100% rename from vendor/easyui/themes/black/splitbutton.css rename to vendor/FHC-vendor/easyui/themes/black/splitbutton.css diff --git a/vendor/easyui/themes/black/switchbutton.css b/vendor/FHC-vendor/easyui/themes/black/switchbutton.css similarity index 100% rename from vendor/easyui/themes/black/switchbutton.css rename to vendor/FHC-vendor/easyui/themes/black/switchbutton.css diff --git a/vendor/easyui/themes/black/tabs.css b/vendor/FHC-vendor/easyui/themes/black/tabs.css similarity index 100% rename from vendor/easyui/themes/black/tabs.css rename to vendor/FHC-vendor/easyui/themes/black/tabs.css diff --git a/vendor/easyui/themes/black/textbox.css b/vendor/FHC-vendor/easyui/themes/black/textbox.css similarity index 100% rename from vendor/easyui/themes/black/textbox.css rename to vendor/FHC-vendor/easyui/themes/black/textbox.css diff --git a/vendor/easyui/themes/black/tooltip.css b/vendor/FHC-vendor/easyui/themes/black/tooltip.css similarity index 100% rename from vendor/easyui/themes/black/tooltip.css rename to vendor/FHC-vendor/easyui/themes/black/tooltip.css diff --git a/vendor/easyui/themes/black/tree.css b/vendor/FHC-vendor/easyui/themes/black/tree.css similarity index 100% rename from vendor/easyui/themes/black/tree.css rename to vendor/FHC-vendor/easyui/themes/black/tree.css diff --git a/vendor/easyui/themes/black/validatebox.css b/vendor/FHC-vendor/easyui/themes/black/validatebox.css similarity index 100% rename from vendor/easyui/themes/black/validatebox.css rename to vendor/FHC-vendor/easyui/themes/black/validatebox.css diff --git a/vendor/easyui/themes/black/window.css b/vendor/FHC-vendor/easyui/themes/black/window.css similarity index 100% rename from vendor/easyui/themes/black/window.css rename to vendor/FHC-vendor/easyui/themes/black/window.css diff --git a/vendor/easyui/themes/bootstrap/accordion.css b/vendor/FHC-vendor/easyui/themes/bootstrap/accordion.css similarity index 100% rename from vendor/easyui/themes/bootstrap/accordion.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/accordion.css diff --git a/vendor/easyui/themes/bootstrap/calendar.css b/vendor/FHC-vendor/easyui/themes/bootstrap/calendar.css similarity index 100% rename from vendor/easyui/themes/bootstrap/calendar.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/calendar.css diff --git a/vendor/easyui/themes/bootstrap/combo.css b/vendor/FHC-vendor/easyui/themes/bootstrap/combo.css similarity index 100% rename from vendor/easyui/themes/bootstrap/combo.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/combo.css diff --git a/vendor/easyui/themes/bootstrap/combobox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/combobox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/combobox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/combobox.css diff --git a/vendor/easyui/themes/bootstrap/datagrid.css b/vendor/FHC-vendor/easyui/themes/bootstrap/datagrid.css similarity index 100% rename from vendor/easyui/themes/bootstrap/datagrid.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/datagrid.css diff --git a/vendor/easyui/themes/bootstrap/datebox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/datebox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/datebox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/datebox.css diff --git a/vendor/easyui/themes/bootstrap/dialog.css b/vendor/FHC-vendor/easyui/themes/bootstrap/dialog.css similarity index 100% rename from vendor/easyui/themes/bootstrap/dialog.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/dialog.css diff --git a/vendor/easyui/themes/bootstrap/easyui.css b/vendor/FHC-vendor/easyui/themes/bootstrap/easyui.css similarity index 100% rename from vendor/easyui/themes/bootstrap/easyui.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/easyui.css diff --git a/vendor/easyui/themes/bootstrap/filebox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/filebox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/filebox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/filebox.css diff --git a/vendor/easyui/themes/bootstrap/images/accordion_arrows.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/accordion_arrows.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png diff --git a/vendor/easyui/themes/bootstrap/images/blank.gif b/vendor/FHC-vendor/easyui/themes/bootstrap/images/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/blank.gif rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/blank.gif diff --git a/vendor/easyui/themes/bootstrap/images/calendar_arrows.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/calendar_arrows.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png diff --git a/vendor/easyui/themes/bootstrap/images/combo_arrow.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/combo_arrow.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png diff --git a/vendor/easyui/themes/bootstrap/images/datagrid_icons.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/datagrid_icons.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png diff --git a/vendor/easyui/themes/bootstrap/images/datebox_arrow.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/datebox_arrow.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png diff --git a/vendor/easyui/themes/bootstrap/images/layout_arrows.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/layout_arrows.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png diff --git a/vendor/easyui/themes/bootstrap/images/linkbutton_bg.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/linkbutton_bg.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png diff --git a/vendor/easyui/themes/bootstrap/images/loading.gif b/vendor/FHC-vendor/easyui/themes/bootstrap/images/loading.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/loading.gif rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/loading.gif diff --git a/vendor/easyui/themes/bootstrap/images/menu_arrows.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/menu_arrows.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png diff --git a/vendor/easyui/themes/bootstrap/images/messager_icons.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/messager_icons.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png diff --git a/vendor/easyui/themes/bootstrap/images/pagination_icons.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/pagination_icons.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png diff --git a/vendor/easyui/themes/bootstrap/images/panel_tools.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/panel_tools.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png diff --git a/vendor/easyui/themes/bootstrap/images/searchbox_button.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/searchbox_button.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png diff --git a/vendor/easyui/themes/bootstrap/images/slider_handle.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/slider_handle.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png diff --git a/vendor/easyui/themes/bootstrap/images/spinner_arrows.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/spinner_arrows.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png diff --git a/vendor/easyui/themes/bootstrap/images/tabs_icons.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/tabs_icons.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png diff --git a/vendor/easyui/themes/bootstrap/images/tree_icons.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/tree_icons.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png diff --git a/vendor/easyui/themes/bootstrap/images/validatebox_warning.png b/vendor/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/bootstrap/images/validatebox_warning.png rename to vendor/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png diff --git a/vendor/easyui/themes/bootstrap/layout.css b/vendor/FHC-vendor/easyui/themes/bootstrap/layout.css similarity index 100% rename from vendor/easyui/themes/bootstrap/layout.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/layout.css diff --git a/vendor/easyui/themes/bootstrap/linkbutton.css b/vendor/FHC-vendor/easyui/themes/bootstrap/linkbutton.css similarity index 100% rename from vendor/easyui/themes/bootstrap/linkbutton.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/linkbutton.css diff --git a/vendor/easyui/themes/bootstrap/menu.css b/vendor/FHC-vendor/easyui/themes/bootstrap/menu.css similarity index 100% rename from vendor/easyui/themes/bootstrap/menu.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/menu.css diff --git a/vendor/easyui/themes/bootstrap/menubutton.css b/vendor/FHC-vendor/easyui/themes/bootstrap/menubutton.css similarity index 100% rename from vendor/easyui/themes/bootstrap/menubutton.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/menubutton.css diff --git a/vendor/easyui/themes/bootstrap/messager.css b/vendor/FHC-vendor/easyui/themes/bootstrap/messager.css similarity index 100% rename from vendor/easyui/themes/bootstrap/messager.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/messager.css diff --git a/vendor/easyui/themes/bootstrap/numberbox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/numberbox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/numberbox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/numberbox.css diff --git a/vendor/easyui/themes/bootstrap/pagination.css b/vendor/FHC-vendor/easyui/themes/bootstrap/pagination.css similarity index 100% rename from vendor/easyui/themes/bootstrap/pagination.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/pagination.css diff --git a/vendor/easyui/themes/bootstrap/panel.css b/vendor/FHC-vendor/easyui/themes/bootstrap/panel.css similarity index 100% rename from vendor/easyui/themes/bootstrap/panel.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/panel.css diff --git a/vendor/easyui/themes/bootstrap/progressbar.css b/vendor/FHC-vendor/easyui/themes/bootstrap/progressbar.css similarity index 100% rename from vendor/easyui/themes/bootstrap/progressbar.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/progressbar.css diff --git a/vendor/easyui/themes/bootstrap/propertygrid.css b/vendor/FHC-vendor/easyui/themes/bootstrap/propertygrid.css similarity index 100% rename from vendor/easyui/themes/bootstrap/propertygrid.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/propertygrid.css diff --git a/vendor/easyui/themes/bootstrap/searchbox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/searchbox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/searchbox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/searchbox.css diff --git a/vendor/easyui/themes/bootstrap/slider.css b/vendor/FHC-vendor/easyui/themes/bootstrap/slider.css similarity index 100% rename from vendor/easyui/themes/bootstrap/slider.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/slider.css diff --git a/vendor/easyui/themes/bootstrap/spinner.css b/vendor/FHC-vendor/easyui/themes/bootstrap/spinner.css similarity index 100% rename from vendor/easyui/themes/bootstrap/spinner.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/spinner.css diff --git a/vendor/easyui/themes/bootstrap/splitbutton.css b/vendor/FHC-vendor/easyui/themes/bootstrap/splitbutton.css similarity index 100% rename from vendor/easyui/themes/bootstrap/splitbutton.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/splitbutton.css diff --git a/vendor/easyui/themes/bootstrap/switchbutton.css b/vendor/FHC-vendor/easyui/themes/bootstrap/switchbutton.css similarity index 100% rename from vendor/easyui/themes/bootstrap/switchbutton.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/switchbutton.css diff --git a/vendor/easyui/themes/bootstrap/tabs.css b/vendor/FHC-vendor/easyui/themes/bootstrap/tabs.css similarity index 100% rename from vendor/easyui/themes/bootstrap/tabs.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/tabs.css diff --git a/vendor/easyui/themes/bootstrap/textbox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/textbox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/textbox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/textbox.css diff --git a/vendor/easyui/themes/bootstrap/tooltip.css b/vendor/FHC-vendor/easyui/themes/bootstrap/tooltip.css similarity index 100% rename from vendor/easyui/themes/bootstrap/tooltip.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/tooltip.css diff --git a/vendor/easyui/themes/bootstrap/tree.css b/vendor/FHC-vendor/easyui/themes/bootstrap/tree.css similarity index 100% rename from vendor/easyui/themes/bootstrap/tree.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/tree.css diff --git a/vendor/easyui/themes/bootstrap/validatebox.css b/vendor/FHC-vendor/easyui/themes/bootstrap/validatebox.css similarity index 100% rename from vendor/easyui/themes/bootstrap/validatebox.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/validatebox.css diff --git a/vendor/easyui/themes/bootstrap/window.css b/vendor/FHC-vendor/easyui/themes/bootstrap/window.css similarity index 100% rename from vendor/easyui/themes/bootstrap/window.css rename to vendor/FHC-vendor/easyui/themes/bootstrap/window.css diff --git a/vendor/easyui/themes/color.css b/vendor/FHC-vendor/easyui/themes/color.css old mode 100755 new mode 100644 similarity index 97% rename from vendor/easyui/themes/color.css rename to vendor/FHC-vendor/easyui/themes/color.css index ee224c940..9f811596e --- a/vendor/easyui/themes/color.css +++ b/vendor/FHC-vendor/easyui/themes/color.css @@ -1,112 +1,112 @@ -.c1,.c1:hover{ - color: #fff; - border-color: #3c8b3c; - background: #4cae4c; - background: -webkit-linear-gradient(top,#4cae4c 0,#449d44 100%); - background: -moz-linear-gradient(top,#4cae4c 0,#449d44 100%); - background: -o-linear-gradient(top,#4cae4c 0,#449d44 100%); - background: linear-gradient(to bottom,#4cae4c 0,#449d44 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cae4c,endColorstr=#449d44,GradientType=0); -} -a.c1:hover{ - background: #449d44; - filter: none; -} -.c2,.c2:hover{ - color: #fff; - border-color: #5f5f5f; - background: #747474; - background: -webkit-linear-gradient(top,#747474 0,#676767 100%); - background: -moz-linear-gradient(top,#747474 0,#676767 100%); - background: -o-linear-gradient(top,#747474 0,#676767 100%); - background: linear-gradient(to bottom,#747474 0,#676767 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#747474,endColorstr=#676767,GradientType=0); -} -a.c2:hover{ - background: #676767; - filter: none; -} -.c3,.c3:hover{ - color: #333; - border-color: #ff8080; - background: #ffb3b3; - background: -webkit-linear-gradient(top,#ffb3b3 0,#ff9999 100%); - background: -moz-linear-gradient(top,#ffb3b3 0,#ff9999 100%); - background: -o-linear-gradient(top,#ffb3b3 0,#ff9999 100%); - background: linear-gradient(to bottom,#ffb3b3 0,#ff9999 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffb3b3,endColorstr=#ff9999,GradientType=0); -} -a.c3:hover{ - background: #ff9999; - filter: none; -} -.c4,.c4:hover{ - color: #333; - border-color: #52d689; - background: #b8eecf; - background: -webkit-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); - background: -moz-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); - background: -o-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); - background: linear-gradient(to bottom,#b8eecf 0,#a4e9c1 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b8eecf,endColorstr=#a4e9c1,GradientType=0); -} -a.c4:hover{ - background: #a4e9c1; - filter: none; -} -.c5,.c5:hover{ - color: #fff; - border-color: #b52b27; - background: #d84f4b; - background: -webkit-linear-gradient(top,#d84f4b 0,#c9302c 100%); - background: -moz-linear-gradient(top,#d84f4b 0,#c9302c 100%); - background: -o-linear-gradient(top,#d84f4b 0,#c9302c 100%); - background: linear-gradient(to bottom,#d84f4b 0,#c9302c 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#d84f4b,endColorstr=#c9302c,GradientType=0); -} -a.c5:hover{ - background: #c9302c; - filter: none; -} -.c6,.c6:hover{ - color: #fff; - border-color: #1f637b; - background: #2984a4; - background: -webkit-linear-gradient(top,#2984a4 0,#24748f 100%); - background: -moz-linear-gradient(top,#2984a4 0,#24748f 100%); - background: -o-linear-gradient(top,#2984a4 0,#24748f 100%); - background: linear-gradient(to bottom,#2984a4 0,#24748f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#2984a4,endColorstr=#24748f,GradientType=0); -} -a.c6:hover{ - background: #24748f; - filter: none; -} -.c7,.c7:hover{ - color: #333; - border-color: #e68900; - background: #ffab2e; - background: -webkit-linear-gradient(top,#ffab2e 0,#ff9900 100%); - background: -moz-linear-gradient(top,#ffab2e 0,#ff9900 100%); - background: -o-linear-gradient(top,#ffab2e 0,#ff9900 100%); - background: linear-gradient(to bottom,#ffab2e 0,#ff9900 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffab2e,endColorstr=#ff9900,GradientType=0); -} -a.c7:hover{ - background: #ff9900; - filter: none; -} -.c8,.c8:hover{ - color: #fff; - border-color: #4b72a4; - background: #698cba; - background: -webkit-linear-gradient(top,#698cba 0,#577eb2 100%); - background: -moz-linear-gradient(top,#698cba 0,#577eb2 100%); - background: -o-linear-gradient(top,#698cba 0,#577eb2 100%); - background: linear-gradient(to bottom,#698cba 0,#577eb2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#698cba,endColorstr=#577eb2,GradientType=0); -} -a.c8:hover{ - background: #577eb2; - filter: none; -} +.c1,.c1:hover{ + color: #fff; + border-color: #3c8b3c; + background: #4cae4c; + background: -webkit-linear-gradient(top,#4cae4c 0,#449d44 100%); + background: -moz-linear-gradient(top,#4cae4c 0,#449d44 100%); + background: -o-linear-gradient(top,#4cae4c 0,#449d44 100%); + background: linear-gradient(to bottom,#4cae4c 0,#449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cae4c,endColorstr=#449d44,GradientType=0); +} +a.c1:hover{ + background: #449d44; + filter: none; +} +.c2,.c2:hover{ + color: #fff; + border-color: #5f5f5f; + background: #747474; + background: -webkit-linear-gradient(top,#747474 0,#676767 100%); + background: -moz-linear-gradient(top,#747474 0,#676767 100%); + background: -o-linear-gradient(top,#747474 0,#676767 100%); + background: linear-gradient(to bottom,#747474 0,#676767 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#747474,endColorstr=#676767,GradientType=0); +} +a.c2:hover{ + background: #676767; + filter: none; +} +.c3,.c3:hover{ + color: #333; + border-color: #ff8080; + background: #ffb3b3; + background: -webkit-linear-gradient(top,#ffb3b3 0,#ff9999 100%); + background: -moz-linear-gradient(top,#ffb3b3 0,#ff9999 100%); + background: -o-linear-gradient(top,#ffb3b3 0,#ff9999 100%); + background: linear-gradient(to bottom,#ffb3b3 0,#ff9999 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffb3b3,endColorstr=#ff9999,GradientType=0); +} +a.c3:hover{ + background: #ff9999; + filter: none; +} +.c4,.c4:hover{ + color: #333; + border-color: #52d689; + background: #b8eecf; + background: -webkit-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); + background: -moz-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); + background: -o-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); + background: linear-gradient(to bottom,#b8eecf 0,#a4e9c1 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b8eecf,endColorstr=#a4e9c1,GradientType=0); +} +a.c4:hover{ + background: #a4e9c1; + filter: none; +} +.c5,.c5:hover{ + color: #fff; + border-color: #b52b27; + background: #d84f4b; + background: -webkit-linear-gradient(top,#d84f4b 0,#c9302c 100%); + background: -moz-linear-gradient(top,#d84f4b 0,#c9302c 100%); + background: -o-linear-gradient(top,#d84f4b 0,#c9302c 100%); + background: linear-gradient(to bottom,#d84f4b 0,#c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#d84f4b,endColorstr=#c9302c,GradientType=0); +} +a.c5:hover{ + background: #c9302c; + filter: none; +} +.c6,.c6:hover{ + color: #fff; + border-color: #1f637b; + background: #2984a4; + background: -webkit-linear-gradient(top,#2984a4 0,#24748f 100%); + background: -moz-linear-gradient(top,#2984a4 0,#24748f 100%); + background: -o-linear-gradient(top,#2984a4 0,#24748f 100%); + background: linear-gradient(to bottom,#2984a4 0,#24748f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#2984a4,endColorstr=#24748f,GradientType=0); +} +a.c6:hover{ + background: #24748f; + filter: none; +} +.c7,.c7:hover{ + color: #333; + border-color: #e68900; + background: #ffab2e; + background: -webkit-linear-gradient(top,#ffab2e 0,#ff9900 100%); + background: -moz-linear-gradient(top,#ffab2e 0,#ff9900 100%); + background: -o-linear-gradient(top,#ffab2e 0,#ff9900 100%); + background: linear-gradient(to bottom,#ffab2e 0,#ff9900 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffab2e,endColorstr=#ff9900,GradientType=0); +} +a.c7:hover{ + background: #ff9900; + filter: none; +} +.c8,.c8:hover{ + color: #fff; + border-color: #4b72a4; + background: #698cba; + background: -webkit-linear-gradient(top,#698cba 0,#577eb2 100%); + background: -moz-linear-gradient(top,#698cba 0,#577eb2 100%); + background: -o-linear-gradient(top,#698cba 0,#577eb2 100%); + background: linear-gradient(to bottom,#698cba 0,#577eb2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#698cba,endColorstr=#577eb2,GradientType=0); +} +a.c8:hover{ + background: #577eb2; + filter: none; +} diff --git a/vendor/easyui/themes/default/accordion.css b/vendor/FHC-vendor/easyui/themes/default/accordion.css similarity index 100% rename from vendor/easyui/themes/default/accordion.css rename to vendor/FHC-vendor/easyui/themes/default/accordion.css diff --git a/vendor/easyui/themes/default/calendar.css b/vendor/FHC-vendor/easyui/themes/default/calendar.css similarity index 100% rename from vendor/easyui/themes/default/calendar.css rename to vendor/FHC-vendor/easyui/themes/default/calendar.css diff --git a/vendor/easyui/themes/default/combo.css b/vendor/FHC-vendor/easyui/themes/default/combo.css similarity index 100% rename from vendor/easyui/themes/default/combo.css rename to vendor/FHC-vendor/easyui/themes/default/combo.css diff --git a/vendor/easyui/themes/default/combobox.css b/vendor/FHC-vendor/easyui/themes/default/combobox.css similarity index 100% rename from vendor/easyui/themes/default/combobox.css rename to vendor/FHC-vendor/easyui/themes/default/combobox.css diff --git a/vendor/easyui/themes/default/datagrid.css b/vendor/FHC-vendor/easyui/themes/default/datagrid.css similarity index 100% rename from vendor/easyui/themes/default/datagrid.css rename to vendor/FHC-vendor/easyui/themes/default/datagrid.css diff --git a/vendor/easyui/themes/default/datalist.css b/vendor/FHC-vendor/easyui/themes/default/datalist.css similarity index 100% rename from vendor/easyui/themes/default/datalist.css rename to vendor/FHC-vendor/easyui/themes/default/datalist.css diff --git a/vendor/easyui/themes/default/datebox.css b/vendor/FHC-vendor/easyui/themes/default/datebox.css similarity index 100% rename from vendor/easyui/themes/default/datebox.css rename to vendor/FHC-vendor/easyui/themes/default/datebox.css diff --git a/vendor/easyui/themes/default/dialog.css b/vendor/FHC-vendor/easyui/themes/default/dialog.css similarity index 100% rename from vendor/easyui/themes/default/dialog.css rename to vendor/FHC-vendor/easyui/themes/default/dialog.css diff --git a/vendor/easyui/themes/default/easyui.css b/vendor/FHC-vendor/easyui/themes/default/easyui.css similarity index 100% rename from vendor/easyui/themes/default/easyui.css rename to vendor/FHC-vendor/easyui/themes/default/easyui.css diff --git a/vendor/easyui/themes/default/filebox.css b/vendor/FHC-vendor/easyui/themes/default/filebox.css similarity index 100% rename from vendor/easyui/themes/default/filebox.css rename to vendor/FHC-vendor/easyui/themes/default/filebox.css diff --git a/vendor/easyui/themes/default/images/accordion_arrows.png b/vendor/FHC-vendor/easyui/themes/default/images/accordion_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/accordion_arrows.png rename to vendor/FHC-vendor/easyui/themes/default/images/accordion_arrows.png diff --git a/vendor/easyui/themes/default/images/blank.gif b/vendor/FHC-vendor/easyui/themes/default/images/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/blank.gif rename to vendor/FHC-vendor/easyui/themes/default/images/blank.gif diff --git a/vendor/easyui/themes/default/images/calendar_arrows.png b/vendor/FHC-vendor/easyui/themes/default/images/calendar_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/calendar_arrows.png rename to vendor/FHC-vendor/easyui/themes/default/images/calendar_arrows.png diff --git a/vendor/easyui/themes/default/images/combo_arrow.png b/vendor/FHC-vendor/easyui/themes/default/images/combo_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/combo_arrow.png rename to vendor/FHC-vendor/easyui/themes/default/images/combo_arrow.png diff --git a/vendor/easyui/themes/default/images/datagrid_icons.png b/vendor/FHC-vendor/easyui/themes/default/images/datagrid_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/datagrid_icons.png rename to vendor/FHC-vendor/easyui/themes/default/images/datagrid_icons.png diff --git a/vendor/easyui/themes/default/images/datebox_arrow.png b/vendor/FHC-vendor/easyui/themes/default/images/datebox_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/datebox_arrow.png rename to vendor/FHC-vendor/easyui/themes/default/images/datebox_arrow.png diff --git a/vendor/easyui/themes/default/images/layout_arrows.png b/vendor/FHC-vendor/easyui/themes/default/images/layout_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/layout_arrows.png rename to vendor/FHC-vendor/easyui/themes/default/images/layout_arrows.png diff --git a/vendor/easyui/themes/default/images/linkbutton_bg.png b/vendor/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/linkbutton_bg.png rename to vendor/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png diff --git a/vendor/easyui/themes/default/images/loading.gif b/vendor/FHC-vendor/easyui/themes/default/images/loading.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/loading.gif rename to vendor/FHC-vendor/easyui/themes/default/images/loading.gif diff --git a/vendor/easyui/themes/default/images/menu_arrows.png b/vendor/FHC-vendor/easyui/themes/default/images/menu_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/menu_arrows.png rename to vendor/FHC-vendor/easyui/themes/default/images/menu_arrows.png diff --git a/vendor/easyui/themes/default/images/messager_icons.png b/vendor/FHC-vendor/easyui/themes/default/images/messager_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/messager_icons.png rename to vendor/FHC-vendor/easyui/themes/default/images/messager_icons.png diff --git a/vendor/easyui/themes/default/images/pagination_icons.png b/vendor/FHC-vendor/easyui/themes/default/images/pagination_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/pagination_icons.png rename to vendor/FHC-vendor/easyui/themes/default/images/pagination_icons.png diff --git a/vendor/easyui/themes/default/images/panel_tools.png b/vendor/FHC-vendor/easyui/themes/default/images/panel_tools.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/panel_tools.png rename to vendor/FHC-vendor/easyui/themes/default/images/panel_tools.png diff --git a/vendor/easyui/themes/default/images/searchbox_button.png b/vendor/FHC-vendor/easyui/themes/default/images/searchbox_button.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/searchbox_button.png rename to vendor/FHC-vendor/easyui/themes/default/images/searchbox_button.png diff --git a/vendor/easyui/themes/default/images/slider_handle.png b/vendor/FHC-vendor/easyui/themes/default/images/slider_handle.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/slider_handle.png rename to vendor/FHC-vendor/easyui/themes/default/images/slider_handle.png diff --git a/vendor/easyui/themes/default/images/spinner_arrows.png b/vendor/FHC-vendor/easyui/themes/default/images/spinner_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/spinner_arrows.png rename to vendor/FHC-vendor/easyui/themes/default/images/spinner_arrows.png diff --git a/vendor/easyui/themes/default/images/tabs_icons.png b/vendor/FHC-vendor/easyui/themes/default/images/tabs_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/tabs_icons.png rename to vendor/FHC-vendor/easyui/themes/default/images/tabs_icons.png diff --git a/vendor/easyui/themes/default/images/tree_icons.png b/vendor/FHC-vendor/easyui/themes/default/images/tree_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/tree_icons.png rename to vendor/FHC-vendor/easyui/themes/default/images/tree_icons.png diff --git a/vendor/easyui/themes/default/images/validatebox_warning.png b/vendor/FHC-vendor/easyui/themes/default/images/validatebox_warning.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/default/images/validatebox_warning.png rename to vendor/FHC-vendor/easyui/themes/default/images/validatebox_warning.png diff --git a/vendor/easyui/themes/default/layout.css b/vendor/FHC-vendor/easyui/themes/default/layout.css similarity index 100% rename from vendor/easyui/themes/default/layout.css rename to vendor/FHC-vendor/easyui/themes/default/layout.css diff --git a/vendor/easyui/themes/default/linkbutton.css b/vendor/FHC-vendor/easyui/themes/default/linkbutton.css similarity index 100% rename from vendor/easyui/themes/default/linkbutton.css rename to vendor/FHC-vendor/easyui/themes/default/linkbutton.css diff --git a/vendor/easyui/themes/default/menu.css b/vendor/FHC-vendor/easyui/themes/default/menu.css similarity index 100% rename from vendor/easyui/themes/default/menu.css rename to vendor/FHC-vendor/easyui/themes/default/menu.css diff --git a/vendor/easyui/themes/default/menubutton.css b/vendor/FHC-vendor/easyui/themes/default/menubutton.css similarity index 100% rename from vendor/easyui/themes/default/menubutton.css rename to vendor/FHC-vendor/easyui/themes/default/menubutton.css diff --git a/vendor/easyui/themes/default/messager.css b/vendor/FHC-vendor/easyui/themes/default/messager.css similarity index 100% rename from vendor/easyui/themes/default/messager.css rename to vendor/FHC-vendor/easyui/themes/default/messager.css diff --git a/vendor/easyui/themes/default/numberbox.css b/vendor/FHC-vendor/easyui/themes/default/numberbox.css similarity index 100% rename from vendor/easyui/themes/default/numberbox.css rename to vendor/FHC-vendor/easyui/themes/default/numberbox.css diff --git a/vendor/easyui/themes/default/pagination.css b/vendor/FHC-vendor/easyui/themes/default/pagination.css similarity index 100% rename from vendor/easyui/themes/default/pagination.css rename to vendor/FHC-vendor/easyui/themes/default/pagination.css diff --git a/vendor/easyui/themes/default/panel.css b/vendor/FHC-vendor/easyui/themes/default/panel.css similarity index 100% rename from vendor/easyui/themes/default/panel.css rename to vendor/FHC-vendor/easyui/themes/default/panel.css diff --git a/vendor/easyui/themes/default/progressbar.css b/vendor/FHC-vendor/easyui/themes/default/progressbar.css similarity index 100% rename from vendor/easyui/themes/default/progressbar.css rename to vendor/FHC-vendor/easyui/themes/default/progressbar.css diff --git a/vendor/easyui/themes/default/propertygrid.css b/vendor/FHC-vendor/easyui/themes/default/propertygrid.css similarity index 100% rename from vendor/easyui/themes/default/propertygrid.css rename to vendor/FHC-vendor/easyui/themes/default/propertygrid.css diff --git a/vendor/easyui/themes/default/searchbox.css b/vendor/FHC-vendor/easyui/themes/default/searchbox.css similarity index 100% rename from vendor/easyui/themes/default/searchbox.css rename to vendor/FHC-vendor/easyui/themes/default/searchbox.css diff --git a/vendor/easyui/themes/default/slider.css b/vendor/FHC-vendor/easyui/themes/default/slider.css similarity index 100% rename from vendor/easyui/themes/default/slider.css rename to vendor/FHC-vendor/easyui/themes/default/slider.css diff --git a/vendor/easyui/themes/default/spinner.css b/vendor/FHC-vendor/easyui/themes/default/spinner.css similarity index 100% rename from vendor/easyui/themes/default/spinner.css rename to vendor/FHC-vendor/easyui/themes/default/spinner.css diff --git a/vendor/easyui/themes/default/splitbutton.css b/vendor/FHC-vendor/easyui/themes/default/splitbutton.css similarity index 100% rename from vendor/easyui/themes/default/splitbutton.css rename to vendor/FHC-vendor/easyui/themes/default/splitbutton.css diff --git a/vendor/easyui/themes/default/switchbutton.css b/vendor/FHC-vendor/easyui/themes/default/switchbutton.css similarity index 100% rename from vendor/easyui/themes/default/switchbutton.css rename to vendor/FHC-vendor/easyui/themes/default/switchbutton.css diff --git a/vendor/easyui/themes/default/tabs.css b/vendor/FHC-vendor/easyui/themes/default/tabs.css similarity index 100% rename from vendor/easyui/themes/default/tabs.css rename to vendor/FHC-vendor/easyui/themes/default/tabs.css diff --git a/vendor/easyui/themes/default/textbox.css b/vendor/FHC-vendor/easyui/themes/default/textbox.css similarity index 100% rename from vendor/easyui/themes/default/textbox.css rename to vendor/FHC-vendor/easyui/themes/default/textbox.css diff --git a/vendor/easyui/themes/default/tooltip.css b/vendor/FHC-vendor/easyui/themes/default/tooltip.css similarity index 100% rename from vendor/easyui/themes/default/tooltip.css rename to vendor/FHC-vendor/easyui/themes/default/tooltip.css diff --git a/vendor/easyui/themes/default/tree.css b/vendor/FHC-vendor/easyui/themes/default/tree.css similarity index 100% rename from vendor/easyui/themes/default/tree.css rename to vendor/FHC-vendor/easyui/themes/default/tree.css diff --git a/vendor/easyui/themes/default/validatebox.css b/vendor/FHC-vendor/easyui/themes/default/validatebox.css similarity index 100% rename from vendor/easyui/themes/default/validatebox.css rename to vendor/FHC-vendor/easyui/themes/default/validatebox.css diff --git a/vendor/easyui/themes/default/window.css b/vendor/FHC-vendor/easyui/themes/default/window.css similarity index 100% rename from vendor/easyui/themes/default/window.css rename to vendor/FHC-vendor/easyui/themes/default/window.css diff --git a/vendor/easyui/themes/gray/accordion.css b/vendor/FHC-vendor/easyui/themes/gray/accordion.css similarity index 100% rename from vendor/easyui/themes/gray/accordion.css rename to vendor/FHC-vendor/easyui/themes/gray/accordion.css diff --git a/vendor/easyui/themes/gray/calendar.css b/vendor/FHC-vendor/easyui/themes/gray/calendar.css similarity index 100% rename from vendor/easyui/themes/gray/calendar.css rename to vendor/FHC-vendor/easyui/themes/gray/calendar.css diff --git a/vendor/easyui/themes/gray/combo.css b/vendor/FHC-vendor/easyui/themes/gray/combo.css similarity index 100% rename from vendor/easyui/themes/gray/combo.css rename to vendor/FHC-vendor/easyui/themes/gray/combo.css diff --git a/vendor/easyui/themes/gray/combobox.css b/vendor/FHC-vendor/easyui/themes/gray/combobox.css similarity index 100% rename from vendor/easyui/themes/gray/combobox.css rename to vendor/FHC-vendor/easyui/themes/gray/combobox.css diff --git a/vendor/easyui/themes/gray/datagrid.css b/vendor/FHC-vendor/easyui/themes/gray/datagrid.css similarity index 100% rename from vendor/easyui/themes/gray/datagrid.css rename to vendor/FHC-vendor/easyui/themes/gray/datagrid.css diff --git a/vendor/easyui/themes/gray/datalist.css b/vendor/FHC-vendor/easyui/themes/gray/datalist.css similarity index 100% rename from vendor/easyui/themes/gray/datalist.css rename to vendor/FHC-vendor/easyui/themes/gray/datalist.css diff --git a/vendor/easyui/themes/gray/datebox.css b/vendor/FHC-vendor/easyui/themes/gray/datebox.css similarity index 100% rename from vendor/easyui/themes/gray/datebox.css rename to vendor/FHC-vendor/easyui/themes/gray/datebox.css diff --git a/vendor/easyui/themes/gray/dialog.css b/vendor/FHC-vendor/easyui/themes/gray/dialog.css similarity index 100% rename from vendor/easyui/themes/gray/dialog.css rename to vendor/FHC-vendor/easyui/themes/gray/dialog.css diff --git a/vendor/easyui/themes/gray/easyui.css b/vendor/FHC-vendor/easyui/themes/gray/easyui.css similarity index 100% rename from vendor/easyui/themes/gray/easyui.css rename to vendor/FHC-vendor/easyui/themes/gray/easyui.css diff --git a/vendor/easyui/themes/gray/filebox.css b/vendor/FHC-vendor/easyui/themes/gray/filebox.css similarity index 100% rename from vendor/easyui/themes/gray/filebox.css rename to vendor/FHC-vendor/easyui/themes/gray/filebox.css diff --git a/vendor/easyui/themes/gray/images/accordion_arrows.png b/vendor/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/accordion_arrows.png rename to vendor/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png diff --git a/vendor/easyui/themes/gray/images/blank.gif b/vendor/FHC-vendor/easyui/themes/gray/images/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/blank.gif rename to vendor/FHC-vendor/easyui/themes/gray/images/blank.gif diff --git a/vendor/easyui/themes/gray/images/calendar_arrows.png b/vendor/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/calendar_arrows.png rename to vendor/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png diff --git a/vendor/easyui/themes/gray/images/combo_arrow.png b/vendor/FHC-vendor/easyui/themes/gray/images/combo_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/combo_arrow.png rename to vendor/FHC-vendor/easyui/themes/gray/images/combo_arrow.png diff --git a/vendor/easyui/themes/gray/images/datagrid_icons.png b/vendor/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/datagrid_icons.png rename to vendor/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png diff --git a/vendor/easyui/themes/gray/images/datebox_arrow.png b/vendor/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/datebox_arrow.png rename to vendor/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png diff --git a/vendor/easyui/themes/gray/images/layout_arrows.png b/vendor/FHC-vendor/easyui/themes/gray/images/layout_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/layout_arrows.png rename to vendor/FHC-vendor/easyui/themes/gray/images/layout_arrows.png diff --git a/vendor/easyui/themes/gray/images/linkbutton_bg.png b/vendor/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/linkbutton_bg.png rename to vendor/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png diff --git a/vendor/easyui/themes/gray/images/loading.gif b/vendor/FHC-vendor/easyui/themes/gray/images/loading.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/loading.gif rename to vendor/FHC-vendor/easyui/themes/gray/images/loading.gif diff --git a/vendor/easyui/themes/gray/images/menu_arrows.png b/vendor/FHC-vendor/easyui/themes/gray/images/menu_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/menu_arrows.png rename to vendor/FHC-vendor/easyui/themes/gray/images/menu_arrows.png diff --git a/vendor/easyui/themes/gray/images/messager_icons.png b/vendor/FHC-vendor/easyui/themes/gray/images/messager_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/messager_icons.png rename to vendor/FHC-vendor/easyui/themes/gray/images/messager_icons.png diff --git a/vendor/easyui/themes/gray/images/pagination_icons.png b/vendor/FHC-vendor/easyui/themes/gray/images/pagination_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/pagination_icons.png rename to vendor/FHC-vendor/easyui/themes/gray/images/pagination_icons.png diff --git a/vendor/easyui/themes/gray/images/panel_tools.png b/vendor/FHC-vendor/easyui/themes/gray/images/panel_tools.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/panel_tools.png rename to vendor/FHC-vendor/easyui/themes/gray/images/panel_tools.png diff --git a/vendor/easyui/themes/gray/images/searchbox_button.png b/vendor/FHC-vendor/easyui/themes/gray/images/searchbox_button.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/searchbox_button.png rename to vendor/FHC-vendor/easyui/themes/gray/images/searchbox_button.png diff --git a/vendor/easyui/themes/gray/images/slider_handle.png b/vendor/FHC-vendor/easyui/themes/gray/images/slider_handle.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/slider_handle.png rename to vendor/FHC-vendor/easyui/themes/gray/images/slider_handle.png diff --git a/vendor/easyui/themes/gray/images/spinner_arrows.png b/vendor/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/spinner_arrows.png rename to vendor/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png diff --git a/vendor/easyui/themes/gray/images/tabs_icons.png b/vendor/FHC-vendor/easyui/themes/gray/images/tabs_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/tabs_icons.png rename to vendor/FHC-vendor/easyui/themes/gray/images/tabs_icons.png diff --git a/vendor/easyui/themes/gray/images/tree_icons.png b/vendor/FHC-vendor/easyui/themes/gray/images/tree_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/tree_icons.png rename to vendor/FHC-vendor/easyui/themes/gray/images/tree_icons.png diff --git a/vendor/easyui/themes/gray/images/validatebox_warning.png b/vendor/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/gray/images/validatebox_warning.png rename to vendor/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png diff --git a/vendor/easyui/themes/gray/layout.css b/vendor/FHC-vendor/easyui/themes/gray/layout.css similarity index 100% rename from vendor/easyui/themes/gray/layout.css rename to vendor/FHC-vendor/easyui/themes/gray/layout.css diff --git a/vendor/easyui/themes/gray/linkbutton.css b/vendor/FHC-vendor/easyui/themes/gray/linkbutton.css similarity index 100% rename from vendor/easyui/themes/gray/linkbutton.css rename to vendor/FHC-vendor/easyui/themes/gray/linkbutton.css diff --git a/vendor/easyui/themes/gray/menu.css b/vendor/FHC-vendor/easyui/themes/gray/menu.css similarity index 100% rename from vendor/easyui/themes/gray/menu.css rename to vendor/FHC-vendor/easyui/themes/gray/menu.css diff --git a/vendor/easyui/themes/gray/menubutton.css b/vendor/FHC-vendor/easyui/themes/gray/menubutton.css similarity index 100% rename from vendor/easyui/themes/gray/menubutton.css rename to vendor/FHC-vendor/easyui/themes/gray/menubutton.css diff --git a/vendor/easyui/themes/gray/messager.css b/vendor/FHC-vendor/easyui/themes/gray/messager.css similarity index 100% rename from vendor/easyui/themes/gray/messager.css rename to vendor/FHC-vendor/easyui/themes/gray/messager.css diff --git a/vendor/easyui/themes/gray/numberbox.css b/vendor/FHC-vendor/easyui/themes/gray/numberbox.css similarity index 100% rename from vendor/easyui/themes/gray/numberbox.css rename to vendor/FHC-vendor/easyui/themes/gray/numberbox.css diff --git a/vendor/easyui/themes/gray/pagination.css b/vendor/FHC-vendor/easyui/themes/gray/pagination.css similarity index 100% rename from vendor/easyui/themes/gray/pagination.css rename to vendor/FHC-vendor/easyui/themes/gray/pagination.css diff --git a/vendor/easyui/themes/gray/panel.css b/vendor/FHC-vendor/easyui/themes/gray/panel.css similarity index 100% rename from vendor/easyui/themes/gray/panel.css rename to vendor/FHC-vendor/easyui/themes/gray/panel.css diff --git a/vendor/easyui/themes/gray/progressbar.css b/vendor/FHC-vendor/easyui/themes/gray/progressbar.css similarity index 100% rename from vendor/easyui/themes/gray/progressbar.css rename to vendor/FHC-vendor/easyui/themes/gray/progressbar.css diff --git a/vendor/easyui/themes/gray/propertygrid.css b/vendor/FHC-vendor/easyui/themes/gray/propertygrid.css similarity index 100% rename from vendor/easyui/themes/gray/propertygrid.css rename to vendor/FHC-vendor/easyui/themes/gray/propertygrid.css diff --git a/vendor/easyui/themes/gray/searchbox.css b/vendor/FHC-vendor/easyui/themes/gray/searchbox.css similarity index 100% rename from vendor/easyui/themes/gray/searchbox.css rename to vendor/FHC-vendor/easyui/themes/gray/searchbox.css diff --git a/vendor/easyui/themes/gray/slider.css b/vendor/FHC-vendor/easyui/themes/gray/slider.css similarity index 100% rename from vendor/easyui/themes/gray/slider.css rename to vendor/FHC-vendor/easyui/themes/gray/slider.css diff --git a/vendor/easyui/themes/gray/spinner.css b/vendor/FHC-vendor/easyui/themes/gray/spinner.css similarity index 100% rename from vendor/easyui/themes/gray/spinner.css rename to vendor/FHC-vendor/easyui/themes/gray/spinner.css diff --git a/vendor/easyui/themes/gray/splitbutton.css b/vendor/FHC-vendor/easyui/themes/gray/splitbutton.css similarity index 100% rename from vendor/easyui/themes/gray/splitbutton.css rename to vendor/FHC-vendor/easyui/themes/gray/splitbutton.css diff --git a/vendor/easyui/themes/gray/switchbutton.css b/vendor/FHC-vendor/easyui/themes/gray/switchbutton.css similarity index 100% rename from vendor/easyui/themes/gray/switchbutton.css rename to vendor/FHC-vendor/easyui/themes/gray/switchbutton.css diff --git a/vendor/easyui/themes/gray/tabs.css b/vendor/FHC-vendor/easyui/themes/gray/tabs.css similarity index 100% rename from vendor/easyui/themes/gray/tabs.css rename to vendor/FHC-vendor/easyui/themes/gray/tabs.css diff --git a/vendor/easyui/themes/gray/textbox.css b/vendor/FHC-vendor/easyui/themes/gray/textbox.css similarity index 100% rename from vendor/easyui/themes/gray/textbox.css rename to vendor/FHC-vendor/easyui/themes/gray/textbox.css diff --git a/vendor/easyui/themes/gray/tooltip.css b/vendor/FHC-vendor/easyui/themes/gray/tooltip.css similarity index 100% rename from vendor/easyui/themes/gray/tooltip.css rename to vendor/FHC-vendor/easyui/themes/gray/tooltip.css diff --git a/vendor/easyui/themes/gray/tree.css b/vendor/FHC-vendor/easyui/themes/gray/tree.css similarity index 100% rename from vendor/easyui/themes/gray/tree.css rename to vendor/FHC-vendor/easyui/themes/gray/tree.css diff --git a/vendor/easyui/themes/gray/validatebox.css b/vendor/FHC-vendor/easyui/themes/gray/validatebox.css similarity index 100% rename from vendor/easyui/themes/gray/validatebox.css rename to vendor/FHC-vendor/easyui/themes/gray/validatebox.css diff --git a/vendor/easyui/themes/gray/window.css b/vendor/FHC-vendor/easyui/themes/gray/window.css similarity index 100% rename from vendor/easyui/themes/gray/window.css rename to vendor/FHC-vendor/easyui/themes/gray/window.css diff --git a/vendor/easyui/themes/icon.css b/vendor/FHC-vendor/easyui/themes/icon.css old mode 100755 new mode 100644 similarity index 96% rename from vendor/easyui/themes/icon.css rename to vendor/FHC-vendor/easyui/themes/icon.css index 50d4f1b65..c2d3b2161 --- a/vendor/easyui/themes/icon.css +++ b/vendor/FHC-vendor/easyui/themes/icon.css @@ -1,96 +1,96 @@ -.icon-blank{ - background:url('icons/blank.gif') no-repeat center center; -} -.icon-add{ - background:url('icons/edit_add.png') no-repeat center center; -} -.icon-edit{ - background:url('icons/pencil.png') no-repeat center center; -} -.icon-clear{ - background:url('icons/clear.png') no-repeat center center; -} -.icon-remove{ - background:url('icons/edit_remove.png') no-repeat center center; -} -.icon-save{ - background:url('icons/filesave.png') no-repeat center center; -} -.icon-cut{ - background:url('icons/cut.png') no-repeat center center; -} -.icon-ok{ - background:url('icons/ok.png') no-repeat center center; -} -.icon-no{ - background:url('icons/no.png') no-repeat center center; -} -.icon-cancel{ - background:url('icons/cancel.png') no-repeat center center; -} -.icon-reload{ - background:url('icons/reload.png') no-repeat center center; -} -.icon-search{ - background:url('icons/search.png') no-repeat center center; -} -.icon-print{ - background:url('icons/print.png') no-repeat center center; -} -.icon-help{ - background:url('icons/help.png') no-repeat center center; -} -.icon-undo{ - background:url('icons/undo.png') no-repeat center center; -} -.icon-redo{ - background:url('icons/redo.png') no-repeat center center; -} -.icon-back{ - background:url('icons/back.png') no-repeat center center; -} -.icon-sum{ - background:url('icons/sum.png') no-repeat center center; -} -.icon-tip{ - background:url('icons/tip.png') no-repeat center center; -} -.icon-filter{ - background:url('icons/filter.png') no-repeat center center; -} -.icon-man{ - background:url('icons/man.png') no-repeat center center; -} -.icon-lock{ - background:url('icons/lock.png') no-repeat center center; -} -.icon-more{ - background:url('icons/more.png') no-repeat center center; -} - - -.icon-mini-add{ - background:url('icons/mini_add.png') no-repeat center center; -} -.icon-mini-edit{ - background:url('icons/mini_edit.png') no-repeat center center; -} -.icon-mini-refresh{ - background:url('icons/mini_refresh.png') no-repeat center center; -} - -.icon-large-picture{ - background:url('icons/large_picture.png') no-repeat center center; -} -.icon-large-clipart{ - background:url('icons/large_clipart.png') no-repeat center center; -} -.icon-large-shapes{ - background:url('icons/large_shapes.png') no-repeat center center; -} -.icon-large-smartart{ - background:url('icons/large_smartart.png') no-repeat center center; -} -.icon-large-chart{ - background:url('icons/large_chart.png') no-repeat center center; -} +.icon-blank{ + background:url('icons/blank.gif') no-repeat center center; +} +.icon-add{ + background:url('icons/edit_add.png') no-repeat center center; +} +.icon-edit{ + background:url('icons/pencil.png') no-repeat center center; +} +.icon-clear{ + background:url('icons/clear.png') no-repeat center center; +} +.icon-remove{ + background:url('icons/edit_remove.png') no-repeat center center; +} +.icon-save{ + background:url('icons/filesave.png') no-repeat center center; +} +.icon-cut{ + background:url('icons/cut.png') no-repeat center center; +} +.icon-ok{ + background:url('icons/ok.png') no-repeat center center; +} +.icon-no{ + background:url('icons/no.png') no-repeat center center; +} +.icon-cancel{ + background:url('icons/cancel.png') no-repeat center center; +} +.icon-reload{ + background:url('icons/reload.png') no-repeat center center; +} +.icon-search{ + background:url('icons/search.png') no-repeat center center; +} +.icon-print{ + background:url('icons/print.png') no-repeat center center; +} +.icon-help{ + background:url('icons/help.png') no-repeat center center; +} +.icon-undo{ + background:url('icons/undo.png') no-repeat center center; +} +.icon-redo{ + background:url('icons/redo.png') no-repeat center center; +} +.icon-back{ + background:url('icons/back.png') no-repeat center center; +} +.icon-sum{ + background:url('icons/sum.png') no-repeat center center; +} +.icon-tip{ + background:url('icons/tip.png') no-repeat center center; +} +.icon-filter{ + background:url('icons/filter.png') no-repeat center center; +} +.icon-man{ + background:url('icons/man.png') no-repeat center center; +} +.icon-lock{ + background:url('icons/lock.png') no-repeat center center; +} +.icon-more{ + background:url('icons/more.png') no-repeat center center; +} + + +.icon-mini-add{ + background:url('icons/mini_add.png') no-repeat center center; +} +.icon-mini-edit{ + background:url('icons/mini_edit.png') no-repeat center center; +} +.icon-mini-refresh{ + background:url('icons/mini_refresh.png') no-repeat center center; +} + +.icon-large-picture{ + background:url('icons/large_picture.png') no-repeat center center; +} +.icon-large-clipart{ + background:url('icons/large_clipart.png') no-repeat center center; +} +.icon-large-shapes{ + background:url('icons/large_shapes.png') no-repeat center center; +} +.icon-large-smartart{ + background:url('icons/large_smartart.png') no-repeat center center; +} +.icon-large-chart{ + background:url('icons/large_chart.png') no-repeat center center; +} diff --git a/vendor/easyui/themes/icons/back.png b/vendor/FHC-vendor/easyui/themes/icons/back.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/back.png rename to vendor/FHC-vendor/easyui/themes/icons/back.png diff --git a/vendor/easyui/themes/icons/blank.gif b/vendor/FHC-vendor/easyui/themes/icons/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/blank.gif rename to vendor/FHC-vendor/easyui/themes/icons/blank.gif diff --git a/vendor/easyui/themes/icons/cancel.png b/vendor/FHC-vendor/easyui/themes/icons/cancel.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/cancel.png rename to vendor/FHC-vendor/easyui/themes/icons/cancel.png diff --git a/vendor/easyui/themes/icons/clear.png b/vendor/FHC-vendor/easyui/themes/icons/clear.png similarity index 100% rename from vendor/easyui/themes/icons/clear.png rename to vendor/FHC-vendor/easyui/themes/icons/clear.png diff --git a/vendor/easyui/themes/icons/cut.png b/vendor/FHC-vendor/easyui/themes/icons/cut.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/cut.png rename to vendor/FHC-vendor/easyui/themes/icons/cut.png diff --git a/vendor/easyui/themes/icons/edit_add.png b/vendor/FHC-vendor/easyui/themes/icons/edit_add.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/edit_add.png rename to vendor/FHC-vendor/easyui/themes/icons/edit_add.png diff --git a/vendor/easyui/themes/icons/edit_remove.png b/vendor/FHC-vendor/easyui/themes/icons/edit_remove.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/edit_remove.png rename to vendor/FHC-vendor/easyui/themes/icons/edit_remove.png diff --git a/vendor/easyui/themes/icons/filesave.png b/vendor/FHC-vendor/easyui/themes/icons/filesave.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/filesave.png rename to vendor/FHC-vendor/easyui/themes/icons/filesave.png diff --git a/vendor/easyui/themes/icons/filter.png b/vendor/FHC-vendor/easyui/themes/icons/filter.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/filter.png rename to vendor/FHC-vendor/easyui/themes/icons/filter.png diff --git a/vendor/easyui/themes/icons/help.png b/vendor/FHC-vendor/easyui/themes/icons/help.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/help.png rename to vendor/FHC-vendor/easyui/themes/icons/help.png diff --git a/vendor/easyui/themes/icons/large_chart.png b/vendor/FHC-vendor/easyui/themes/icons/large_chart.png similarity index 100% rename from vendor/easyui/themes/icons/large_chart.png rename to vendor/FHC-vendor/easyui/themes/icons/large_chart.png diff --git a/vendor/easyui/themes/icons/large_clipart.png b/vendor/FHC-vendor/easyui/themes/icons/large_clipart.png similarity index 100% rename from vendor/easyui/themes/icons/large_clipart.png rename to vendor/FHC-vendor/easyui/themes/icons/large_clipart.png diff --git a/vendor/easyui/themes/icons/large_picture.png b/vendor/FHC-vendor/easyui/themes/icons/large_picture.png similarity index 100% rename from vendor/easyui/themes/icons/large_picture.png rename to vendor/FHC-vendor/easyui/themes/icons/large_picture.png diff --git a/vendor/easyui/themes/icons/large_shapes.png b/vendor/FHC-vendor/easyui/themes/icons/large_shapes.png similarity index 100% rename from vendor/easyui/themes/icons/large_shapes.png rename to vendor/FHC-vendor/easyui/themes/icons/large_shapes.png diff --git a/vendor/easyui/themes/icons/large_smartart.png b/vendor/FHC-vendor/easyui/themes/icons/large_smartart.png similarity index 100% rename from vendor/easyui/themes/icons/large_smartart.png rename to vendor/FHC-vendor/easyui/themes/icons/large_smartart.png diff --git a/vendor/easyui/themes/icons/lock.png b/vendor/FHC-vendor/easyui/themes/icons/lock.png similarity index 100% rename from vendor/easyui/themes/icons/lock.png rename to vendor/FHC-vendor/easyui/themes/icons/lock.png diff --git a/vendor/easyui/themes/icons/man.png b/vendor/FHC-vendor/easyui/themes/icons/man.png similarity index 100% rename from vendor/easyui/themes/icons/man.png rename to vendor/FHC-vendor/easyui/themes/icons/man.png diff --git a/vendor/easyui/themes/icons/mini_add.png b/vendor/FHC-vendor/easyui/themes/icons/mini_add.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/mini_add.png rename to vendor/FHC-vendor/easyui/themes/icons/mini_add.png diff --git a/vendor/easyui/themes/icons/mini_edit.png b/vendor/FHC-vendor/easyui/themes/icons/mini_edit.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/mini_edit.png rename to vendor/FHC-vendor/easyui/themes/icons/mini_edit.png diff --git a/vendor/easyui/themes/icons/mini_refresh.png b/vendor/FHC-vendor/easyui/themes/icons/mini_refresh.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/mini_refresh.png rename to vendor/FHC-vendor/easyui/themes/icons/mini_refresh.png diff --git a/vendor/easyui/themes/icons/more.png b/vendor/FHC-vendor/easyui/themes/icons/more.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/more.png rename to vendor/FHC-vendor/easyui/themes/icons/more.png diff --git a/vendor/easyui/themes/icons/no.png b/vendor/FHC-vendor/easyui/themes/icons/no.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/no.png rename to vendor/FHC-vendor/easyui/themes/icons/no.png diff --git a/vendor/easyui/themes/icons/ok.png b/vendor/FHC-vendor/easyui/themes/icons/ok.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/ok.png rename to vendor/FHC-vendor/easyui/themes/icons/ok.png diff --git a/vendor/easyui/themes/icons/pencil.png b/vendor/FHC-vendor/easyui/themes/icons/pencil.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/pencil.png rename to vendor/FHC-vendor/easyui/themes/icons/pencil.png diff --git a/vendor/easyui/themes/icons/print.png b/vendor/FHC-vendor/easyui/themes/icons/print.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/print.png rename to vendor/FHC-vendor/easyui/themes/icons/print.png diff --git a/vendor/easyui/themes/icons/redo.png b/vendor/FHC-vendor/easyui/themes/icons/redo.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/redo.png rename to vendor/FHC-vendor/easyui/themes/icons/redo.png diff --git a/vendor/easyui/themes/icons/reload.png b/vendor/FHC-vendor/easyui/themes/icons/reload.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/reload.png rename to vendor/FHC-vendor/easyui/themes/icons/reload.png diff --git a/vendor/easyui/themes/icons/search.png b/vendor/FHC-vendor/easyui/themes/icons/search.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/search.png rename to vendor/FHC-vendor/easyui/themes/icons/search.png diff --git a/vendor/easyui/themes/icons/sum.png b/vendor/FHC-vendor/easyui/themes/icons/sum.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/sum.png rename to vendor/FHC-vendor/easyui/themes/icons/sum.png diff --git a/vendor/easyui/themes/icons/tip.png b/vendor/FHC-vendor/easyui/themes/icons/tip.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/tip.png rename to vendor/FHC-vendor/easyui/themes/icons/tip.png diff --git a/vendor/easyui/themes/icons/undo.png b/vendor/FHC-vendor/easyui/themes/icons/undo.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/icons/undo.png rename to vendor/FHC-vendor/easyui/themes/icons/undo.png diff --git a/vendor/easyui/themes/metro/accordion.css b/vendor/FHC-vendor/easyui/themes/metro/accordion.css similarity index 100% rename from vendor/easyui/themes/metro/accordion.css rename to vendor/FHC-vendor/easyui/themes/metro/accordion.css diff --git a/vendor/easyui/themes/metro/calendar.css b/vendor/FHC-vendor/easyui/themes/metro/calendar.css similarity index 100% rename from vendor/easyui/themes/metro/calendar.css rename to vendor/FHC-vendor/easyui/themes/metro/calendar.css diff --git a/vendor/easyui/themes/metro/combo.css b/vendor/FHC-vendor/easyui/themes/metro/combo.css similarity index 100% rename from vendor/easyui/themes/metro/combo.css rename to vendor/FHC-vendor/easyui/themes/metro/combo.css diff --git a/vendor/easyui/themes/metro/combobox.css b/vendor/FHC-vendor/easyui/themes/metro/combobox.css similarity index 100% rename from vendor/easyui/themes/metro/combobox.css rename to vendor/FHC-vendor/easyui/themes/metro/combobox.css diff --git a/vendor/easyui/themes/metro/datagrid.css b/vendor/FHC-vendor/easyui/themes/metro/datagrid.css similarity index 100% rename from vendor/easyui/themes/metro/datagrid.css rename to vendor/FHC-vendor/easyui/themes/metro/datagrid.css diff --git a/vendor/easyui/themes/metro/datalist.css b/vendor/FHC-vendor/easyui/themes/metro/datalist.css similarity index 100% rename from vendor/easyui/themes/metro/datalist.css rename to vendor/FHC-vendor/easyui/themes/metro/datalist.css diff --git a/vendor/easyui/themes/metro/datebox.css b/vendor/FHC-vendor/easyui/themes/metro/datebox.css similarity index 100% rename from vendor/easyui/themes/metro/datebox.css rename to vendor/FHC-vendor/easyui/themes/metro/datebox.css diff --git a/vendor/easyui/themes/metro/dialog.css b/vendor/FHC-vendor/easyui/themes/metro/dialog.css similarity index 100% rename from vendor/easyui/themes/metro/dialog.css rename to vendor/FHC-vendor/easyui/themes/metro/dialog.css diff --git a/vendor/easyui/themes/metro/easyui.css b/vendor/FHC-vendor/easyui/themes/metro/easyui.css similarity index 100% rename from vendor/easyui/themes/metro/easyui.css rename to vendor/FHC-vendor/easyui/themes/metro/easyui.css diff --git a/vendor/easyui/themes/metro/filebox.css b/vendor/FHC-vendor/easyui/themes/metro/filebox.css similarity index 100% rename from vendor/easyui/themes/metro/filebox.css rename to vendor/FHC-vendor/easyui/themes/metro/filebox.css diff --git a/vendor/easyui/themes/metro/images/accordion_arrows.png b/vendor/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/accordion_arrows.png rename to vendor/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png diff --git a/vendor/easyui/themes/metro/images/blank.gif b/vendor/FHC-vendor/easyui/themes/metro/images/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/blank.gif rename to vendor/FHC-vendor/easyui/themes/metro/images/blank.gif diff --git a/vendor/easyui/themes/metro/images/calendar_arrows.png b/vendor/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/calendar_arrows.png rename to vendor/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png diff --git a/vendor/easyui/themes/metro/images/combo_arrow.png b/vendor/FHC-vendor/easyui/themes/metro/images/combo_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/combo_arrow.png rename to vendor/FHC-vendor/easyui/themes/metro/images/combo_arrow.png diff --git a/vendor/easyui/themes/metro/images/datagrid_icons.png b/vendor/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/datagrid_icons.png rename to vendor/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png diff --git a/vendor/easyui/themes/metro/images/datebox_arrow.png b/vendor/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/datebox_arrow.png rename to vendor/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png diff --git a/vendor/easyui/themes/metro/images/layout_arrows.png b/vendor/FHC-vendor/easyui/themes/metro/images/layout_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/layout_arrows.png rename to vendor/FHC-vendor/easyui/themes/metro/images/layout_arrows.png diff --git a/vendor/easyui/themes/metro/images/linkbutton_bg.png b/vendor/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/linkbutton_bg.png rename to vendor/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png diff --git a/vendor/easyui/themes/metro/images/loading.gif b/vendor/FHC-vendor/easyui/themes/metro/images/loading.gif old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/loading.gif rename to vendor/FHC-vendor/easyui/themes/metro/images/loading.gif diff --git a/vendor/easyui/themes/metro/images/menu_arrows.png b/vendor/FHC-vendor/easyui/themes/metro/images/menu_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/menu_arrows.png rename to vendor/FHC-vendor/easyui/themes/metro/images/menu_arrows.png diff --git a/vendor/easyui/themes/metro/images/messager_icons.png b/vendor/FHC-vendor/easyui/themes/metro/images/messager_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/messager_icons.png rename to vendor/FHC-vendor/easyui/themes/metro/images/messager_icons.png diff --git a/vendor/easyui/themes/metro/images/pagination_icons.png b/vendor/FHC-vendor/easyui/themes/metro/images/pagination_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/pagination_icons.png rename to vendor/FHC-vendor/easyui/themes/metro/images/pagination_icons.png diff --git a/vendor/easyui/themes/metro/images/panel_tools.png b/vendor/FHC-vendor/easyui/themes/metro/images/panel_tools.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/panel_tools.png rename to vendor/FHC-vendor/easyui/themes/metro/images/panel_tools.png diff --git a/vendor/easyui/themes/metro/images/searchbox_button.png b/vendor/FHC-vendor/easyui/themes/metro/images/searchbox_button.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/searchbox_button.png rename to vendor/FHC-vendor/easyui/themes/metro/images/searchbox_button.png diff --git a/vendor/easyui/themes/metro/images/slider_handle.png b/vendor/FHC-vendor/easyui/themes/metro/images/slider_handle.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/slider_handle.png rename to vendor/FHC-vendor/easyui/themes/metro/images/slider_handle.png diff --git a/vendor/easyui/themes/metro/images/spinner_arrows.png b/vendor/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/spinner_arrows.png rename to vendor/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png diff --git a/vendor/easyui/themes/metro/images/tabs_icons.png b/vendor/FHC-vendor/easyui/themes/metro/images/tabs_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/tabs_icons.png rename to vendor/FHC-vendor/easyui/themes/metro/images/tabs_icons.png diff --git a/vendor/easyui/themes/metro/images/tree_icons.png b/vendor/FHC-vendor/easyui/themes/metro/images/tree_icons.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/tree_icons.png rename to vendor/FHC-vendor/easyui/themes/metro/images/tree_icons.png diff --git a/vendor/easyui/themes/metro/images/validatebox_warning.png b/vendor/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png old mode 100755 new mode 100644 similarity index 100% rename from vendor/easyui/themes/metro/images/validatebox_warning.png rename to vendor/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png diff --git a/vendor/easyui/themes/metro/layout.css b/vendor/FHC-vendor/easyui/themes/metro/layout.css similarity index 100% rename from vendor/easyui/themes/metro/layout.css rename to vendor/FHC-vendor/easyui/themes/metro/layout.css diff --git a/vendor/easyui/themes/metro/linkbutton.css b/vendor/FHC-vendor/easyui/themes/metro/linkbutton.css similarity index 100% rename from vendor/easyui/themes/metro/linkbutton.css rename to vendor/FHC-vendor/easyui/themes/metro/linkbutton.css diff --git a/vendor/easyui/themes/metro/menu.css b/vendor/FHC-vendor/easyui/themes/metro/menu.css similarity index 100% rename from vendor/easyui/themes/metro/menu.css rename to vendor/FHC-vendor/easyui/themes/metro/menu.css diff --git a/vendor/easyui/themes/metro/menubutton.css b/vendor/FHC-vendor/easyui/themes/metro/menubutton.css similarity index 100% rename from vendor/easyui/themes/metro/menubutton.css rename to vendor/FHC-vendor/easyui/themes/metro/menubutton.css diff --git a/vendor/easyui/themes/metro/messager.css b/vendor/FHC-vendor/easyui/themes/metro/messager.css similarity index 100% rename from vendor/easyui/themes/metro/messager.css rename to vendor/FHC-vendor/easyui/themes/metro/messager.css diff --git a/vendor/easyui/themes/metro/numberbox.css b/vendor/FHC-vendor/easyui/themes/metro/numberbox.css similarity index 100% rename from vendor/easyui/themes/metro/numberbox.css rename to vendor/FHC-vendor/easyui/themes/metro/numberbox.css diff --git a/vendor/easyui/themes/metro/pagination.css b/vendor/FHC-vendor/easyui/themes/metro/pagination.css similarity index 100% rename from vendor/easyui/themes/metro/pagination.css rename to vendor/FHC-vendor/easyui/themes/metro/pagination.css diff --git a/vendor/easyui/themes/metro/panel.css b/vendor/FHC-vendor/easyui/themes/metro/panel.css similarity index 100% rename from vendor/easyui/themes/metro/panel.css rename to vendor/FHC-vendor/easyui/themes/metro/panel.css diff --git a/vendor/easyui/themes/metro/progressbar.css b/vendor/FHC-vendor/easyui/themes/metro/progressbar.css similarity index 100% rename from vendor/easyui/themes/metro/progressbar.css rename to vendor/FHC-vendor/easyui/themes/metro/progressbar.css diff --git a/vendor/easyui/themes/metro/propertygrid.css b/vendor/FHC-vendor/easyui/themes/metro/propertygrid.css similarity index 100% rename from vendor/easyui/themes/metro/propertygrid.css rename to vendor/FHC-vendor/easyui/themes/metro/propertygrid.css diff --git a/vendor/easyui/themes/metro/searchbox.css b/vendor/FHC-vendor/easyui/themes/metro/searchbox.css similarity index 100% rename from vendor/easyui/themes/metro/searchbox.css rename to vendor/FHC-vendor/easyui/themes/metro/searchbox.css diff --git a/vendor/easyui/themes/metro/slider.css b/vendor/FHC-vendor/easyui/themes/metro/slider.css similarity index 100% rename from vendor/easyui/themes/metro/slider.css rename to vendor/FHC-vendor/easyui/themes/metro/slider.css diff --git a/vendor/easyui/themes/metro/spinner.css b/vendor/FHC-vendor/easyui/themes/metro/spinner.css similarity index 100% rename from vendor/easyui/themes/metro/spinner.css rename to vendor/FHC-vendor/easyui/themes/metro/spinner.css diff --git a/vendor/easyui/themes/metro/splitbutton.css b/vendor/FHC-vendor/easyui/themes/metro/splitbutton.css similarity index 100% rename from vendor/easyui/themes/metro/splitbutton.css rename to vendor/FHC-vendor/easyui/themes/metro/splitbutton.css diff --git a/vendor/easyui/themes/metro/switchbutton.css b/vendor/FHC-vendor/easyui/themes/metro/switchbutton.css similarity index 100% rename from vendor/easyui/themes/metro/switchbutton.css rename to vendor/FHC-vendor/easyui/themes/metro/switchbutton.css diff --git a/vendor/easyui/themes/metro/tabs.css b/vendor/FHC-vendor/easyui/themes/metro/tabs.css similarity index 100% rename from vendor/easyui/themes/metro/tabs.css rename to vendor/FHC-vendor/easyui/themes/metro/tabs.css diff --git a/vendor/easyui/themes/metro/textbox.css b/vendor/FHC-vendor/easyui/themes/metro/textbox.css similarity index 100% rename from vendor/easyui/themes/metro/textbox.css rename to vendor/FHC-vendor/easyui/themes/metro/textbox.css diff --git a/vendor/easyui/themes/metro/tooltip.css b/vendor/FHC-vendor/easyui/themes/metro/tooltip.css similarity index 100% rename from vendor/easyui/themes/metro/tooltip.css rename to vendor/FHC-vendor/easyui/themes/metro/tooltip.css diff --git a/vendor/easyui/themes/metro/tree.css b/vendor/FHC-vendor/easyui/themes/metro/tree.css similarity index 100% rename from vendor/easyui/themes/metro/tree.css rename to vendor/FHC-vendor/easyui/themes/metro/tree.css diff --git a/vendor/easyui/themes/metro/validatebox.css b/vendor/FHC-vendor/easyui/themes/metro/validatebox.css similarity index 100% rename from vendor/easyui/themes/metro/validatebox.css rename to vendor/FHC-vendor/easyui/themes/metro/validatebox.css diff --git a/vendor/easyui/themes/metro/window.css b/vendor/FHC-vendor/easyui/themes/metro/window.css similarity index 100% rename from vendor/easyui/themes/metro/window.css rename to vendor/FHC-vendor/easyui/themes/metro/window.css diff --git a/vendor/easyui/themes/mobile.css b/vendor/FHC-vendor/easyui/themes/mobile.css similarity index 100% rename from vendor/easyui/themes/mobile.css rename to vendor/FHC-vendor/easyui/themes/mobile.css diff --git a/vendor/FHC-vendor/easyui/themes/vilesci b/vendor/FHC-vendor/easyui/themes/vilesci new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/FHC-vendor/jquery-tablesorter/.gitattributes b/vendor/FHC-vendor/jquery-tablesorter/.gitattributes new file mode 100644 index 000000000..14d674691 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/.gitattributes @@ -0,0 +1,23 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.md diss=astextplain \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/.gitignore b/vendor/FHC-vendor/jquery-tablesorter/.gitignore new file mode 100644 index 000000000..4fa9ca09d --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/.gitignore @@ -0,0 +1,165 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*_test*.* +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +node_modules/ +*_i.c +*_p.c +*.ilk +*.log +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/vendor/FHC-vendor/jquery-tablesorter/.jscsrc b/vendor/FHC-vendor/jquery-tablesorter/.jscsrc new file mode 100644 index 000000000..d0bf1c210 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/.jscsrc @@ -0,0 +1,65 @@ +{ + "disallowDanglingUnderscores": true, + "disallowEmptyBlocks": true, + "disallowKeywords": [ + "with" + ], + "disallowMixedSpacesAndTabs": "smart", + "disallowMultipleLineBreaks": true, + "disallowMultipleLineStrings": true, + "disallowNewlineBeforeBlockStatements": true, + "disallowOperatorBeforeLineBreak": [ + "." + ], + "disallowSpaceAfterPrefixUnaryOperators": true, + "disallowSpaceBeforeBinaryOperators": [ + "," + ], + "disallowSpaceBeforePostfixUnaryOperators": true, + "disallowSpacesInCallExpression": true, + + "disallowTrailingComma": true, + "maximumLineLength": { + "allowRegex": true, + "allowUrlComments": true, + "tabSize": 2, + "value": 180 + }, + "requireBlocksOnNewline": 1, + "requireCommaBeforeLineBreak": true, + "requireCurlyBraces": [ + "do" + ], + "requireDollarBeforejQueryAssignment": true, + "requireDotNotation": true, + "requireLineFeedAtFileEnd": true, + "requireParenthesesAroundIIFE": true, + "requireSemicolons": true, + "requireSpaceAfterBinaryOperators": true, + "requireSpaceAfterKeywords": [ + "if", + "else", + "for", + "while", + "do", + "switch", + "case", + "return", + "try", + "catch", + "typeof" + ], + "requireSpaceAfterLineComment": true, + "requireSpaceBeforeBinaryOperators": true, + "requireSpacesInConditionalExpression": true, + "requireSpacesInForStatement": true, + "requireSpacesInsideArrayBrackets": "all", + "validateIndentation": { + "includeEmptyLines": false, + "value": "\t" + }, + "validateQuoteMarks": { + "escape": true, + "mark": "'" + } +} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md b/vendor/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md new file mode 100644 index 000000000..e707a1bee --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Contributing to tablesorter (FORK) + +1. [Getting Involved](#getting-involved) +2. [How To Report issues](#how-to-report-issues) +3. [Contributing Code](#contributing-code) + +## Getting Involved + +There are a number of ways to get involved with the development of this fork of Tablesorter. Even if you've never contributed to an Open Source project before, we're always looking for help identifying issues. + +## How to Report issues, or make requests. + +* First off make sure it's a new issue. Search the [FAQ](https://github.com/Mottie/tablesorter/wiki/FAQ), [documents](http://mottie.github.io/tablesorter/docs/) and the [issues](https://github.com/Mottie/tablesorter/issues). +* If it's an existing issue or feature request, and you want to show that it is also a concern for you. Add a comment! +* If it turns out to not be an issue, but a question instead: + * Please don't open a new issue. + * Jump on out freenode.net IRC channel: `#tablesorter`. + * Ask the question on [Stackoverflow](https://stackoverflow.com/questions/tagged/tablesorter) (tablesorter or jQuery tag). +* If you do open a new issue: + * If the issue only occurs in a particular browser or version of jQuery, that would be awesome to know! + * Please include any *relevant* code (posting the entire page usually isn't that helpful). + * Add if there are any errors showing in the console (press F12 in the browser and go to the console tab). + * Include screenshots, animated gifs, videos (check out [screenr](https://www.screenr.com/)) or funny cat pictures. You never know what might help! + +## Contributing Code + +* Installation: + * Please see the [Customize](https://github.com/Mottie/tablesorter/wiki/Customize) wiki page for specifics on how to install the necessary modules & create a custom build. + * If you aren't comfortable using grunt or making a build file, you can go ahead and just share the changes. +* Style Guide: + * We're not too strict, just try to follow the style that is already being used in the code; here is a [.jscsrc file](https://gist.github.com/Herst/39263a478046a48f1860) by [@Herst](https://github.com/Herst) you can use! + * When naming variables: + * Use names that describe it's contents. I'm guilty of naming things `t` and `i`, but I'm slowly trying to rename them to make reading code and finding the variable in the code easier. + * Name jQuery objects with a leading `$`, e.g. `var $table = $('table');` + * We like semicolons! Jshint will yell at you if you don't use them. + * We like single quotes! It's OCD man! + * We like tabs! + * We like pizza! +* Pull request: + * Before opening a pull request, please make sure that your code is on a *fork* of the master. This is really for your own convenience: it's easy for us to accept your pull request from your master branch, but it's problematic for your fork when you want to pull the changes back and your master branch has diverged from upstream's master branch. + * Add unit tests - tablesorter is still missing a lot of unit tests, so adding tests for your contribution would be a tremendous help! + * Also, make sure to test your changes! + * Use `grunt test` ([ref](https://github.com/Mottie/tablesorter/wiki/Customize#testing-a-build)) + * If you aren't comfortable with using grunt, copy, then paste your code into [jsHint](http://jshint.com/) to help find any problems with the changes. + * There is no need to open an issue, then create a pull request. Just create the pull request and add any comments about your changes there. diff --git a/vendor/FHC-vendor/jquery-tablesorter/Gruntfile.js b/vendor/FHC-vendor/jquery-tablesorter/Gruntfile.js new file mode 100644 index 000000000..5c259b3b7 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/Gruntfile.js @@ -0,0 +1,428 @@ +/*global module:false*/ +module.exports = function( grunt ) { + 'use strict'; + + var pkg = grunt.file.readJSON( 'package.json' ), + tasks, + widgetFilePrefix, + widgetFileSuffix, + + defaults = { + dependencies : { + widgets: { + 'saveSort resizable pager filter columnSelector' : 'storage', + 'filter-formatter-html5 filter-formatter-jui filter-formatter-select2' : 'filter' + // 'stickyHeaders' : 'addResizeEvent' // included with stickyHeaders widget (for now) + } + }, + standardWidgets: [ + 'storage', // req by saveSort; optional in others + 'uitheme', + 'columns', + 'filter', + 'stickyHeaders', + 'resizable', + 'saveSort' + // 'addResizeEvent', // included with stickyHeaders widget + // 'zebra' // included in core + ], + standardWidgetFileName: 'jquery.tablesorter.widgets.js', + wrappers : { + widgetPrefix: 'js/widgets/widget-', + widgetSuffix: '.js', + parserPrefix: 'js/parsers/parser-', + parserSuffix: '.js' + }, + wrapperUMD: { + // tablesorter core + coreBanner: '(function(factory) {\n' + + " if (typeof define === 'function' && define.amd) {\n" + + " define(['jquery'], factory);\n" + + " } else if (typeof module === 'object' && typeof module.exports === 'object') {\n" + + " module.exports = factory(require('jquery'));\n" + + ' } else {\n' + + ' factory(jQuery);\n' + + ' }\n' + + '}(function($) {\n\n', + // widgets wrapper & combined wrapper - may need a separate entry when this wrapper is redefined to make + // widgets a dependency of the core (see https://github.com/Mottie/tablesorter/issues/855) + banner: '<%= pkg.banner %>/* Includes widgets ( <%= pkg.selectedWidgets %> <%= pkg.selectedParsers %>) */\n' + + '(function(factory) {\n' + + " if (typeof define === 'function' && define.amd) {\n" + + " define(['jquery'], factory);\n" + + " } else if (typeof module === 'object' && typeof module.exports === 'object') {\n" + + " module.exports = factory(require('jquery'));\n" + + ' } else {\n' + + ' factory(jQuery);\n' + + ' }\n' + + '}(function($) {\n\n', + footer: '\nreturn $.tablesorter;\n}));\n' + }, + noModBanner: '/*** This file is dynamically generated ***\n' + + '█████▄ ▄████▄ █████▄ ▄████▄ ██████ ███████▄ ▄████▄ █████▄ ██ ██████ ██ ██\n' + + '██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▄▄ ██▄▄██\n' + + '██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██\n' + + '█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀\n*/\n' + }, + + // example widgets = [ 'pager', 'column', 'filter', 'stickyHeaders' ]; + addWidgetDependencies = function( widgets ) { + var indx, dep, + maxDeps = 40, // just in case (there are currently 27 widgets) + len = widgets.length, + deps = defaults.dependencies.widgets; + for ( dep in deps ) { + if ( typeof dep === 'string' ) { + for ( indx = 0; indx < len; indx++ ) { + // make sure indexOf is not matching 'column' instead of 'columnSelector' with surrounding spaces + if ( ( ' ' + dep + ' ' ).indexOf( ' ' + widgets[indx] + ' ' ) >= 0 && widgets.indexOf( deps[ dep ] ) < 0 ) { + widgets.push( deps[ dep ] ); + // keep checking newly added widgets, in case 'filter' is added and 'storage' hasn't been + if ( len < maxDeps ) { len++; } + continue; + } + } + } + } + return widgets; + }, + formFileNames = function() { + var wrap = defaults.wrappers; + // add widget path & file extension + pkg.processedWidgets = ( wrap.widgetPrefix + + pkg.selectedWidgets.join( wrap.widgetSuffix + ',' + wrap.widgetPrefix ) + + wrap.widgetSuffix ).split( ',' ); + console.info( 'Creating a widgets file with: ' + pkg.selectedWidgets.join(', ') ); + + if ( pkg.selectedParsers ) { + // parser path & file extension + pkg.processedParsers = ( wrap.parserPrefix + + pkg.selectedParsers.join( wrap.parserSuffix + ',' + wrap.parserPrefix ) + + wrap.parserSuffix ).split( ',' ); + console.info( 'Creating a combined file with selected widgets & these parsers: ' + pkg.selectedParsers.join(', ') ); + // make this look nice for the banner + pkg.selectedParsers = ') & parsers ( ' + pkg.selectedParsers + ' '; + } + console.info( pkg.processedParsers ); + }; + + // minified banner template - updated ##/##/20## (v2.##.##) + pkg.banner = '/*! <%= pkg.name %> (FORK) - updated ' + + '<%= grunt.template.today("mm-dd-yyyy") %> (v<%= pkg.version %>)*/\n'; + + pkg.buildWidget = defaults.standardWidgetFileName; + pkg.buildCombined = 'jquery.tablesorter.combined.js'; + pkg.processedParsers = '!js/parsers/*.js'; + + // Project configuration. + grunt.initConfig({ + pkg: pkg, + + clean: { + build: { + src: [ 'dist/**/**/**/*', 'dist/**/**/*', 'dist/**/*', 'dist' ] + }, + css: { + src: [ 'dist/css/*.css', '!dist/css/*.min.css' ] + } + }, + + copy: { + css: { + files : [{ + expand: true, + dot: true, + flatten: true, + src: [ 'css/*.css', 'addons/pager/*.css' ], + dest: 'dist/css/', + rename: function( dest, src ) { + if ( /black-ice/.test( src ) ) { + src = src.replace( /-/, '' ); + } + return dest + src; + } + }] + }, + less: { + expand: true, + flatten: true, + src: 'css/*.less', + dest: 'dist/css/less/' + }, + images: { + expand: true, + flatten: true, + src: [ 'addons/pager/icons/*', 'css/images/*' ], + dest: 'dist/css/images/' + } + }, + + concat: { + main: { + options: { + banner: defaults.wrapperUMD.coreBanner, + footer: defaults.wrapperUMD.footer + }, + src: [ 'js/jquery.tablesorter.js' ], + dest: 'dist/js/jquery.tablesorter.js' + }, + widgets: { + options: { + banner: defaults.wrapperUMD.banner, + footer: defaults.wrapperUMD.footer + }, + src: [ + '<%= pkg.processedWidgets %>', + '!js/widgets/_test-*.js', + '!js/widgets/*.min.js' + ], + dest: 'dist/js/<%= pkg.buildWidget %>' + }, + everything: { + options: { + banner: defaults.wrapperUMD.banner, + footer: defaults.wrapperUMD.footer + }, + src: [ + 'js/jquery.tablesorter.js', + '<%= pkg.processedWidgets %>', + '<%= pkg.processedParsers %>', + '!js/widgets/_test-*.js', + '!js/widgets/*.min.js' + ], + dest: 'dist/js/<%= pkg.buildCombined %>' + }, + // keep all the existing jsFiddle demos from breaking + copybackWidgets: { + options: { + banner: defaults.noModBanner + }, + src : ['dist/js/<%= pkg.buildWidget %>'], + dest: 'js/<%= pkg.buildWidget %>' + }, + copybackCombined: { + options: { + banner: defaults.noModBanner + }, + src : ['dist/js/<%= pkg.buildCombined %>'], + dest: 'js/<%= pkg.buildCombined %>' + } + }, + + jscs: { + src: [ + 'addons/pager/*.js', + '!addons/pager/*.min.js', + 'js/jquery.*.js', + 'js/**/*.js', + '!js/_test-*.js', + '!js/jquery.tablesorter.combined.js', + '!js/jquery.tablesorter.widgets.js', + '!js/extras/jquery.dragtable.mod.js', // indents with spaces; keeping original formatting to make diffs easier + '!js/extras/jquery.metadata.js', // phasing this one out anyway + '!js/**/_test-*.js', + '!js/*.min.js', + '!js/**/semver*.js' + ], + options: { + config: '.jscsrc' + } + }, + + jshint: { + files: { + src: [ + 'addons/pager/*.js', + '!addons/pager/*.min.js', + 'js/jquery.*.js', + 'js/**/*.js', + '!js/_test-*.js', + '!js/**/_test-*.js', + '!js/*.min.js', + '!js/**/semver*.js' + ] + }, + options: { + globals: { + 'JSON': false, + 'localStorage': false, + 'navigator': false, + 'console': false, + 'require': false, + 'define': false, + 'module': false + }, + 'loopfunc': true, + 'jquery': true, + 'browser': true, + 'es3': true, + 'unused': true, + 'undef': true + } + }, + + uglify: { + options: { + preserveComments: function( node, comment ){ + return /^!/.test( comment.value ); + }, + report: 'gzip' + }, + allFiles: { + files: [{ + expand: true, + cwd: './js/', // Src matches are relative to this path. + src: [ + '**/*.js', + '!jquery.tablesorter.js', + '!_test-*.js', + '!**/_test-*.js', + '!*.min.js', + '!**/semver.js' + ], + dest: 'dist/js/', + ext: '.min.js', // Dist files will have this extension. + extDot: 'last' // Extensions in filenames begin after this dot + }] + }, + // jquery.tablesorter.min.js is being minified from js/jquery.tablesorter.js + // so it doesn't include the UMD wrapper! Point to the dist/js/ version + main: { + files : [{ + expand: true, + cwd: './dist/js/', + src: [ 'jquery.tablesorter.js' ], + dest: 'dist/js/', + ext: '.min.js', // Dist files will have this extension. + extDot: 'last' // Extensions in filenames begin after this dot + }] + }, + pageraddon: { + files: { + 'dist/js/extras/jquery.tablesorter.pager.min.js': [ 'addons/pager/*.js' ] + } + } + }, + + cssmin: { + target: { + files: [{ + expand: true, + flatten: true, + cwd: 'dist/css', + src: ['*.css', '!_test-*.css'], + dest: 'dist/css', + ext: '.min.css', + extDot: 'last' + }] + } + }, + + qunit: { + files: [ 'test.html' ] + }, + + watch: { + scripts: { + files: [ + 'js/*.js', + 'js/**/*.js', + '!js/_test-*.js', + '!js/*.min.js' + ], + tasks: [ 'build' ] + } + } + + }); + + grunt.loadNpmTasks( 'grunt-contrib-clean' ); + grunt.loadNpmTasks( 'grunt-contrib-jshint' ); + grunt.loadNpmTasks( 'grunt-contrib-qunit' ); + grunt.loadNpmTasks( 'grunt-contrib-concat' ); + grunt.loadNpmTasks( 'grunt-contrib-uglify' ); + grunt.loadNpmTasks( 'grunt-contrib-copy' ); + grunt.loadNpmTasks( 'grunt-contrib-watch' ); + grunt.loadNpmTasks( 'grunt-contrib-cssmin' ); + grunt.loadNpmTasks( 'grunt-jscs' ); + + grunt.registerTask( 'test', [ 'jscs', 'jshint', 'qunit' ] ); + + tasks = [ + 'clean:build', + 'copy', + 'concat', + 'uglify', + 'cssmin', + 'clean:css', + 'updateManifest' + ]; + + // basic = same as before: core, widgets, filterformatter all separate + grunt.registerTask( 'default', 'Default build', function() { + pkg.selectedWidgets = addWidgetDependencies( defaults.standardWidgets ); + formFileNames(); + grunt.task.run(tasks); + }); + + // quick build to just minify files for pushes between updates + grunt.registerTask( 'quick', [ 'copy', 'uglify', 'clean:css' ] ); + + // enter 'grunt custom:{filename}' (not including the '.json') + // to load in a custom json file + // the expected JSON format is (with custom widgets in a string): + // { "widgets" : "columnHighlight filter resizable saveSort stickyHeaders uitheme" } + grunt.registerTask( 'custom', 'Custom build', function(file) { + var temp, widgets, + parsers = '', + deps = true; + + /* Allow developer to set up a custom widget build (json file will have settings)*/ + try { + temp = grunt.file.readJSON( file ); + if ( temp ) { + parsers = temp.parsers; + // include dependencies? + deps = ('includeDependencies' in temp) ? temp.includeDependencies : true; + // custom file name? + pkg.buildWidget = ('destFileName' in temp) ? temp.destFileName : 'jquery.tablesorter.custom-widgets.js'; + // widgets to include + widgets = (temp.widgets || ''); + if (widgets.replace(/\s+/g,'') === '') { + grunt.log.error('No widgets found in custom build file.'); + console.info('Continuing build with default widgets...'); + temp = defaults.standardWidgets; + pkg.buildWidget = defaults.standardWidgetFileName; + } else { + temp = widgets.split(/\s+/); + } + } + } catch (err) { + grunt.log.error('Custom build json not found - Use "grunt custom:{filename}"'); + console.info('Continuing build with default settings'); + temp = defaults.standardWidgets; + } + // add dependencies + pkg.selectedWidgets = deps ? addWidgetDependencies( temp ) : temp; + pkg.selectedParsers = parsers.split( /\s+/ ); + formFileNames(); + grunt.task.run(tasks); + }); + + // update tablesorter.jquery.json file version numbers to match the package.json version + grunt.registerTask( 'updateManifest', function() { + var i, project, + projectFile = [ 'tablesorter.jquery.json' ], + len = projectFile.length; + for ( i = 0; i < len; i++ ) { + if ( !grunt.file.exists( projectFile[ i ] ) ) { + grunt.log.error( 'file ' + projectFile[ i ] + ' not found' ); + return true; // return false to abort the execution + } + project = grunt.file.readJSON( projectFile[ i ] ); // get file as json object + project.version = pkg.version; + grunt.file.write( projectFile[i], JSON.stringify( project, null, 2 ) ); // serialize it back to file + } + }); + +}; diff --git a/vendor/FHC-vendor/jquery-tablesorter/README.md b/vendor/FHC-vendor/jquery-tablesorter/README.md new file mode 100644 index 000000000..dd5fe0699 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/README.md @@ -0,0 +1,159 @@ +tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell. This forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos. + +[![Bower Version][bower-image]][bower-url] [![NPM Version][npm-image]][npm-url] [![devDependency Status][david-dev-image]][david-dev-url] [![zenhub-image]][zenhub-url] + +### Notice! + +* Because of the change to the internal cache, the tablesorter v2.16+ core, filter widget and pager (both plugin & widget) will only work with the same version or newer files. + +### [Documentation](//mottie.github.io/tablesorter/docs/) + +* See the [full documentation](//mottie.github.io/tablesorter/docs/). +* All of the [original document pages](//tablesorter.com/docs/) have been included. +* Information from my blog post on [undocumented options](//wowmotty.blogspot.com/2011/06/jquery-tablesorter-missing-docs.html) and lots of new demos have also been included. +* Change log moved from included text file into the [wiki documentation](//github.com/Mottie/tablesorter/wiki/Changes). + +### Demos + +* [Basic alpha-numeric sort Demo](//mottie.github.com/tablesorter/). +* Links to demo pages can be found within the main [documentation](//mottie.github.io/tablesorter/docs/). +* More demos & playgrounds - updated in the [wiki pages](//github.com/Mottie/tablesorter/wiki). + +### Features + +* Multi-column alphanumeric sorting and filtering. +* Multi-tbody sorting - see the [options](//mottie.github.io/tablesorter/docs/index.html#options) table on the main document page. +* Supports [Bootstrap v2 and 3](//mottie.github.io/tablesorter/docs/example-widget-bootstrap-theme.html) +* Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. [Add your own easily](//mottie.github.io/tablesorter/docs/example-parsers.html). +* Inline editing - see [demo](//mottie.github.io/tablesorter/docs/example-widget-editable.html) +* Support for ROWSPAN and COLSPAN on TH elements. +* Support secondary "hidden" sorting (e.g., maintain alphabetical sort when sorting on other criteria). +* Extensibility via [widget system](//mottie.github.io/tablesorter/docs/example-widgets.html). +* Cross-browser: IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+, Chrome 5.0+. +* Small code size, starting at 25K minified +* Works with jQuery 1.2.6+ (jQuery 1.4.1+ needed with some widgets). +* Works with jQuery 1.9+ (`$.browser.msie` was removed; needed in the original version). + +### Licensing + +* Copyright (c) 2007 Christian Bach. +* Original examples and docs at: [http://tablesorter.com](//tablesorter.com). +* Dual licensed under the [MIT](//www.opensource.org/licenses/mit-license.php) and [GPL](//www.gnu.org/licenses/gpl.html) licenses. + +### Download + +* Get all files: [zip](//github.com/Mottie/tablesorter/archive/master.zip) or [tar.gz](//github.com/Mottie/tablesorter/archive/master.tar.gz) +* Use [bower](http://bower.io/): `bower install jquery.tablesorter` +* Use [node.js](http://nodejs.org/): `npm install tablesorter` +* CDNJS: [https://cdnjs.com/libraries/jquery.tablesorter](https://cdnjs.com/libraries/jquery.tablesorter) + +### Related Projects + +* [Plugin for Rails](//github.com/themilkman/jquery-tablesorter-rails). Maintained by [themilkman](//github.com/themilkman). +* [UserFrosting](//github.com/alexweissman/UserFrosting) (A secure, modern user management system for PHP that uses tablesorter) by [alexweissman](//github.com/alexweissman). + +### Contributing + +If you would like to contribute, please... + +1. Fork. +2. Make changes in a branch & add unit tests. +3. Run `grunt test` (if qunit fails, run it again - it's fickle). +4. Create a pull request. + +### Special Thanks + +* Big shout-out to [Nick Craver](//github.com/NickCraver) for getting rid of the `eval()` function that was previously needed for multi-column sorting. +* Big thanks to [thezoggy](//github.com/thezoggy) for helping with code, themes and providing valuable feedback. +* Big thanks to [ThsSin-](//github.com/TheSin-) for taking over for a while and also providing valuable feedback. +* Thanks to [prijutme4ty](https://github.com/prijutme4ty) for numerous contributions! +* Also extra thanks to [christhomas](//github.com/christhomas) and [Lynesth](//github.com/Lynesth) for help with code. +* And, of course thanks to everyone else that has contributed, and continues to contribute to this forked project! + +### Questions? + +* Check the [FAQ](//github.com/Mottie/tablesorter/wiki/FAQ) page. +* Search the [main documentation](//mottie.github.io/tablesorter/docs/) (click the menu button in the upper left corner). +* Search the [issues](//github.com/Mottie/tablesorter/issues) to see if the question or problem has been brought up before, and hopefully resolved. +* If someone is available, ask your question in the `#tablesorter` IRC channel at freenode.net. +* Ask your question at [Stackoverflow](//stackoverflow.com/questions/tagged/tablesorter) using a tablesorter tag. +* Please don't open a [new issue](//github.com/Mottie/tablesorter/issues) unless it really is an issue with the plugin, or a feature request. Thanks! + +[npm-url]: https://npmjs.org/package/tablesorter +[npm-image]: https://img.shields.io/npm/v/tablesorter.svg +[david-dev-url]: https://david-dm.org/Mottie/tablesorter#info=devDependencies +[david-dev-image]: https://img.shields.io/david/dev/Mottie/tablesorter.svg +[bower-url]: http://bower.io/search/?q=jquery.tablesorter +[bower-image]: https://img.shields.io/bower/v/jquery.tablesorter.svg +[zenhub-url]: https://zenhub.io +[zenhub-image]: https://raw.githubusercontent.com/ZenHubIO/support/master/zenhub-badge.png + +### Recent Changes + +View the [complete change log here](//github.com/Mottie/tablesorter/wiki/Changes). + +#### Version 2.24.6 (11/22/2015) + +* Core + * Prevent "tablesorter-ready" event from firing multiple times in a row. + * While detecting parsers, use `cssIgnoreRow` & stop after 50 rows. +* Docs + * Update utility options section. +* Math + * Add `math_rowFilter` option. See [issue #1083](https://github.com/Mottie/tablesorter/issues/1083). + * Spelling corrections to `math_rowFilter` option. + * Ensure internal updating flag gets cleared. Fixes [issue #1083](https://github.com/Mottie/tablesorter/issues/1083). +* Pager + * Initial page no longer ignored (no filter widget). Fixes [issue #1085](https://github.com/Mottie/tablesorter/issues/1085). + * Fix other page set issues (no filter widget). Fixes [issue #1085](https://github.com/Mottie/tablesorter/issues/1085). + * Fix page set issues (with filter widget). Fixes [issue #1085](https://github.com/Mottie/tablesorter/issues/1085). + * Clean up pager widget code. +* Print + * Add `print_now` option. See [issue #1081](https://github.com/Mottie/tablesorter/issues/1081). + * Fix print & close button actions. +* SortTbodies + * Use config parameter for numeric sorting. See [issue #1082](https://github.com/Mottie/tablesorter/issues/1082). +* Parsers: + * Update `parser-input-select.js`. See [issue #971](https://github.com/Mottie/tablesorter/issues/971). + * `parser-date-month.js` no longer removes other language data. + * Add alternate date range parser & update filter insideRange filter type. + * Don't use `$.extend` for simple additions. +* Misc + * Update grunt dependencies. + +#### Version 2.24.5 (11/10/2015) + +* Pager: Fix javascript error in pager addon when using ajax. + +#### Version 2.24.4 (11/10/2015) + +* Core + * `sortRestart` works again with multi-row headers. Fixes [issue #1074](https://github.com/Mottie/tablesorter/issues/1074). + * Add `sortDisabled` language setting; used in aria-labels. +* Docs + * Update `group_formatter` docs. See [issue #1077](https://github.com/Mottie/tablesorter/issues/1077). + * Add clarification & missing possible values. See [issue #1070](https://github.com/Mottie/tablesorter/issues/1070). + * Fixed mixed content issue, broken links (beta-testing demos) & other stuff. + * Add [filter + jQuery UI Selectmenu demo](http://mottie.github.io/tablesorter/docs/example-widget-filter-selectmenu.html). See [issue #1060](https://github.com/Mottie/tablesorter/issues/1060) + * Misc updates. +* Filter + * Convert filters to strings using conventional methods. + * Prevent "OR" filter type from splitting up regex string. See [issue #1070]https://github.com/Mottie/tablesorter/issues/1070). + * `filter_selectSource` option now accepts an array of objects ([demo](http://mottie.github.io/tablesorter/docs/example-widget-filter-selectmenu.html)). +* Group + * Include group & row data parameters in `group_formatter`. Fixes [issue #1077](https://github.com/Mottie/tablesorter/issues/1077). +* HeaderTitles + * Update aria-label usage. +* Math + * Avoid nested table math cells. See [Stackoverflow](http://stackoverflow.com/q/33631298/145346). +* Pager + * Clear `tbody` prior to calling `ajaxProcessing`. This again allows the developer to add the HTML to the table instead of needing to return it. +* Sort2Hash + * Make widget functions accessible. + * Add 2 utility functions to simplify hash processing. +* Toggle + * Add new widget to enable/disable sort & filter. See [issue #1075](https://github.com/Mottie/tablesorter/issues/1075). +* Parser + * Add "file-extension" parser. +* Misc + * Grunt: Fix uglify comment removal & update dist folder. diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png new file mode 100644 index 000000000..6f11fcb08 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png new file mode 100644 index 000000000..720793576 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif new file mode 100644 index 000000000..72054717b Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png new file mode 100644 index 000000000..4a2f9d4e4 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png new file mode 100644 index 000000000..15d1584bd Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css new file mode 100644 index 000000000..e77cd88ed --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css @@ -0,0 +1,42 @@ +/* pager wrapper, div */ +.tablesorter-pager { + padding: 5px; +} +/* pager wrapper, in thead/tfoot */ +td.tablesorter-pager { + background-color: #e6eeee; + margin: 0; /* needed for bootstrap .pager gets a 18px bottom margin */ +} +/* pager navigation arrows */ +.tablesorter-pager img { + vertical-align: middle; + margin-right: 2px; + cursor: pointer; +} + +/* pager output text */ +.tablesorter-pager .pagedisplay { + padding: 0 5px 0 5px; + width: auto; + white-space: nowrap; + text-align: center; +} + +/* pager element reset (needed for bootstrap) */ +.tablesorter-pager select { + margin: 0; + padding: 0; +} + +/*** css used when "updateArrows" option is true ***/ +/* the pager itself gets a disabled class when the number of rows is less than the size */ +.tablesorter-pager.disabled { + display: none; +} +/* hide or fade out pager arrows when the first or last row is visible */ +.tablesorter-pager .disabled { + /* visibility: hidden */ + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js new file mode 100644 index 000000000..020df44bd --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js @@ -0,0 +1,1178 @@ +/*! + * tablesorter (FORK) pager plugin + * updated 11/22/2015 (v2.24.6) + */ +/*jshint browser:true, jquery:true, unused:false */ +;(function($) { + 'use strict'; + /*jshint supernew:true */ + var ts = $.tablesorter; + + $.extend({ tablesorterPager: new function() { + + this.defaults = { + // target the pager markup + container: null, + + // use this format: "http://mydatabase.com?page={page}&size={size}&{sortList:col}&{filterList:fcol}" + // where {page} is replaced by the page number, {size} is replaced by the number of records to show, + // {sortList:col} adds the sortList to the url into a "col" array, and {filterList:fcol} adds + // the filterList to the url into an "fcol" array. + // So a sortList = [[2,0],[3,0]] becomes "&col[2]=0&col[3]=0" in the url + // and a filterList = [[2,Blue],[3,13]] becomes "&fcol[2]=Blue&fcol[3]=13" in the url + ajaxUrl: null, + + // modify the url after all processing has been applied + customAjaxUrl: function(table, url) { return url; }, + + // ajax error callback from $.tablesorter.showError function + // ajaxError: function( config, xhr, settings, exception ){ return exception; }; + // returning false will abort the error message + ajaxError: null, + + // modify the $.ajax object to allow complete control over your ajax requests + ajaxObject: { + dataType: 'json' + }, + + // set this to false if you want to block ajax loading on init + processAjaxOnInit: true, + + // process ajax so that the following information is returned: + // [ total_rows (number), rows (array of arrays), headers (array; optional) ] + // example: + // [ + // 100, // total rows + // [ + // [ "row1cell1", "row1cell2", ... "row1cellN" ], + // [ "row2cell1", "row2cell2", ... "row2cellN" ], + // ... + // [ "rowNcell1", "rowNcell2", ... "rowNcellN" ] + // ], + // [ "header1", "header2", ... "headerN" ] // optional + // ] + ajaxProcessing: function(ajax){ return [ 0, [], null ]; }, + + // output default: '{page}/{totalPages}' + // possible variables: {size}, {page}, {totalPages}, {filteredPages}, {startRow}, + // {endRow}, {filteredRows} and {totalRows} + output: '{startRow} to {endRow} of {totalRows} rows', // '{page}/{totalPages}' + + // apply disabled classname to the pager arrows when the rows at either extreme is visible + updateArrows: true, + + // starting page of the pager (zero based index) + page: 0, + + // reset pager after filtering; set to desired page # + // set to false to not change page at filter start + pageReset: 0, + + // Number of visible rows + size: 10, + + // Number of options to include in the pager number selector + maxOptionSize: 20, + + // Save pager page & size if the storage script is loaded (requires $.tablesorter.storage in jquery.tablesorter.widgets.js) + savePages: true, + + // defines custom storage key + storageKey: 'tablesorter-pager', + + // if true, the table will remain the same height no matter how many records are displayed. The space is made up by an empty + // table row set to a height to compensate; default is false + fixedHeight: false, + + // count child rows towards the set page size? (set true if it is a visible table row within the pager) + // if true, child row(s) may not appear to be attached to its parent row, may be split across pages or + // may distort the table if rowspan or cellspans are included. + countChildRows: false, + + // remove rows from the table to speed up the sort of large tables. + // setting this to false, only hides the non-visible rows; needed if you plan to add/remove rows with the pager enabled. + removeRows: false, // removing rows in larger tables speeds up the sort + + // css class names of pager arrows + cssFirst: '.first', // go to first page arrow + cssPrev: '.prev', // previous page arrow + cssNext: '.next', // next page arrow + cssLast: '.last', // go to last page arrow + cssGoto: '.gotoPage', // go to page selector - select dropdown that sets the current page + cssPageDisplay: '.pagedisplay', // location of where the "output" is displayed + cssPageSize: '.pagesize', // page size selector - select dropdown that sets the "size" option + cssErrorRow: 'tablesorter-errorRow', // error information row + + // class added to arrows when at the extremes (i.e. prev/first arrows are "disabled" when on the first page) + cssDisabled: 'disabled', // Note there is no period "." in front of this class name + + // stuff not set by the user + totalRows: 0, + totalPages: 0, + filteredRows: 0, + filteredPages: 0, + ajaxCounter: 0, + currentFilters: [], + startRow: 0, + endRow: 0, + $size: null, + last: {} + + }; + + var pagerEvents = 'filterInit filterStart filterEnd sortEnd disablePager enablePager destroyPager updateComplete ' + + 'pageSize pageSet pageAndSize pagerUpdate refreshComplete ', + + $this = this, + + // hide arrows at extremes + pagerArrows = function( table, p, disable ) { + var a = 'addClass', + r = 'removeClass', + d = p.cssDisabled, + dis = !!disable, + first = ( dis || p.page === 0 ), + tp = getTotalPages( table, p ), + last = ( dis || (p.page === tp - 1) || tp === 0 ); + if ( p.updateArrows ) { + p.$container.find(p.cssFirst + ',' + p.cssPrev)[ first ? a : r ](d).attr('aria-disabled', first); + p.$container.find(p.cssNext + ',' + p.cssLast)[ last ? a : r ](d).attr('aria-disabled', last); + } + }, + + calcFilters = function(table, p) { + var normalized, indx, len, + c = table.config, + hasFilters = c.$table.hasClass('hasFilters'); + if (hasFilters && !p.ajaxUrl) { + if (ts.isEmptyObject(c.cache)) { + // delayInit: true so nothing is in the cache + p.filteredRows = p.totalRows = c.$tbodies.eq(0).children('tr').not( p.countChildRows ? '' : '.' + c.cssChildRow ).length; + } else { + p.filteredRows = 0; + normalized = c.cache[0].normalized; + len = normalized.length; + for (indx = 0; indx < len; indx++) { + p.filteredRows += p.regexRows.test(normalized[indx][c.columns].$row[0].className) ? 0 : 1; + } + } + } else if (!hasFilters) { + p.filteredRows = p.totalRows; + } + }, + + updatePageDisplay = function(table, p, completed) { + if ( p.initializing ) { return; } + var s, t, $out, indx, len, options, + c = table.config, + namespace = c.namespace + 'pager', + sz = parsePageSize( p, p.size, 'get' ); // don't allow dividing by zero + if (p.countChildRows) { t.push(c.cssChildRow); } + p.totalPages = Math.ceil( p.totalRows / sz ); // needed for "pageSize" method + c.totalRows = p.totalRows; + parsePageNumber( table, p ); + calcFilters(table, p); + c.filteredRows = p.filteredRows; + p.filteredPages = Math.ceil( p.filteredRows / sz ) || 0; + if ( getTotalPages( table, p ) >= 0 ) { + t = (p.size * p.page > p.filteredRows) && completed; + p.page = (t) ? p.pageReset || 0 : p.page; + p.startRow = (t) ? p.size * p.page + 1 : (p.filteredRows === 0 ? 0 : p.size * p.page + 1); + p.endRow = Math.min( p.filteredRows, p.totalRows, p.size * ( p.page + 1 ) ); + $out = p.$container.find(p.cssPageDisplay); + // form the output string (can now get a new output string from the server) + s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output || p.output : p.output ) + // {page} = one-based index; {page+#} = zero based index +/- value + .replace(/\{page([\-+]\d+)?\}/gi, function(m, n){ + return p.totalPages ? p.page + (n ? parseInt(n, 10) : 1) : 0; + }) + // {totalPages}, {extra}, {extra:0} (array) or {extra : key} (object) + .replace(/\{\w+(\s*:\s*\w+)?\}/gi, function(m){ + var len, indx, + str = m.replace(/[{}\s]/g, ''), + extra = str.split(':'), + data = p.ajaxData, + // return zero for default page/row numbers + deflt = /(rows?|pages?)$/i.test(str) ? 0 : ''; + if (/(startRow|page)/.test(extra[0]) && extra[1] === 'input') { + len = ('' + (extra[0] === 'page' ? p.totalPages : p.totalRows)).length; + indx = extra[0] === 'page' ? p.page + 1 : p.startRow; + return ''; + } + return extra.length > 1 && data && data[extra[0]] ? data[extra[0]][extra[1]] : p[str] || (data ? data[str] : deflt) || deflt; + }); + if ( p.$goto.length ) { + t = ''; + options = buildPageSelect( table, p ); + len = options.length; + for (indx = 0; indx < len; indx++) { + t += ''; + } + // innerHTML doesn't work in IE9 - http://support2.microsoft.com/kb/276228 + p.$goto.html(t).val( p.page + 1 ); + } + if ($out.length) { + $out[ ($out[0].nodeName === 'INPUT') ? 'val' : 'html' ](s); + // rebind startRow/page inputs + $out.find('.ts-startRow, .ts-page').unbind('change' + namespace).bind('change' + namespace, function(){ + var v = $(this).val(), + pg = $(this).hasClass('ts-startRow') ? Math.floor( v / p.size ) + 1 : v; + c.$table.trigger('pageSet' + namespace, [ pg ]); + }); + } + } + pagerArrows( table, p ); + fixHeight(table, p); + if (p.initialized && completed !== false) { + if (c.debug) { + console.log('Pager: Triggering pagerComplete'); + } + c.$table.trigger('pagerComplete', p); + // save pager info to storage + if (p.savePages && ts.storage) { + ts.storage(table, p.storageKey, { + page : p.page, + size : p.size + }); + } + } + }, + + buildPageSelect = function( table, p ) { + // Filter the options page number link array if it's larger than 'maxOptionSize' + // as large page set links will slow the browser on large dom inserts + var i, central_focus_size, focus_option_pages, insert_index, option_length, focus_length, + pg = getTotalPages( table, p ) || 1, + // make skip set size multiples of 5 + skip_set_size = Math.ceil( ( pg / p.maxOptionSize ) / 5 ) * 5, + large_collection = pg > p.maxOptionSize, + current_page = p.page + 1, + start_page = skip_set_size, + end_page = pg - skip_set_size, + option_pages = [ 1 ], + // construct default options pages array + option_pages_start_page = (large_collection) ? skip_set_size : 1; + + for ( i = option_pages_start_page; i <= pg; ) { + option_pages.push(i); + i = i + ( large_collection ? skip_set_size : 1 ); + } + option_pages.push(pg); + if (large_collection) { + focus_option_pages = []; + // don't allow central focus size to be > 5 on either side of current page + central_focus_size = Math.max( Math.floor( p.maxOptionSize / skip_set_size ) - 1, 5 ); + + start_page = current_page - central_focus_size; + if (start_page < 1) { start_page = 1; } + end_page = current_page + central_focus_size; + if (end_page > pg) { end_page = pg; } + // construct an array to get a focus set around the current page + for (i = start_page; i <= end_page ; i++) { + focus_option_pages.push(i); + } + + // keep unique values + option_pages = $.grep(option_pages, function(value, indx) { + return $.inArray(value, option_pages) === indx; + }); + + option_length = option_pages.length; + focus_length = focus_option_pages.length; + + // make sure at all option_pages aren't replaced + if (option_length - focus_length > skip_set_size / 2 && option_length + focus_length > p.maxOptionSize ) { + insert_index = Math.floor(option_length / 2) - Math.floor(focus_length / 2); + Array.prototype.splice.apply(option_pages, [ insert_index, focus_length ]); + } + option_pages = option_pages.concat(focus_option_pages); + + } + + // keep unique values again + option_pages = $.grep(option_pages, function(value, indx) { + return $.inArray(value, option_pages) === indx; + }) + .sort(function(a, b) { return a - b; }); + + return option_pages; + }, + + fixHeight = function(table, p) { + var d, h, + c = table.config, + $b = c.$tbodies.eq(0); + $b.find('tr.pagerSavedHeightSpacer').remove(); + if (p.fixedHeight && !p.isDisabled) { + h = $.data(table, 'pagerSavedHeight'); + if (h) { + d = h - $b.height(); + if ( d > 5 && $.data(table, 'pagerLastSize') === p.size && $b.children('tr:visible').length < p.size ) { + $b.append(''); + } + } + } + }, + + changeHeight = function(table, p) { + var h, + c = table.config, + $b = c.$tbodies.eq(0); + $b.find('tr.pagerSavedHeightSpacer').remove(); + if (!$b.children('tr:visible').length) { + $b.append(' '); + } + h = $b.children('tr').eq(0).height() * p.size; + $.data(table, 'pagerSavedHeight', h); + fixHeight(table, p); + $.data(table, 'pagerLastSize', p.size); + }, + + hideRows = function(table, p){ + if (!p.ajaxUrl) { + var i, + lastIndex = 0, + c = table.config, + rows = c.$tbodies.eq(0).children('tr'), + l = rows.length, + s = ( p.page * p.size ), + e = s + p.size, + f = c.widgetOptions && c.widgetOptions.filter_filteredRow || 'filtered', + last = 0, // for cache indexing + j = 0; // size counter + p.cacheIndex = []; + for ( i = 0; i < l; i++ ){ + if ( !rows[i].className.match(f) ) { + if (j === s && rows[i].className.match(c.cssChildRow)) { + // hide child rows @ start of pager (if already visible) + rows[i].style.display = 'none'; + } else { + rows[i].style.display = ( j >= s && j < e ) ? '' : 'none'; + if (last !== j && j >= s && j < e) { + p.cacheIndex.push(i); + last = j; + } + // don't count child rows + j += rows[i].className.match(c.cssChildRow + '|' + c.selectorRemove.slice(1)) && !p.countChildRows ? 0 : 1; + if ( j === e && rows[i].style.display !== 'none' && rows[i].className.match(ts.css.cssHasChild) ) { + lastIndex = i; + } + } + } + } + // add any attached child rows to last row of pager. Fixes part of issue #396 + if ( lastIndex > 0 && rows[lastIndex].className.match(ts.css.cssHasChild) ) { + while ( ++lastIndex < l && rows[lastIndex].className.match(c.cssChildRow) ) { + rows[lastIndex].style.display = ''; + } + } + } + }, + + hideRowsSetup = function(table, p){ + p.size = parsePageSize( p, p.$size.val(), 'get' ); + p.$size.val( parsePageSize( p, p.size, 'set' ) ); + $.data(table, 'pagerLastSize', p.size); + pagerArrows( table, p ); + if ( !p.removeRows ) { + hideRows(table, p); + $(table).bind('sortEnd filterEnd '.split(' ').join(table.config.namespace + 'pager '), function(){ + hideRows(table, p); + }); + } + }, + + renderAjax = function(data, table, p, xhr, settings, exception){ + // process data + if ( typeof p.ajaxProcessing === 'function' ) { + + // in case nothing is returned by ajax, empty out the table; see #1032 + // but do it before calling pager_ajaxProcessing because that function may add content + // directly to the table + table.config.$tbodies.eq(0).empty(); + + // ajaxProcessing result: [ total, rows, headers ] + var i, j, t, hsh, $f, $sh, $headers, $h, icon, th, d, l, rr_count, len, + c = table.config, + $table = c.$table, + tds = '', + result = p.ajaxProcessing(data, table, xhr) || [ 0, [] ], + hl = $table.find('thead th').length; + + // Clean up any previous error. + ts.showError( table ); + + if ( exception ) { + if (c.debug) { + console.error('Pager: >> Ajax Error', xhr, settings, exception); + } + ts.showError( table, xhr, settings, exception ); + c.$tbodies.eq(0).children('tr').detach(); + p.totalRows = 0; + } else { + // process ajax object + if (!$.isArray(result)) { + p.ajaxData = result; + c.totalRows = p.totalRows = result.total; + c.filteredRows = p.filteredRows = typeof result.filteredRows !== 'undefined' ? result.filteredRows : result.total; + th = result.headers; + d = result.rows || []; + } else { + // allow [ total, rows, headers ] or [ rows, total, headers ] + t = isNaN(result[0]) && !isNaN(result[1]); + // ensure a zero returned row count doesn't fail the logical || + rr_count = result[t ? 1 : 0]; + p.totalRows = isNaN(rr_count) ? p.totalRows || 0 : rr_count; + // can't set filtered rows when returning an array + c.totalRows = c.filteredRows = p.filteredRows = p.totalRows; + // set row data to empty array if nothing found - see http://stackoverflow.com/q/30875583/145346 + d = p.totalRows === 0 ? [] : result[t ? 0 : 1] || []; // row data + th = result[2]; // headers + } + l = d && d.length; + if (d instanceof jQuery) { + if (p.processAjaxOnInit) { + // append jQuery object + c.$tbodies.eq(0).empty(); + c.$tbodies.eq(0).append(d); + } + } else if (l) { + // build table from array + for ( i = 0; i < l; i++ ) { + tds += ''; + for ( j = 0; j < d[i].length; j++ ) { + // build tbody cells; watch for data containing HTML markup - see #434 + tds += /^\s*' + d[i][j] + ''; + } + tds += ''; + } + // add rows to first tbody + if (p.processAjaxOnInit) { + c.$tbodies.eq(0).html( tds ); + } + } + p.processAjaxOnInit = true; + // only add new header text if the length matches + if ( th && th.length === hl ) { + hsh = $table.hasClass('hasStickyHeaders'); + $sh = hsh ? c.widgetOptions.$sticky.children('thead:first').children('tr').children() : ''; + $f = $table.find('tfoot tr:first').children(); + // don't change td headers (may contain pager) + $headers = c.$headers.filter( 'th ' ); + len = $headers.length; + for ( j = 0; j < len; j++ ) { + $h = $headers.eq( j ); + // add new test within the first span it finds, or just in the header + if ( $h.find('.' + ts.css.icon).length ) { + icon = $h.find('.' + ts.css.icon).clone(true); + $h.find('.tablesorter-header-inner').html( th[j] ).append(icon); + if ( hsh && $sh.length ) { + icon = $sh.eq(j).find('.' + ts.css.icon).clone(true); + $sh.eq(j).find('.tablesorter-header-inner').html( th[j] ).append(icon); + } + } else { + $h.find('.tablesorter-header-inner').html( th[j] ); + if (hsh && $sh.length) { + $sh.eq(j).find('.tablesorter-header-inner').html( th[j] ); + } + } + $f.eq(j).html( th[j] ); + } + } + } + if (c.showProcessing) { + ts.isProcessing(table); // remove loading icon + } + // make sure last pager settings are saved, prevents multiple server side calls with + // the same parameters + p.totalPages = Math.ceil( p.totalRows / parsePageSize( p, p.size, 'get' ) ); + p.last.totalRows = p.totalRows; + p.last.currentFilters = p.currentFilters; + p.last.sortList = (c.sortList || []).join(','); + updatePageDisplay(table, p, false); + // tablesorter core updateCache (not pager) + ts.updateCache( c, function(){ + if (p.initialized) { + // apply widgets after table has rendered & after a delay to prevent + // multiple applyWidget blocking code from blocking this trigger + setTimeout(function(){ + if (c.debug) { + console.log('Pager: Triggering pagerChange'); + } + $table.trigger( 'pagerChange', p ); + ts.applyWidget( table ); + updatePageDisplay(table, p, true); + }, 0); + } + }); + + } + if (!p.initialized) { + p.initialized = true; + p.initializing = false; + if (table.config.debug) { + console.log('Pager: Triggering pagerInitialized'); + } + $(table).trigger( 'pagerInitialized', p ); + ts.applyWidget( table ); + updatePageDisplay(table, p); + } + }, + + getAjax = function(table, p) { + var url = getAjaxUrl(table, p), + $doc = $(document), + counter, + c = table.config, + namespace = c.namespace + 'pager'; + if ( url !== '' ) { + if (c.showProcessing) { + ts.isProcessing(table, true); // show loading icon + } + $doc.bind('ajaxError' + namespace, function(e, xhr, settings, exception) { + renderAjax(null, table, p, xhr, settings, exception); + $doc.unbind('ajaxError' + namespace); + }); + + counter = ++p.ajaxCounter; + + p.last.ajaxUrl = url; // remember processed url + p.ajaxObject.url = url; // from the ajaxUrl option and modified by customAjaxUrl + p.ajaxObject.success = function(data, status, jqxhr) { + // Refuse to process old ajax commands that were overwritten by new ones - see #443 + if (counter < p.ajaxCounter){ + return; + } + renderAjax(data, table, p, jqxhr); + $doc.unbind('ajaxError' + namespace); + if (typeof p.oldAjaxSuccess === 'function') { + p.oldAjaxSuccess(data); + } + }; + if (c.debug) { + console.log('Pager: Ajax initialized', p.ajaxObject); + } + $.ajax(p.ajaxObject); + } + }, + + getAjaxUrl = function(table, p) { + var indx, len, + c = table.config, + url = (p.ajaxUrl) ? p.ajaxUrl + // allow using "{page+1}" in the url string to switch to a non-zero based index + .replace(/\{page([\-+]\d+)?\}/, function(s, n){ return p.page + (n ? parseInt(n, 10) : 0); }) + .replace(/\{size\}/g, p.size) : '', + sortList = c.sortList, + filterList = p.currentFilters || $(table).data('lastSearch') || [], + sortCol = url.match(/\{\s*sort(?:List)?\s*:\s*(\w*)\s*\}/), + filterCol = url.match(/\{\s*filter(?:List)?\s*:\s*(\w*)\s*\}/), + arry = []; + if (sortCol) { + sortCol = sortCol[1]; + len = sortList.length; + for (indx = 0; indx < len; indx++) { + arry.push(sortCol + '[' + sortList[indx][0] + ']=' + sortList[indx][1]); + } + // if the arry is empty, just add the col parameter... "&{sortList:col}" becomes "&col" + url = url.replace(/\{\s*sort(?:List)?\s*:\s*(\w*)\s*\}/g, arry.length ? arry.join('&') : sortCol ); + arry = []; + } + if (filterCol) { + filterCol = filterCol[1]; + len = filterList.length; + for (indx = 0; indx < len; indx++) { + if (filterList[indx]) { + arry.push(filterCol + '[' + indx + ']=' + encodeURIComponent(filterList[indx])); + } + } + // if the arry is empty, just add the fcol parameter... "&{filterList:fcol}" becomes "&fcol" + url = url.replace(/\{\s*filter(?:List)?\s*:\s*(\w*)\s*\}/g, arry.length ? arry.join('&') : filterCol ); + p.currentFilters = filterList; + } + if ( typeof p.customAjaxUrl === 'function' ) { + url = p.customAjaxUrl(table, url); + } + if (c.debug) { + console.log('Pager: Ajax url = ' + url); + } + return url; + }, + + renderTable = function(table, rows, p) { + var $tb, index, count, added, + $t = $(table), + c = table.config, + f = c.$table.hasClass('hasFilters'), + l = rows && rows.length || 0, // rows may be undefined + s = ( p.page * p.size ), + e = p.size; + if ( l < 1 ) { + if (c.debug) { + console.warn('Pager: >> No rows for pager to render'); + } + // empty table, abort! + return; + } + if ( p.page >= p.totalPages ) { + // lets not render the table more than once + moveToLastPage(table, p); + } + p.cacheIndex = []; + p.isDisabled = false; // needed because sorting will change the page and re-enable the pager + if (p.initialized) { + if (c.debug) { + console.log('Pager: Triggering pagerChange'); + } + $t.trigger( 'pagerChange', p ); + } + if ( !p.removeRows ) { + hideRows(table, p); + } else { + ts.clearTableBody(table); + $tb = ts.processTbody(table, c.$tbodies.eq(0), true); + // not filtered, start from the calculated starting point (s) + // if filtered, start from zero + index = f ? 0 : s; + count = f ? 0 : s; + added = 0; + while (added < e && index < rows.length) { + if (!f || !/filtered/.test(rows[index][0].className)){ + count++; + if (count > s && added <= e) { + added++; + p.cacheIndex.push(index); + $tb.append(rows[index]); + } + } + index++; + } + ts.processTbody(table, $tb, false); + } + updatePageDisplay(table, p); + if (table.isUpdating) { + if (c.debug) { + console.log('Pager: Triggering updateComplete'); + } + $t.trigger('updateComplete', [ table, true ]); + } + }, + + showAllRows = function(table, p) { + var index, $controls, len; + if ( p.ajax ) { + pagerArrows( table, p, true ); + } else { + $.data(table, 'pagerLastPage', p.page); + $.data(table, 'pagerLastSize', p.size); + p.page = 0; + p.size = p.totalRows; + p.totalPages = 1; + $(table) + .addClass('pagerDisabled') + .removeAttr('aria-describedby') + .find('tr.pagerSavedHeightSpacer').remove(); + renderTable(table, table.config.rowsCopy, p); + p.isDisabled = true; + ts.applyWidget( table ); + if (table.config.debug) { + console.log('Pager: Disabled'); + } + } + // disable size selector + $controls = p.$size + .add( p.$goto ) + .add( p.$container.find( '.ts-startRow, .ts-page' ) ); + len = $controls.length; + for ( index = 0; index < len; index++ ) { + $controls.eq( index ) + .attr( 'aria-disabled', 'true' ) + .addClass( p.cssDisabled )[0].disabled = true; + } + }, + + // updateCache if delayInit: true + updateCache = function(table) { + var c = table.config, + p = c.pager; + // tablesorter core updateCache (not pager) + ts.updateCache( c, function(){ + var i, + rows = [], + n = table.config.cache[0].normalized; + p.totalRows = n.length; + for (i = 0; i < p.totalRows; i++) { + rows.push(n[i][c.columns].$row); + } + c.rowsCopy = rows; + moveToPage(table, p, true); + }); + }, + + moveToPage = function(table, p, pageMoved) { + if ( p.isDisabled ) { return; } + var c = table.config, + $t = $(table), + l = p.last; + if ( pageMoved !== false && p.initialized && ts.isEmptyObject(c.cache)) { + return updateCache(table); + } + // abort page move if the table has filters and has not been initialized + if (p.ajax && ts.hasWidget(table, 'filter') && !c.widgetOptions.filter_initialized) { return; } + parsePageNumber( table, p ); + calcFilters(table, p); + // fixes issue where one currentFilter is [] and the other is ['','',''], + // making the next if comparison think the filters are different (joined by commas). Fixes #202. + l.currentFilters = (l.currentFilters || []).join('') === '' ? [] : l.currentFilters; + p.currentFilters = (p.currentFilters || []).join('') === '' ? [] : p.currentFilters; + // don't allow rendering multiple times on the same page/size/totalRows/filters/sorts + if ( l.page === p.page && l.size === p.size && l.totalRows === p.totalRows && + (l.currentFilters || []).join(',') === (p.currentFilters || []).join(',') && + // check for ajax url changes see #730 + (l.ajaxUrl || '') === (p.ajaxObject.url || '') && + // & ajax url option changes (dynamically add/remove/rename sort & filter parameters) + (l.optAjaxUrl || '') === (p.ajaxUrl || '') && + l.sortList === (c.sortList || []).join(',') ) { return; } + if (c.debug) { + console.log('Pager: Changing to page ' + p.page); + } + p.last = { + page : p.page, + size : p.size, + // fixes #408; modify sortList otherwise it auto-updates + sortList : (c.sortList || []).join(','), + totalRows : p.totalRows, + currentFilters : p.currentFilters || [], + ajaxUrl : p.ajaxObject.url || '', + optAjaxUrl : p.ajaxUrl || '' + }; + if (p.ajax) { + getAjax(table, p); + } else if (!p.ajax) { + renderTable(table, c.rowsCopy, p); + } + $.data(table, 'pagerLastPage', p.page); + if (p.initialized && pageMoved !== false) { + if (c.debug) { + console.log('Pager: Triggering pageMoved'); + } + $t.trigger('pageMoved', p); + ts.applyWidget( table ); + if (table.isUpdating) { + if (c.debug) { + console.log('Pager: Triggering updateComplete'); + } + $t.trigger('updateComplete', [ table, true ]); + } + } + }, + + getTotalPages = function( table, p ) { + return ts.hasWidget( table, 'filter' ) ? Math.min( p.totalPages, p.filteredPages ) : p.totalPages; + }, + + // set to either set or get value + parsePageSize = function( p, size, mode ) { + var s = parseInt( size, 10 ) || p.size || p.settings.size || 10, + // if select does not contain an "all" option, use size + setAll = p.$size.find( 'option[value="all"]' ).length ? 'all' : p.totalRows; + return /all/i.test( size ) || s === p.totalRows ? + // "get" to get `p.size` or "set" to set `p.$size.val()` + ( mode === 'get' ? p.totalRows : setAll ) : + ( mode === 'get' ? s : p.size ); + }, + + parsePageNumber = function( table, p ) { + var min = getTotalPages( table, p ) - 1; + p.page = parseInt( p.page, 10 ); + if ( p.page < 0 || isNaN( p.page ) ) { p.page = 0; } + if ( p.page > min && min >= 0 ) { p.page = min; } + return p.page; + }, + + setPageSize = function(table, size, p) { + p.size = parsePageSize( p, size, 'get' ); + p.$size.val( parsePageSize( p, p.size, 'set' ) ); + $.data(table, 'pagerLastPage', parsePageNumber( table, p ) ); + $.data(table, 'pagerLastSize', p.size); + p.totalPages = Math.ceil( p.totalRows / p.size ); + p.filteredPages = Math.ceil( p.filteredRows / p.size ); + moveToPage(table, p); + }, + + moveToFirstPage = function(table, p) { + p.page = 0; + moveToPage(table, p); + }, + + moveToLastPage = function(table, p) { + p.page = getTotalPages( table, p ) - 1; + moveToPage(table, p); + }, + + moveToNextPage = function(table, p) { + p.page++; + var last = getTotalPages( table, p ) - 1; + if ( p.page >= last ) { + p.page = last; + } + moveToPage(table, p); + }, + + moveToPrevPage = function(table, p) { + p.page--; + if ( p.page <= 0 ) { + p.page = 0; + } + moveToPage(table, p); + }, + + destroyPager = function(table, p) { + var c = table.config, + namespace = c.namespace + 'pager', + ctrls = [ p.cssFirst, p.cssPrev, p.cssNext, p.cssLast, p.cssGoto, p.cssPageSize ].join( ',' ); + showAllRows(table, p); + p.$container + // hide pager controls + .hide() + // unbind + .find( ctrls ) + .unbind( namespace ); + c.appender = null; // remove pager appender function + c.$table.unbind( namespace ); + if (ts.storage) { + ts.storage(table, p.storageKey, ''); + } + delete c.pager; + delete c.rowsCopy; + }, + + enablePager = function(table, p, triggered) { + var info, size, + c = table.config; + p.$size.add(p.$goto).add(p.$container.find('.ts-startRow, .ts-page')) + .removeClass(p.cssDisabled) + .removeAttr('disabled') + .attr('aria-disabled', 'false'); + p.isDisabled = false; + p.page = $.data(table, 'pagerLastPage') || p.page || 0; + size = p.$size.find('option[selected]').val(); + p.size = $.data(table, 'pagerLastSize') || parsePageSize( p, p.size, 'get' ); + p.$size.val( parsePageSize( p, p.size, 'set' ) ); // set page size + p.totalPages = Math.ceil( getTotalPages( table, p ) / p.size ); + // if table id exists, include page display with aria info + if ( table.id ) { + info = table.id + '_pager_info'; + p.$container.find(p.cssPageDisplay).attr('id', info); + c.$table.attr('aria-describedby', info); + } + changeHeight(table, p); + if ( triggered ) { + // tablesorter core update table + ts.update( c ); + setPageSize(table, p.size, p); + hideRowsSetup(table, p); + if (c.debug) { + console.log('Pager: Enabled'); + } + } + }; + + $this.appender = function(table, rows) { + var c = table.config, + p = c.pager; + if ( !p.ajax ) { + c.rowsCopy = rows; + p.totalRows = p.countChildRows ? c.$tbodies.eq(0).children('tr').length : rows.length; + p.size = $.data(table, 'pagerLastSize') || p.size || p.settings.size || 10; + p.totalPages = Math.ceil( p.totalRows / p.size ); + renderTable(table, rows, p); + // update display here in case all rows are removed + updatePageDisplay(table, p, false); + } + }; + + $this.construct = function(settings) { + return this.each(function() { + // check if tablesorter has initialized + if (!(this.config && this.hasInitialized)) { return; } + var t, ctrls, fxn, + table = this, + c = table.config, + wo = c.widgetOptions, + p = c.pager = $.extend( true, {}, $.tablesorterPager.defaults, settings ), + $t = c.$table, + namespace = c.namespace + 'pager', + // added in case the pager is reinitialized after being destroyed. + pager = p.$container = $(p.container).addClass('tablesorter-pager').show(); + // save a copy of the original settings + p.settings = $.extend( true, {}, $.tablesorterPager.defaults, settings ); + if (c.debug) { + console.log('Pager: Initializing'); + } + p.oldAjaxSuccess = p.oldAjaxSuccess || p.ajaxObject.success; + c.appender = $this.appender; + p.initializing = true; + if (p.savePages && ts.storage) { + t = ts.storage(table, p.storageKey) || {}; // fixes #387 + p.page = isNaN(t.page) ? p.page : t.page; + p.size = ( isNaN(t.size) ? p.size : t.size ) || p.settings.size || 10; + $.data(table, 'pagerLastSize', p.size); + } + + // skipped rows + p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.slice(1) + '|' + c.cssChildRow + ')'); + + $t + // .unbind( namespace ) adding in jQuery 1.4.3 ( I think ) + .unbind( pagerEvents.split(' ').join(namespace + ' ').replace(/\s+/g, ' ') ) + .bind('filterInit filterStart '.split(' ').join(namespace + ' '), function(e, filters) { + p.currentFilters = $.isArray(filters) ? filters : c.$table.data('lastSearch'); + // don't change page if filters are the same (pager updating, etc) + if (e.type === 'filterStart' && p.pageReset !== false && (c.lastCombinedFilter || '') !== (p.currentFilters || []).join('')) { + p.page = p.pageReset; // fixes #456 & #565 + } + }) + // update pager after filter widget completes + .bind('filterEnd sortEnd '.split(' ').join(namespace + ' '), function() { + p.currentFilters = c.$table.data('lastSearch'); + if (p.initialized || p.initializing) { + if (c.delayInit && c.rowsCopy && c.rowsCopy.length === 0) { + // make sure we have a copy of all table rows once the cache has been built + updateCache(table); + } + updatePageDisplay(table, p, false); + moveToPage(table, p, false); + ts.applyWidget( table ); + } + }) + .bind('disablePager' + namespace, function(e){ + e.stopPropagation(); + showAllRows(table, p); + }) + .bind('enablePager' + namespace, function(e){ + e.stopPropagation(); + enablePager(table, p, true); + }) + .bind('destroyPager' + namespace, function(e){ + e.stopPropagation(); + destroyPager(table, p); + }) + .bind('updateComplete' + namespace, function(e, table, triggered){ + e.stopPropagation(); + // table can be unintentionally undefined in tablesorter v2.17.7 and earlier + // don't recalculate total rows/pages if using ajax + if ( !table || triggered || p.ajax ) { return; } + var $rows = c.$tbodies.eq(0).children('tr').not(c.selectorRemove); + p.totalRows = $rows.length - ( p.countChildRows ? 0 : $rows.filter('.' + c.cssChildRow).length ); + p.totalPages = Math.ceil( p.totalRows / p.size ); + if ($rows.length && c.rowsCopy && c.rowsCopy.length === 0) { + // make a copy of all table rows once the cache has been built + updateCache(table); + } + if ( p.page >= p.totalPages ) { + moveToLastPage(table, p); + } + hideRows(table, p); + changeHeight(table, p); + updatePageDisplay(table, p, true); + }) + .bind('pageSize refreshComplete '.split(' ').join(namespace + ' '), function(e, size){ + e.stopPropagation(); + setPageSize(table, parsePageSize( p, size, 'get' ), p); + hideRows(table, p); + updatePageDisplay(table, p, false); + }) + .bind('pageSet pagerUpdate '.split(' ').join(namespace + ' '), function(e, num){ + e.stopPropagation(); + // force pager refresh + if (e.type === 'pagerUpdate') { + num = typeof num === 'undefined' ? p.page + 1 : num; + p.last.page = true; + } + p.page = (parseInt(num, 10) || 1) - 1; + moveToPage(table, p, true); + updatePageDisplay(table, p, false); + }) + .bind('pageAndSize' + namespace, function(e, page, size){ + e.stopPropagation(); + p.page = (parseInt(page, 10) || 1) - 1; + setPageSize(table, parsePageSize( p, size, 'get' ), p); + moveToPage(table, p, true); + hideRows(table, p); + updatePageDisplay(table, p, false); + }); + + // clicked controls + ctrls = [ p.cssFirst, p.cssPrev, p.cssNext, p.cssLast ]; + fxn = [ moveToFirstPage, moveToPrevPage, moveToNextPage, moveToLastPage ]; + if (c.debug && !pager.length) { + console.warn('Pager: >> Container not found'); + } + pager.find(ctrls.join(',')) + .attr('tabindex', 0) + .unbind('click' + namespace) + .bind('click' + namespace, function(e){ + e.stopPropagation(); + var i, $t = $(this), l = ctrls.length; + if ( !$t.hasClass(p.cssDisabled) ) { + for (i = 0; i < l; i++) { + if ($t.is(ctrls[i])) { + fxn[i](table, p); + break; + } + } + } + }); + + // goto selector + p.$goto = pager.find(p.cssGoto); + if ( p.$goto.length ) { + p.$goto + .unbind('change' + namespace) + .bind('change' + namespace, function(){ + p.page = $(this).val() - 1; + moveToPage(table, p, true); + updatePageDisplay(table, p, false); + }); + } else if (c.debug) { + console.warn('Pager: >> Goto selector not found'); + } + // page size selector + p.$size = pager.find(p.cssPageSize); + if ( p.$size.length ) { + // setting an option as selected appears to cause issues with initial page size + p.$size.find('option').removeAttr('selected'); + p.$size.unbind('change' + namespace).bind('change' + namespace, function() { + if ( !$(this).hasClass(p.cssDisabled) ) { + var size = $(this).val(); + p.$size.val( size ); // in case there are more than one pagers + setPageSize(table, size, p); + changeHeight(table, p); + } + return false; + }); + } else if (c.debug) { + console.warn('Pager: >> Size selector not found'); + } + + // clear initialized flag + p.initialized = false; + // before initialization event + $t.trigger('pagerBeforeInitialized', p); + + enablePager(table, p, false); + if ( typeof p.ajaxUrl === 'string' ) { + // ajax pager; interact with database + p.ajax = true; + // When filtering with ajax, allow only custom filtering function, disable default + // filtering since it will be done server side. + c.widgetOptions.filter_serversideFiltering = true; + c.serverSideSorting = true; + moveToPage(table, p); + } else { + p.ajax = false; + // Regular pager; all rows stored in memory + ts.appendCache( c, true ); // true = don't apply widgets + hideRowsSetup(table, p); + } + + // pager initialized + if (!p.ajax && !p.initialized) { + p.initializing = false; + p.initialized = true; + moveToPage(table, p); + if (c.debug) { + console.log('Pager: Triggering pagerInitialized'); + } + c.$table.trigger( 'pagerInitialized', p ); + if ( !( c.widgetOptions.filter_initialized && ts.hasWidget(table, 'filter') ) ) { + updatePageDisplay(table, p, false); + } + } + + // make the hasWidget function think that the pager widget is being used + c.widgetInit.pager = true; + }); + }; + + }() }); + + // see #486 + ts.showError = function( table, xhr, settings, exception ) { + var $row, + $table = $( table ), + c = $table[0].config, + wo = c && c.widgetOptions, + errorRow = c.pager && c.pager.cssErrorRow || + wo && wo.pager_css && wo.pager_css.errorRow || + 'tablesorter-errorRow', + typ = typeof xhr, + valid = true, + message = '', + removeRow = function(){ + c.$table.find( 'thead' ).find( '.' + errorRow ).remove(); + }; + + if ( !$table.length ) { + console.error('tablesorter showError: no table parameter passed'); + return; + } + + // ajaxError callback for plugin or widget - see #992 + if ( typeof c.pager.ajaxError === 'function' ) { + valid = c.pager.ajaxError( c, xhr, settings, exception ); + if ( valid === false ) { + return removeRow(); + } else { + message = valid; + } + } else if ( typeof wo.pager_ajaxError === 'function' ) { + valid = wo.pager_ajaxError( c, xhr, settings, exception ); + if ( valid === false ) { + return removeRow(); + } else { + message = valid; + } + } + + if ( message === '' ) { + if ( typ === 'object' ) { + message = + xhr.status === 0 ? 'Not connected, verify Network' : + xhr.status === 404 ? 'Requested page not found [404]' : + xhr.status === 500 ? 'Internal Server Error [500]' : + exception === 'parsererror' ? 'Requested JSON parse failed' : + exception === 'timeout' ? 'Time out error' : + exception === 'abort' ? 'Ajax Request aborted' : + 'Uncaught error: ' + xhr.statusText + ' [' + xhr.status + ']'; + } else if ( typ === 'string' ) { + // keep backward compatibility (external usage just passes a message string) + message = xhr; + } else { + // remove all error rows + return removeRow(); + } + } + + // allow message to include entire row HTML! + $row = ( /tr\>/.test(message) ? $(message) : $('' + message + '') ) + .click( function() { + $( this ).remove(); + }) + // add error row to thead instead of tbody, or clicking on the header will result in a parser error + .appendTo( c.$table.find( 'thead:first' ) ) + .addClass( errorRow + ' ' + c.selectorRemove.slice(1) ) + .attr({ + role : 'alert', + 'aria-live' : 'assertive' + }); + + }; + + // extend plugin scope + $.fn.extend({ + tablesorterPager: $.tablesorterPager.construct + }); + +})(jQuery); diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html new file mode 100644 index 000000000..83b5d22d3 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html @@ -0,0 +1,1200 @@ + + + + + jQuery plugin: Tablesorter 2.0 - Pager plugin, Custom Pagination + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  + +

                                  + NOTE! +

                                    +
                                  • Modified in v2.17.1 to properly work with either the pager addon or pager widget.
                                  • +
                                  • In v2.16.4, code was updated to correctly count process pages.
                                  • +
                                  +

                                  + +

                                  Demo

                                  +
                                  + +
                                  + +
                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  NameMajorSexEnglishJapaneseCalculusGeometry
                                  NameMajorSexEnglishJapaneseCalculusGeometry
                                  +
                                  + # per page: + 10 | + 25 | + 50 | + 100 + + + + Prev  + + +  Next + + + +
                                  +
                                  Student01Languagesmale80707580
                                  Student02Mathematicsmale908810090
                                  Student03Languagesfemale85958085
                                  Student04Languagesmale6055100100
                                  Student05Languagesfemale68809580
                                  Student06Mathematicsmale1009910090
                                  Student07Mathematicsmale85689090
                                  Student08Languagesmale100909085
                                  Student09Mathematicsmale80506575
                                  Student10Languagesmale8510010090
                                  Student11Languagesmale8685100100
                                  Student12Mathematicsfemale100757085
                                  Student13Languagesfemale1008010090
                                  Student14Languagesfemale50455590
                                  Student15Languagesmale953510090
                                  Student16Languagesfemale100503070
                                  Student17Languagesfemale801005565
                                  Student18Mathematicsmale30495575
                                  Student19Languagesmale68908870
                                  Student20Mathematicsmale40454080
                                  Student21Languagesmale5045100100
                                  Student22Mathematicsmale1009910090
                                  Student23Languagesfemale85808080
                                  student24Languagesfemale100911382
                                  student25Mathematicsmale22968253
                                  student26Languagesfemale37295659
                                  student27Mathematicsmale86826923
                                  student28Languagesfemale4425431
                                  student29Mathematicsmale77472238
                                  student30Languagesfemale19352310
                                  student31Mathematicsmale90271750
                                  student32Languagesfemale60753338
                                  student33Mathematicsmale4313715
                                  student34Languagesfemale77978144
                                  student35Mathematicsmale5815195
                                  student36Languagesfemale70617094
                                  student37Mathematicsmale6036184
                                  student38Languagesfemale6339011
                                  student39Mathematicsmale50463238
                                  student40Languagesfemale5175253
                                  student41Mathematicsmale43342878
                                  student42Languagesfemale11896095
                                  student43Mathematicsmale48921888
                                  student44Languagesfemale8225973
                                  student45Mathematicsmale91733739
                                  student46Languagesfemale481210
                                  student47Mathematicsmale8910611
                                  student48Languagesfemale90322118
                                  student49Mathematicsmale42494972
                                  student50Languagesfemale56376754
                                  student51Mathematicsmale48315563
                                  student52Languagesfemale38917174
                                  student53Mathematicsmale26385100
                                  student54Languagesfemale75811623
                                  student55Mathematicsmale65521553
                                  student56Languagesfemale23527994
                                  student57Mathematicsmale80226112
                                  student58Languagesfemale5357979
                                  student59Mathematicsmale96323517
                                  student60Languagesfemale16766527
                                  student61Mathematicsmale20572223
                                  student62Languagesfemale19838778
                                  student63Mathematicsmale258330
                                  student64Languagesfemale021993
                                  student65Mathematicsmale20861396
                                  student66Languagesfemale28358757
                                  student67Mathematicsmale36502910
                                  student68Languagesfemale6090966
                                  student69Mathematicsmale34614398
                                  student70Languagesfemale13379183
                                  student71Mathematicsmale47805782
                                  student72Languagesfemale69433737
                                  student73Mathematicsmale54609421
                                  student74Languagesfemale71143446
                                  student75Mathematicsmale89963117
                                  student76Languagesfemale28482994
                                  student77Mathematicsmale100652024
                                  student78Languagesfemale11969033
                                  student79Mathematicsmale53559339
                                  student80Languagesfemale11008444
                                  student81Mathematicsmale63789643
                                  student82Languagesfemale41698235
                                  student83Mathematicsmale9498139
                                  student84Languagesfemale94729177
                                  student85Mathematicsmale71324525
                                  student86Languagesfemale9896437
                                  student87Mathematicsmale8917367
                                  student88Languagesfemale43416879
                                  student89Mathematicsmale7382237
                                  student90Languagesfemale94839337
                                  student91Mathematicsmale8284261
                                  student92Languagesfemale46413069
                                  student93Mathematicsmale47198583
                                  student94Languagesfemale39146462
                                  student95Mathematicsmale71314628
                                  student96Languagesfemale90944540
                                  student97Mathematicsmale468925
                                  student98Languagesfemale41434799
                                  student99Mathematicsmale71908973
                                  student100Languagesfemale31641856
                                  student101Mathematicsmale52136999
                                  student102Languagesfemale86398318
                                  student103Mathematicsmale23659880
                                  student104Languagesfemale781005766
                                  student105Mathematicsmale69214397
                                  student106Languagesfemale2727838
                                  student107Mathematicsmale86964634
                                  student108Languagesfemale13846664
                                  student109Mathematicsmale35959881
                                  student110Languagesfemale30286254
                                  student111Mathematicsmale60313585
                                  student112Languagesfemale19811969
                                  student113Mathematicsmale6659854
                                  student114Languagesfemale38804016
                                  student115Mathematicsmale5849697
                                  student116Languagesfemale59976954
                                  student117Mathematicsmale0347949
                                  student118Languagesfemale1871285
                                  student119Mathematicsmale9387759
                                  student120Languagesfemale42232690
                                  student121Mathematicsmale17396689
                                  student122Languagesfemale26759018
                                  student123Mathematicsmale34237780
                                  student124Languagesfemale5267742
                                  student125Mathematicsmale5628581
                                  student126Languagesfemale51356744
                                  student127Mathematicsmale64644434
                                  student128Languagesfemale67917982
                                  student129Mathematicsmale4261579
                                  student130Languagesfemale7210369
                                  student131Mathematicsmale9477511
                                  student132Languagesfemale27958548
                                  student133Mathematicsmale92114061
                                  student134Languagesfemale4185660
                                  student135Mathematicsmale8422652
                                  student136Languagesfemale7604721
                                  student137Mathematicsmale51813090
                                  student138Languagesfemale5861673
                                  student139Mathematicsmale48383731
                                  student140Languagesfemale33265660
                                  student141Mathematicsmale84842975
                                  student142Languagesfemale7235654
                                  student143Mathematicsmale31427082
                                  student144Languagesfemale94875035
                                  student145Mathematicsmale91528026
                                  student146Languagesfemale78657979
                                  student147Mathematicsmale50905971
                                  student148Languagesfemale15686633
                                  student149Mathematicsmale17363413
                                  student150Languagesfemale30956973
                                  student151Mathematicsmale20534958
                                  student152Languagesfemale19896060
                                  student153Mathematicsmale5282203
                                  student154Languagesfemale66985366
                                  student155Mathematicsmale5852258
                                  student156Languagesfemale3443688
                                  student157Mathematicsmale4309114
                                  student158Languagesfemale34186731
                                  student159Mathematicsmale79733452
                                  student160Languagesfemale15613727
                                  student161Mathematicsmale74771545
                                  student162Languagesfemale52621958
                                  student163Mathematicsmale77602795
                                  student164Languagesfemale9619357
                                  student165Mathematicsmale51637519
                                  student166Languagesfemale32447299
                                  student167Mathematicsmale82845763
                                  student168Languagesfemale53128567
                                  student169Mathematicsmale4916846
                                  student170Languagesfemale39341665
                                  student171Mathematicsmale10068884
                                  student172Languagesfemale14256352
                                  student173Mathematicsmale74261560
                                  student174Languagesfemale1158892
                                  student175Mathematicsmale6247231
                                  student176Languagesfemale65263242
                                  student177Mathematicsmale83786924
                                  student178Languagesfemale14100743
                                  student179Mathematicsmale2835897
                                  student180Languagesfemale1483962
                                  student181Mathematicsmale1442469
                                  student182Languagesfemale6452722
                                  student183Mathematicsmale15262785
                                  student184Languagesfemale9149407
                                  student185Mathematicsmale87894287
                                  student186Languagesfemale75766188
                                  student187Mathematicsmale11486630
                                  student188Languagesfemale7379272
                                  student189Mathematicsmale98365815
                                  student190Languagesfemale8028656
                                  student191Mathematicsmale3633974
                                  student192Languagesfemale5923390
                                  student193Mathematicsmale9461933
                                  student194Languagesfemale82497242
                                  student195Mathematicsmale8059830
                                  student196Languagesfemale89179027
                                  student197Mathematicsmale4622667
                                  student198Languagesfemale65757377
                                  student199Mathematicsmale77975413
                                  student200Languagesfemale78195796
                                  student201Mathematicsmale92211180
                                  student202Languagesfemale45499340
                                  student203Mathematicsmale74258753
                                  student204Languagesfemale1571234
                                  student205Mathematicsmale82979573
                                  student206Languagesfemale82605898
                                  student207Mathematicsmale266411100
                                  student208Languagesfemale6496045
                                  student209Mathematicsmale96819663
                                  student210Languagesfemale2439069
                                  student211Mathematicsmale8664710
                                  student212Languagesfemale764507
                                  student213Mathematicsmale59122677
                                  student214Languagesfemale21259382
                                  student215Mathematicsmale22186451
                                  student216Languagesfemale92419828
                                  student217Mathematicsmale32481417
                                  student218Languagesfemale62368556
                                  student219Mathematicsmale33379087
                                  student220Languagesfemale24436084
                                  student221Mathematicsmale6593751
                                  student222Languagesfemale9197576
                                  student223Mathematicsmale86293227
                                  student224Languagesfemale63596891
                                  student225Mathematicsmale57739568
                                  student226Languagesfemale38545987
                                  student227Mathematicsmale53627264
                                  student228Languagesfemale62847273
                                  student229Mathematicsmale1308358
                                  student230Languagesfemale35658087
                                  student231Mathematicsmale76202850
                                  student232Languagesfemale9176633
                                  student233Mathematicsmale9229961
                                  student234Languagesfemale47699839
                                  student235Mathematicsmale21443882
                                  student236Languagesfemale19865178
                                  student237Mathematicsmale28454936
                                  student238Languagesfemale78194981
                                  student239Mathematicsmale72694720
                                  student240Languagesfemale17436656
                                  student241Mathematicsmale901944
                                  student242Languagesfemale618251
                                  student243Mathematicsmale1377213
                                  student244Languagesfemale8005854
                                  student245Mathematicsmale8331859
                                  student246Languagesfemale90992912
                                  student247Mathematicsmale89238159
                                  student248Languagesfemale7226283
                                  student249Mathematicsmale28105047
                                  student250Languagesfemale8914894
                                  student251Mathematicsmale15233769
                                  student252Languagesfemale27821036
                                  student253Mathematicsmale49456423
                                  student254Languagesfemale79756374
                                  student255Mathematicsmale2566475
                                  student256Languagesfemale36262958
                                  student257Mathematicsmale17226673
                                  student258Languagesfemale70919745
                                  student259Mathematicsmale34307830
                                  student260Languagesfemale77578677
                                  student261Mathematicsmale1259687
                                  student262Languagesfemale11609771
                                  student263Mathematicsmale12303558
                                  student264Languagesfemale46152340
                                  student265Mathematicsmale4481926
                                  student266Languagesfemale15683215
                                  student267Mathematicsmale5585098
                                  student268Languagesfemale42303224
                                  student269Mathematicsmale781009957
                                  student270Languagesfemale55338725
                                  student271Mathematicsmale25972993
                                  student272Languagesfemale39351843
                                  student273Mathematicsmale35179958
                                  student274Languagesfemale86522724
                                  student275Mathematicsmale97387376
                                  student276Languagesfemale206198
                                  student277Mathematicsmale9336947
                                  student278Languagesfemale423152
                                  student279Mathematicsmale6118962
                                  student280Languagesfemale99898794
                                  student281Mathematicsmale4895900
                                  student282Languagesfemale60473130
                                  student283Mathematicsmale64241076
                                  student284Languagesfemale9937468
                                  student285Mathematicsmale0986869
                                  student286Languagesfemale66824959
                                  student287Mathematicsmale86143717
                                  student288Languagesfemale27489327
                                  student289Mathematicsmale8489668
                                  student290Languagesfemale9902057
                                  student291Mathematicsmale50967242
                                  student292Languagesfemale9822792
                                  student293Mathematicsmale1994287
                                  student294Languagesfemale9897922
                                  student295Mathematicsmale75307764
                                  student296Languagesfemale5198553
                                  student297Mathematicsmale25958672
                                  student298Languagesfemale20753735
                                  student299Mathematicsmale4924111
                                  student300Languagesfemale2832891
                                  student301Mathematicsmale4163425
                                  student302Languagesfemale29167790
                                  student303Mathematicsmale89415182
                                  student304Languagesfemale40912434
                                  student305Mathematicsmale7474978
                                  student306Languagesfemale6375562
                                  student307Mathematicsmale30733490
                                  student308Languagesfemale82919593
                                  student309Mathematicsmale6247382
                                  student310Languagesfemale39101257
                                  student311Mathematicsmale89642067
                                  student312Languagesfemale56369241
                                  student313Mathematicsmale99809974
                                  student314Languagesfemale31796493
                                  student315Mathematicsmale5327055
                                  student316Languagesfemale35152960
                                  student317Mathematicsmale31476960
                                  student318Languagesfemale88281366
                                  student319Mathematicsmale65121640
                                  student320Languagesfemale28171940
                                  student321Mathematicsmale241004470
                                  student322Languagesfemale20598352
                                  student323Mathematicsmale17608291
                                  student324Languagesfemale95994337
                                  student325Mathematicsmale30189931
                                  student326Languagesfemale3478386
                                  student327Mathematicsmale9863435
                                  student328Languagesfemale54239846
                                  student329Mathematicsmale97934518
                                  student330Languagesfemale2774077
                                  student331Mathematicsmale9704137
                                  student332Languagesfemale52377620
                                  student333Mathematicsmale74186819
                                  student334Languagesfemale77100339
                                  student335Mathematicsmale38537718
                                  student336Languagesfemale18132610
                                  student337Mathematicsmale90478770
                                  student338Languagesfemale38493674
                                  student339Mathematicsmale100641372
                                  student340Languagesfemale74254152
                                  student341Mathematicsmale37131613
                                  student342Languagesfemale24341583
                                  student343Mathematicsmale2056728
                                  student344Languagesfemale4522572
                                  student345Mathematicsmale19117535
                                  student346Languagesfemale6583115
                                  student347Mathematicsmale16663611
                                  student348Languagesfemale1239540
                                  student349Mathematicsmale752742
                                  student350Languagesfemale88926055
                                  student351Mathematicsmale92709145
                                  student352Languagesfemale74765944
                                  student353Mathematicsmale63696094
                                  student354Languagesfemale3685548
                                  student355Mathematicsmale39962148
                                  student356Languagesfemale4134275
                                  student357Mathematicsmale6434733
                                  student358Languagesfemale95146355
                                  student359Mathematicsmale701001382
                                  student360Languagesfemale522410021
                                  student361Mathematicsmale040869
                                  student362Languagesfemale024932
                                  student363Mathematicsmale23108694
                                  student364Languagesfemale1538649
                                  student365Mathematicsmale7623310
                                  student366Languagesfemale35357894
                                  student367Mathematicsmale294243100
                                  student368Languagesfemale668510
                                  student369Mathematicsmale74155683
                                  student370Languagesfemale7543908
                                  student371Mathematicsmale4060470
                                  student372Languagesfemale62421749
                                  student373Mathematicsmale31464454
                                  student374Languagesfemale30344787
                                  student375Mathematicsmale9694152
                                  student376Languagesfemale85432992
                                  student377Mathematicsmale7904025
                                  student378Languagesfemale36407285
                                  student379Mathematicsmale5368882
                                  student380Languagesfemale87783879
                                  student381Mathematicsmale89978338
                                  student382Languagesfemale21194910
                                  student383Mathematicsmale47126850
                                  student384Languagesfemale37124995
                                  student385Mathematicsmale8408851
                                  student386Languagesfemale89612748
                                  student387Mathematicsmale10478761
                                  student388Languagesfemale1692656
                                  student389Mathematicsmale57331347
                                  student390Languagesfemale90357775
                                  student391Mathematicsmale31474753
                                  student392Languagesfemale942412
                                  student393Mathematicsmale6119817
                                  student394Languagesfemale457577
                                  student395Mathematicsmale6729212
                                  student396Languagesfemale516456
                                  student397Mathematicsmale93147714
                                  student398Languagesfemale1893427
                                  student399Mathematicsmale93775791
                                  student400Languagesfemale67778032
                                  student401Mathematicsmale5889417
                                  student402Languagesfemale3056053
                                  student403Mathematicsmale28253259
                                  student404Languagesfemale62348164
                                  student405Mathematicsmale29842623
                                  student406Languagesfemale7086377
                                  student407Mathematicsmale8654799
                                  student408Languagesfemale9381089
                                  student409Mathematicsmale84214658
                                  student410Languagesfemale21841849
                                  student411Mathematicsmale2796340
                                  student412Languagesfemale9301991
                                  student413Mathematicsmale31928743
                                  student414Languagesfemale53259843
                                  student415Mathematicsmale36758089
                                  student416Languagesfemale37681254
                                  student417Mathematicsmale25891253
                                  student418Languagesfemale922846
                                  student419Mathematicsmale11286058
                                  student420Languagesfemale1373517
                                  student421Mathematicsmale67303885
                                  student422Languagesfemale68793441
                                  student423Mathematicsmale72459341
                                  student424Languagesfemale56464538
                                  student425Mathematicsmale8621840
                                  student426Languagesfemale99854119
                                  student427Mathematicsmale7135389
                                  student428Languagesfemale22911216
                                  student429Mathematicsmale1532693
                                  student430Languagesfemale35463474
                                  student431Mathematicsmale33839720
                                  student432Languagesfemale9920326
                                  student433Mathematicsmale48428318
                                  student434Languagesfemale4442530
                                  student435Mathematicsmale78486045
                                  student436Languagesfemale4757890
                                  student437Mathematicsmale881210053
                                  student438Languagesfemale4805160
                                  student439Mathematicsmale70898516
                                  student440Languagesfemale71943433
                                  student441Mathematicsmale68137218
                                  student442Languagesfemale7539721
                                  student443Mathematicsmale65366087
                                  student444Languagesfemale43212434
                                  student445Mathematicsmale85776528
                                  student446Languagesfemale61907891
                                  student447Mathematicsmale9207812
                                  student448Languagesfemale33306290
                                  student449Mathematicsmale8616745
                                  student450Languagesfemale100862423
                                  student451Mathematicsmale1425645
                                  student452Languagesfemale86399888
                                  student453Mathematicsmale72687719
                                  student454Languagesfemale94523100
                                  student455Mathematicsmale34678979
                                  student456Languagesfemale9204745
                                  student457Mathematicsmale64582698
                                  student458Languagesfemale439359100
                                  student459Mathematicsmale82359781
                                  student460Languagesfemale183524100
                                  student461Mathematicsmale79804351
                                  student462Languagesfemale56101767
                                  student463Mathematicsmale36441485
                                  student464Languagesfemale2640692
                                  student465Mathematicsmale59934378
                                  student466Languagesfemale7884883
                                  student467Mathematicsmale41378060
                                  student468Languagesfemale44279777
                                  student469Mathematicsmale29196482
                                  student470Languagesfemale50962746
                                  student471Mathematicsmale49155145
                                  student472Languagesfemale38353178
                                  student473Mathematicsmale1802365
                                  student474Languagesfemale91172376
                                  student475Mathematicsmale57393563
                                  student476Languagesfemale33736214
                                  student477Mathematicsmale96168840
                                  student478Languagesfemale30631613
                                  student479Mathematicsmale74393787
                                  student480Languagesfemale26369479
                                  student481Mathematicsmale19586512
                                  student482Languagesfemale73362248
                                  student483Mathematicsmale7894757
                                  student484Languagesfemale5951935
                                  student485Mathematicsmale677110085
                                  student486Languagesfemale33301546
                                  student487Mathematicsmale12191637
                                  student488Languagesfemale80982914
                                  student489Mathematicsmale70511431
                                  student490Languagesfemale95381592
                                  student491Mathematicsmale60317412
                                  student492Languagesfemale62569068
                                  student493Mathematicsmale63112991
                                  student494Languagesfemale4112520
                                  student495Mathematicsmale6053144
                                  student496Languagesfemale1135528
                                  student497Mathematicsmale11964237
                                  student498Languagesfemale16727974
                                  student499Mathematicsmale9212266
                                  student500Languagesfemale34226434
                                  student501Mathematicsmale50938661
                                  student502Languagesfemale50224044
                                  student503Mathematicsmale383917
                                  student504Languagesfemale98169355
                                  student505Mathematicsmale86893628
                                  student506Languagesfemale16531350
                                  student507Mathematicsmale5757338
                                  student508Languagesfemale34796977
                                  student509Mathematicsmale241659
                                  student510Languagesfemale606299100
                                  student511Mathematicsmale65525295
                                  student512Languagesfemale5873941
                                  student513Mathematicsmale39752876
                                  student514Languagesfemale4666478
                                  student515Mathematicsmale5160998
                                  student516Languagesfemale17201297
                                  student517Mathematicsmale72179673
                                  student518Languagesfemale92216227
                                  student519Mathematicsmale5042433
                                  student520Languagesfemale5237157
                                  student521Mathematicsmale58403554
                                  student522Languagesfemale9385753
                                  student523Mathematicsmale79201818
                                  student524Languagesfemale149427
                                  student525Mathematicsmale95412998
                                  student526Languagesfemale3459921
                                  student527Mathematicsmale39664129
                                  student528Languagesfemale328125
                                  student529Mathematicsmale33443785
                                  student530Languagesfemale69255979
                                  student531Mathematicsmale13504952
                                  student532Languagesfemale54834531
                                  student533Mathematicsmale15249751
                                  student534Languagesfemale7516963
                                  student535Mathematicsmale9183856
                                  student536Languagesfemale50137480
                                  student537Mathematicsmale54757410
                                  student538Languagesfemale76397046
                                  student539Mathematicsmale84723940
                                  student540Languagesfemale10047214
                                  student541Mathematicsmale426111
                                  student542Languagesfemale57716561
                                  student543Mathematicsmale7854134
                                  student544Languagesfemale14763647
                                  student545Mathematicsmale15196396
                                  student546Languagesfemale27823356
                                  student547Mathematicsmale70239690
                                  student548Languagesfemale612278
                                  student549Mathematicsmale22376436
                                  student550Languagesfemale75969440
                                  student551Mathematicsmale4382921
                                  student552Languagesfemale7968718
                                  student553Mathematicsmale65765244
                                  student554Languagesfemale41627354
                                  student555Mathematicsmale25982140
                                  student556Languagesfemale17709682
                                  student557Mathematicsmale43912743
                                  student558Languagesfemale33372433
                                  student559Mathematicsmale87871031
                                  student560Languagesfemale48409774
                                  student561Mathematicsmale63759155
                                  student562Languagesfemale66825995
                                  student563Mathematicsmale21955838
                                  student564Languagesfemale9299745
                                  student565Mathematicsmale5979420
                                  student566Languagesfemale64952412
                                  student567Mathematicsmale70463674
                                  student568Languagesfemale16259149
                                  student569Mathematicsmale73332488
                                  student570Languagesfemale9619527
                                  student571Mathematicsmale18127646
                                  student572Languagesfemale61714963
                                  student573Mathematicsmale46328517
                                  student574Languagesfemale42421137
                                  student575Mathematicsmale49764120
                                  student576Languagesfemale22278012
                                  student577Mathematicsmale76341866
                                  student578Languagesfemale96772917
                                  student579Mathematicsmale62516772
                                  student580Languagesfemale96672254
                                  student581Mathematicsmale77112388
                                  student582Languagesfemale6282433
                                  student583Mathematicsmale392312100
                                  student584Languagesfemale10212071
                                  student585Mathematicsmale11277100
                                  student586Languagesfemale40349778
                                  student587Mathematicsmale2518319
                                  student588Languagesfemale18763025
                                  student589Mathematicsmale24574681
                                  student590Languagesfemale2103194
                                  student591Mathematicsmale91847513
                                  student592Languagesfemale79449710
                                  student593Mathematicsmale42606730
                                  student594Languagesfemale61577535
                                  student595Mathematicsmale42468171
                                  student596Languagesfemale92637574
                                  student597Mathematicsmale86374051
                                  student598Languagesfemale5210473
                                  student599Mathematicsmale100281476
                                  student600Languagesfemale31762043
                                  student601Mathematicsmale402766
                                  student602Languagesfemale587921
                                  student603Mathematicsmale754691
                                  student604Languagesfemale2830153
                                  student605Mathematicsmale38939892
                                  student606Languagesfemale43968991
                                  student607Mathematicsmale43491483
                                  student608Languagesfemale50617298
                                  student609Mathematicsmale4499983
                                  student610Languagesfemale5367382
                                  student611Mathematicsmale40849954
                                  student612Languagesfemale29966569
                                  student613Mathematicsmale1276599
                                  student614Languagesfemale4783494
                                  student615Mathematicsmale3727224
                                  student616Languagesfemale94394924
                                  student617Mathematicsmale0752141
                                  student618Languagesfemale5936418
                                  student619Mathematicsmale2266133
                                  student620Languagesfemale4387448
                                  student621Mathematicsmale100155152
                                  student622Languagesfemale63719917
                                  student623Mathematicsmale143444100
                                  student624Languagesfemale2385727
                                  student625Mathematicsmale23143240
                                  student626Languagesfemale34497254
                                  student627Mathematicsmale21168126
                                  student628Languagesfemale54693434
                                  student629Mathematicsmale72116331
                                  student630Languagesfemale8798947
                                  student631Mathematicsmale43525358
                                  student632Languagesfemale5014420
                                  student633Mathematicsmale89836787
                                  student634Languagesfemale079916
                                  student635Mathematicsmale59178458
                                  student636Languagesfemale94953660
                                  student637Mathematicsmale39426346
                                  student638Languagesfemale019610
                                  student639Mathematicsmale50164171
                                  student640Languagesfemale8604613
                                  student641Mathematicsmale45855936
                                  student642Languagesfemale8335057
                                  student643Mathematicsmale8306014
                                  student644Languagesfemale76807338
                                  student645Mathematicsmale2614582
                                  student646Languagesfemale9316422
                                  student647Mathematicsmale85947616
                                  student648Languagesfemale57453216
                                  student649Mathematicsmale16169013
                                  student650Languagesfemale4331887
                                  student651Mathematicsmale16243244
                                  student652Languagesfemale5998334
                                  student653Mathematicsmale73184783
                                  student654Languagesfemale992510093
                                  student655Mathematicsmale0739784
                                  student656Languagesfemale0289475
                                  student657Mathematicsmale65905863
                                  student658Languagesfemale84358641
                                  student659Mathematicsmale4539599
                                  student660Languagesfemale32103162
                                  student661Mathematicsmale61285461
                                  student662Languagesfemale70961454
                                  student663Mathematicsmale6392298
                                  student664Languagesfemale41104623
                                  student665Mathematicsmale81918021
                                  student666Languagesfemale79716568
                                  student667Mathematicsmale47691890
                                  student668Languagesfemale2616700
                                  student669Mathematicsmale66109335
                                  student670Languagesfemale66682713
                                  student671Mathematicsmale86792645
                                  student672Languagesfemale50532574
                                  student673Mathematicsmale9753914
                                  student674Languagesfemale28796942
                                  student675Mathematicsmale607259
                                  student676Languagesfemale53213943
                                  student677Mathematicsmale37654591
                                  student678Languagesfemale76806027
                                  student679Mathematicsmale85273455
                                  student680Languagesfemale66114117
                                  student681Mathematicsmale27618982
                                  student682Languagesfemale402613
                                  student683Mathematicsmale2516695
                                  student684Languagesfemale63448563
                                  student685Mathematicsmale97957883
                                  student686Languagesfemale5121387
                                  student687Mathematicsmale63928723
                                  student688Languagesfemale22965959
                                  student689Mathematicsmale33801523
                                  student690Languagesfemale34751924
                                  student691Mathematicsmale36684854
                                  student692Languagesfemale32362012
                                  student693Mathematicsmale68917450
                                  student694Languagesfemale87919637
                                  student695Mathematicsmale239144
                                  student696Languagesfemale9462977
                                  student697Mathematicsmale1474575
                                  student698Languagesfemale73921990
                                  student699Mathematicsmale8207978
                                  student700Languagesfemale763510039
                                  student701Mathematicsmale27518949
                                  student702Languagesfemale0647237
                                  student703Mathematicsmale93469487
                                  student704Languagesfemale6922172
                                  student705Mathematicsmale1752113
                                  student706Languagesfemale1325219
                                  student707Mathematicsmale75617273
                                  student708Languagesfemale8437736
                                  student709Mathematicsmale81194514
                                  student710Languagesfemale62173927
                                  student711Mathematicsmale8869681
                                  student712Languagesfemale53825929
                                  student713Mathematicsmale83347134
                                  student714Languagesfemale9552614
                                  student715Mathematicsmale6715313
                                  student716Languagesfemale8297825
                                  student717Mathematicsmale65503146
                                  student718Languagesfemale27462537
                                  student719Mathematicsmale98423544
                                  student720Languagesfemale9014444
                                  student721Mathematicsmale3168293
                                  student722Languagesfemale3434370
                                  student723Mathematicsmale59771421
                                  student724Languagesfemale16535759
                                  student725Mathematicsmale7914416
                                  student726Languagesfemale108199
                                  student727Mathematicsmale89487916
                                  student728Languagesfemale8872387
                                  student729Mathematicsmale17539584
                                  student730Languagesfemale65523961
                                  student731Mathematicsmale44309672
                                  student732Languagesfemale70793233
                                  student733Mathematicsmale30474611
                                  student734Languagesfemale761001649
                                  student735Mathematicsmale39369089
                                  student736Languagesfemale1941929
                                  student737Mathematicsmale23737887
                                  student738Languagesfemale87714464
                                  student739Mathematicsmale22198220
                                  student740Languagesfemale94526739
                                  student741Mathematicsmale14175187
                                  student742Languagesfemale5663983
                                  student743Mathematicsmale99924698
                                  student744Languagesfemale19768388
                                  student745Mathematicsmale15776881
                                  student746Languagesfemale48814838
                                  student747Mathematicsmale2913861
                                  student748Languagesfemale7163030
                                  student749Mathematicsmale19683053
                                  student750Languagesfemale91182762
                                  student751Mathematicsmale73333836
                                  student752Languagesfemale99387550
                                  student753Mathematicsmale55713490
                                  student754Languagesfemale52409883
                                  student755Mathematicsmale1463611
                                  student756Languagesfemale1319496
                                  student757Mathematicsmale49665592
                                  student758Languagesfemale0198082
                                  student759Mathematicsmale2635873
                                  student760Languagesfemale8287639
                                  student761Mathematicsmale52118357
                                  student762Languagesfemale83688425
                                  student763Mathematicsmale1725670
                                  student764Languagesfemale1758084
                                  student765Mathematicsmale7564785
                                  student766Languagesfemale76329339
                                  student767Mathematicsmale20758465
                                  student768Languagesfemale25471289
                                  student769Mathematicsmale86947945
                                  student770Languagesfemale65815535
                                  student771Mathematicsmale62414143
                                  student772Languagesfemale1446243
                                  student773Mathematicsmale17557278
                                  student774Languagesfemale9546356
                                  student775Mathematicsmale7205648
                                  student776Languagesfemale30881956
                                  student777Mathematicsmale42448856
                                  student778Languagesfemale42695663
                                  student779Mathematicsmale7857783
                                  student780Languagesfemale15862498
                                  student781Mathematicsmale4684369
                                  student782Languagesfemale67981552
                                  student783Mathematicsmale33326357
                                  student784Languagesfemale35951653
                                  student785Mathematicsmale78545482
                                  student786Languagesfemale8185914
                                  student787Mathematicsmale42412314
                                  student788Languagesfemale591008636
                                  student789Mathematicsmale1926012
                                  student790Languagesfemale10034570
                                  student791Mathematicsmale381217
                                  student792Languagesfemale3155193
                                  student793Mathematicsmale11339877
                                  student794Languagesfemale461786
                                  student795Mathematicsmale5786727
                                  student796Languagesfemale5746236
                                  student797Mathematicsmale57676661
                                  student798Languagesfemale93888725
                                  student799Mathematicsmale59966441
                                  student800Languagesfemale6276923
                                  student801Mathematicsmale35833255
                                  student802Languagesfemale42581583
                                  student803Mathematicsmale41904012
                                  student804Languagesfemale8143837
                                  student805Mathematicsmale87773320
                                  student806Languagesfemale53873037
                                  student807Mathematicsmale13358516
                                  student808Languagesfemale20829034
                                  student809Mathematicsmale5821614
                                  student810Languagesfemale14282356
                                  student811Mathematicsmale4997368
                                  student812Languagesfemale31461163
                                  student813Mathematicsmale7497643
                                  student814Languagesfemale42839575
                                  student815Mathematicsmale2654529
                                  student816Languagesfemale79596988
                                  student817Mathematicsmale68182684
                                  student818Languagesfemale39139915
                                  student819Mathematicsmale2248716
                                  student820Languagesfemale12538811
                                  student821Mathematicsmale33908029
                                  student822Languagesfemale3795486
                                  student823Mathematicsmale9178851
                                  student824Languagesfemale31586731
                                  student825Mathematicsmale22305098
                                  student826Languagesfemale55585610
                                  student827Mathematicsmale56765753
                                  student828Languagesfemale1129881
                                  student829Mathematicsmale67926671
                                  student830Languagesfemale30614449
                                  student831Mathematicsmale0414461
                                  student832Languagesfemale72524585
                                  student833Mathematicsmale60991294
                                  student834Languagesfemale83587542
                                  student835Mathematicsmale9505377
                                  student836Languagesfemale33287062
                                  student837Mathematicsmale3982755
                                  student838Languagesfemale411004547
                                  student839Mathematicsmale81692729
                                  student840Languagesfemale9012649
                                  student841Mathematicsmale45382034
                                  student842Languagesfemale325311
                                  student843Mathematicsmale55778649
                                  student844Languagesfemale61609176
                                  student845Mathematicsmale8085749
                                  student846Languagesfemale63897371
                                  student847Mathematicsmale79159742
                                  student848Languagesfemale99187343
                                  student849Mathematicsmale30523856
                                  student850Languagesfemale65866734
                                  student851Mathematicsmale7343655
                                  student852Languagesfemale42435173
                                  student853Mathematicsmale870980
                                  student854Languagesfemale29411245
                                  student855Mathematicsmale5739090
                                  student856Languagesfemale80529654
                                  student857Mathematicsmale43838246
                                  student858Languagesfemale7917131
                                  student859Mathematicsmale6813707
                                  student860Languagesfemale51441552
                                  student861Mathematicsmale9170178
                                  student862Languagesfemale4116578
                                  student863Mathematicsmale20635585
                                  student864Languagesfemale5938726
                                  student865Mathematicsmale4894432
                                  student866Languagesfemale26679839
                                  student867Mathematicsmale48793866
                                  student868Languagesfemale1632153
                                  student869Mathematicsmale13205085
                                  student870Languagesfemale4922039
                                  student871Mathematicsmale8262353
                                  student872Languagesfemale6607464
                                  student873Mathematicsmale66483914
                                  student874Languagesfemale43833100
                                  student875Mathematicsmale214990
                                  student876Languagesfemale79807180
                                  student877Mathematicsmale84252688
                                  student878Languagesfemale38466660
                                  student879Mathematicsmale35279851
                                  student880Languagesfemale5759267
                                  student881Mathematicsmale7687788
                                  student882Languagesfemale2140817
                                  student883Mathematicsmale5046866
                                  student884Languagesfemale83863092
                                  student885Mathematicsmale63466694
                                  student886Languagesfemale7671262
                                  student887Mathematicsmale7418686
                                  student888Languagesfemale65774488
                                  student889Mathematicsmale67326119
                                  student890Languagesfemale85968541
                                  student891Mathematicsmale1487705
                                  student892Languagesfemale81284528
                                  student893Mathematicsmale9191883
                                  student894Languagesfemale407024
                                  student895Mathematicsmale18195189
                                  student896Languagesfemale70352512
                                  student897Mathematicsmale7290741
                                  student898Languagesfemale8417186
                                  student899Mathematicsmale1423886
                                  student900Languagesfemale7837601
                                  student901Mathematicsmale66953168
                                  student902Languagesfemale23608065
                                  student903Mathematicsmale76896396
                                  student904Languagesfemale3469070
                                  student905Mathematicsmale65449679
                                  student906Languagesfemale6877865
                                  student907Mathematicsmale86619943
                                  student908Languagesfemale88953213
                                  student909Mathematicsmale531005982
                                  student910Languagesfemale3579535
                                  student911Mathematicsmale230177
                                  student912Languagesfemale9687263
                                  student913Mathematicsmale23923996
                                  student914Languagesfemale9497658
                                  student915Mathematicsmale49312971
                                  student916Languagesfemale21577957
                                  student917Mathematicsmale03510089
                                  student918Languagesfemale64827552
                                  student919Mathematicsmale16666968
                                  student920Languagesfemale92951127
                                  student921Mathematicsmale16888590
                                  student922Languagesfemale56152698
                                  student923Mathematicsmale78274017
                                  student924Languagesfemale95104432
                                  student925Mathematicsmale99855218
                                  student926Languagesfemale73317149
                                  student927Mathematicsmale21791063
                                  student928Languagesfemale92718012
                                  student929Mathematicsmale23293388
                                  student930Languagesfemale4189884
                                  student931Mathematicsmale97177921
                                  student932Languagesfemale72409392
                                  student933Mathematicsmale7558326
                                  student934Languagesfemale15982728
                                  student935Mathematicsmale7688806
                                  student936Languagesfemale84234292
                                  student937Mathematicsmale71568671
                                  student938Languagesfemale7395822
                                  student939Mathematicsmale1555460
                                  student940Languagesfemale2031308
                                  student941Mathematicsmale97544181
                                  student942Languagesfemale83418664
                                  student943Mathematicsmale7195327
                                  student944Languagesfemale0273091
                                  student945Mathematicsmale99751722
                                  student946Languagesfemale92531090
                                  student947Mathematicsmale4449432
                                  student948Languagesfemale0974879
                                  student949Mathematicsmale97557974
                                  student950Languagesfemale6598932
                                  student951Mathematicsmale56733881
                                  student952Languagesfemale84946150
                                  student953Mathematicsmale4820770
                                  student954Languagesfemale39981420
                                  student955Mathematicsmale4152465
                                  student956Languagesfemale78229231
                                  student957Mathematicsmale28382654
                                  student958Languagesfemale49613554
                                  student959Mathematicsmale81152817
                                  student960Languagesfemale5480582
                                  student961Mathematicsmale7523537
                                  student962Languagesfemale5565120
                                  student963Mathematicsmale86427036
                                  student964Languagesfemale54455480
                                  student965Mathematicsmale38186992
                                  student966Languagesfemale33894683
                                  student967Mathematicsmale4395576
                                  student968Languagesfemale13261286
                                  student969Mathematicsmale94228559
                                  student970Languagesfemale9358610
                                  student971Mathematicsmale35728536
                                  student972Languagesfemale37519693
                                  student973Mathematicsmale71107959
                                  student974Languagesfemale71317393
                                  student975Mathematicsmale80268697
                                  student976Languagesfemale69216769
                                  student977Mathematicsmale38861039
                                  student978Languagesfemale48903981
                                  student979Mathematicsmale9083342
                                  student980Languagesfemale1919184
                                  student981Mathematicsmale98255046
                                  student982Languagesfemale38882116
                                  student983Mathematicsmale71481843
                                  student984Languagesfemale79851816
                                  student985Mathematicsmale51669068
                                  student986Languagesfemale100956591
                                  student987Mathematicsmale6742424
                                  student988Languagesfemale93809435
                                  student989Mathematicsmale65785794
                                  student990Languagesfemale27922191
                                  student991Mathematicsmale77152676
                                  student992Languagesfemale28845167
                                  student993Mathematicsmale3786250
                                  student994Languagesfemale59772074
                                  student995Mathematicsmale6266875
                                  student996Languagesfemale88703343
                                  student997Mathematicsmale73334253
                                  student998Languagesfemale6410231
                                  student999Mathematicsmale91931635
                                  student1000Mathematicsmale8277079
                                  + +

                                  Javascript

                                  +
                                  +
                                  
                                  +	
                                  +

                                  HTML

                                  +
                                  +
                                  <table class="tablesorter">
                                  +	<thead>
                                  +		<tr><th>Name</th><th>Major</th><th>Sex</th><th>English</th><th>Japanese</th><th>Calculus</th><th>Geometry</th></tr>
                                  +	</thead>
                                  +	<tfoot>
                                  +		<tr><th>Name</th><th>Major</th><th>Sex</th><th>English</th><th>Japanese</th><th>Calculus</th><th>Geometry</th></tr>
                                  +		<tr>
                                  +			<td colspan="7">
                                  +				<div class="pager">
                                  +					<nav class="left">
                                  +						# per page:
                                  +						<a href="#" class="current">10</a> |
                                  +						<a href="#">25</a> |
                                  +						<a href="#">50</a> |
                                  +						<a href="#">100</a>
                                  +					</nav>
                                  +					<nav class="right">
                                  +						<span class="prev">
                                  +							<img src="icons/prev.png" /> Prev&nbsp;
                                  +						</span>
                                  +						<span class="pagecount"></span>
                                  +						&nbsp;<span class="next">Next
                                  +							<img src="icons/next.png" />
                                  +						</span>
                                  +					</nav>
                                  +				</div>
                                  +			</td>
                                  +		</tr>
                                  +	</tfoot>
                                  +	<tbody>
                                  +		<tr><td>Student01</td><td>Languages</td><td>male</td><td>80</td><td>70</td><td>75</td><td>80</td></tr>
                                  +		<tr><td>Student02</td><td>Mathematics</td><td>male</td><td>90</td><td>88</td><td>100</td><td>90</td></tr>
                                  +		<tr><td>Student03</td><td>Languages</td><td>female</td><td>85</td><td>95</td><td>80</td><td>85</td></tr>
                                  +		<tr><td>Student04</td><td>Languages</td><td>male</td><td>60</td><td>55</td><td>100</td><td>100</td></tr>
                                  +		<tr><td>Student05</td><td>Languages</td><td>female</td><td>68</td><td>80</td><td>95</td><td>80</td></tr>
                                  +		<tr><td>Student06</td><td>Mathematics</td><td>male</td><td>100</td><td>99</td><td>100</td><td>90</td></tr>
                                  +		<tr><td>Student07</td><td>Mathematics</td><td>male</td><td>85</td><td>68</td><td>90</td><td>90</td></tr>
                                  +		<tr><td>Student08</td><td>Languages</td><td>male</td><td>100</td><td>90</td><td>90</td><td>85</td></tr>
                                  +		<tr><td>Student09</td><td>Mathematics</td><td>male</td><td>80</td><td>50</td><td>65</td><td>75</td></tr>
                                  +		<tr><td>Student10</td><td>Languages</td><td>male</td><td>85</td><td>100</td><td>100</td><td>90</td></tr>
                                  +		<!-- ... -->
                                  +		<tr><td>student999</td><td>Mathematics</td><td>male</td><td>91</td><td>93</td><td>16</td><td>35</td></tr>
                                  +	</tbody>
                                  +</table>
                                  +
                                  + +
                                  + + + + diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html new file mode 100644 index 000000000..981ea21ac --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html @@ -0,0 +1,192 @@ + + + + + jQuery plugin: Tablesorter 2.0 - Column reorder Widget + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  + +

                                  + NOTE! +

                                    +
                                  • Column reorder - beta testing.
                                  • +
                                  • Does not yet work properly with sticky headers - reorder second table while top table sticky header is active, then scroll...
                                  • +
                                  +

                                  + +

                                  Javascript

                                  +
                                  +
                                  
                                  +	
                                  + +

                                  CSS

                                  +
                                  +
                                  
                                  +	
                                  + +

                                  Demo

                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  Student Grades
                                  Name (0)Major (1)Sex (2)English (3)Japanese (4)Calculus (5)Geometry (6)
                                  NameMajorSexEnglishJapaneseCalculusGeometry
                                  Student01 (0)Languages (1)male (2)80 (3)70 (4)75 (5)80 (6)
                                  Student02Mathematicsmale908810090
                                  Student03Languagesfemale85958085
                                  Student04Languagesmale6055100100
                                  Student05Languagesfemale68809580
                                  Student06Mathematicsmale1009910090
                                  Student07Mathematicsmale85689090
                                  Student08Languagesmale100909085
                                  Student09Mathematicsmale80506575
                                  Student10Languagesmale8510010090
                                  Student11Languagesmale8685100100
                                  Student12Mathematicsfemale100757085
                                  Student13Languagesfemale1008010090
                                  Student14Languagesfemale50455590
                                  Student15Languagesmale953510090
                                  Student16Languagesfemale100503070
                                  Student17Languagesfemale801005565
                                  Student18Mathematicsmale30495575
                                  Student19Languagesmale68908870
                                  Student20Mathematicsmale40454080
                                  Student21Languagesmale5045100100
                                  Student22Mathematicsmale1009910090
                                  Student23Languagesfemale85808080
                                  + +
                                  + + + + + + + + + + + + + + + + + + + + + +
                                  Account #First NameLast NameAgeTotalDiscountDiff
                                  A43PeterParker289.9920.3%+3
                                  A255JohnHood3319.9925.1%-7
                                  A33ClarkKent1815.4944.2%-13
                                  A11BruceAlmighty45153.1944%+19
                                  A102BruceEvans56153.1923%+9
                                  A23MikePeters225.6920.3%+2
                                  A55LeslieKent3315.9925.1%-3
                                  A3FrankMint4412.5944.2%-12
                                  A21JoeThomas4515.2544%+12
                                  A12TessEvans6613.5923%+4
                                  A21PeterDunn122.9921.1%+2
                                  A33HarryJones1319.4922.2%-6
                                  A13JohnJames1613.8942.1%-13
                                  A71NickParker4513.8944%+29
                                  A21CharlesDunn1915.4922%+3
                                  +
                                  + +
                                  + + +
                                  + + + + diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js new file mode 100644 index 000000000..07d6beb43 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js @@ -0,0 +1,102 @@ +/*! + * custom pager controls (beta) for TableSorter 9/15/2014 (v2.17.8) - updated 3/26/2015 (v2.21.3) + initialize custom pager script BEFORE initializing tablesorter/tablesorter pager + custom pager looks like this: + 1 | 2 … 5 | 6 | 7 … 99 | 100 + _ _ _ _ adjacentSpacer + _ _ distanceSpacer + _____ ________ ends (2 default) + _________ aroundCurrent (1 default) + + */ +/*jshint browser:true, jquery:true, unused:false, loopfunc:true */ +/*global jQuery: false */ + +;(function($){ +"use strict"; + +$.tablesorter = $.tablesorter || {}; + +$.tablesorter.customPagerControls = function(settings) { + var defaults = { + table : 'table', + pager : '.pager', + pageSize : '.left a', + currentPage : '.right a', + ends : 2, // number of pages to show of either end + aroundCurrent : 1, // number of pages surrounding the current page + link : '{page}', // page element; use {page} to include the page number + currentClass : 'current', // current page class name + adjacentSpacer : ' | ', // spacer for page numbers next to each other + distanceSpacer : ' … ', // spacer for page numbers away from each other (ellipsis) + addKeyboard : true // add left/right keyboard arrows to change current page + }, + options = $.extend({}, defaults, settings), + $table = $(options.table), + $pager = $(options.pager); + + $table + .on('pagerInitialized pagerComplete', function (e, c) { + var indx, + p = c.pager ? c.pager : c, // using widget + pages = $('
                                  '), + pageArray = [], + cur = p.page + 1, + start = cur > 1 ? (p.filteredPages - cur < options.aroundCurrent ? -(options.aroundCurrent + 1) + (p.filteredPages - cur) : -options.aroundCurrent) : 0, + end = cur < options.aroundCurrent + 1 ? options.aroundCurrent + 3 - cur : options.aroundCurrent + 1; + for (indx = start; indx < end; indx++) { + if (cur + indx >= 1 && cur + indx < p.filteredPages) { pageArray.push( cur + indx ); } + } + if (pageArray.length) { + // include first and last pages (ends) in the pagination + for (indx = 0; indx < options.ends; indx++){ + if ($.inArray(indx + 1, pageArray) === -1) { pageArray.push(indx + 1); } + if ($.inArray(p.filteredPages - indx, pageArray) === -1) { pageArray.push(p.filteredPages - indx); } + } + // sort the list + pageArray = pageArray.sort(function(a, b){ return a - b; }); + // make links and spacers + $.each(pageArray, function(indx, value){ + pages + .append( $(options.link.replace(/\{page\}/g, value)).toggleClass(options.currentClass, value === cur).attr('data-page', value) ) + .append( '' + (indx < pageArray.length - 1 && ( pageArray[ indx + 1 ] - 1 !== value ) ? options.distanceSpacer : + ( indx >= pageArray.length - 1 ? '' : options.adjacentSpacer )) + '' ); + }); + } + $pager.find('.pagecount').html(pages.html()); + }); + + // set up pager controls + $pager.find(options.pageSize).on('click', function () { + $(this) + .addClass(options.currentClass) + .siblings() + .removeClass(options.currentClass); + $table.trigger('pageSize', $(this).html()); + return false; + }).end() + .on('click', options.currentPage, function(){ + $(this) + .addClass(options.currentClass) + .siblings() + .removeClass(options.currentClass); + $table.trigger('pageSet', $(this).attr('data-page')); + return false; + }); + + // make right/left arrow keys work + if (options.addKeyboard) { + $(document).on('keydown', function(events){ + // ignore arrows inside form elements + if (/input|select|textarea/i.test(events.target.nodeName)) { return; } + if (events.which === 37) { + // left + $pager.find(options.currentPage).filter('.' + options.currentClass).prevAll(':not(span):first').click(); + } else if (events.which === 39) { + // right + $pager.find(options.currentPage).filter('.' + options.currentClass).nextAll(':not(span):first').click(); + } + }); + } +}; +})(jQuery); \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js new file mode 100644 index 000000000..1a7733fec --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js @@ -0,0 +1,182 @@ +/*! tablesorter column reorder - beta testing +* Requires tablesorter v2.8+ and jQuery 1.7+ +* by Rob Garrison +*/ +/*jshint browser:true, jquery:true, unused:false */ +/*global jQuery: false */ +;(function($){ + "use strict"; + +$.tablesorter.addWidget({ + id: 'reorder', + priority: 70, + options : { + reorder_axis : 'xy', // x or xy + reorder_delay : 300, + reorder_helperClass : 'tablesorter-reorder-helper', + reorder_helperBar : 'tablesorter-reorder-helper-bar', + reorder_noReorder : 'reorder-false', + reorder_blocked : 'reorder-block-left reorder-block-end', + reorder_complete : null // callback + }, + init: function(table, thisWidget, c, wo) { + var i, timer, $helper, $bar, clickOffset, + lastIndx = -1, + ts = $.tablesorter, + endIndex = -1, + startIndex = -1, + t = wo.reorder_blocked.split(' '), + noReorderLeft = t[0] || 'reorder-block-left', + noReorderLast = t[1] || 'reorder-block-end', + lastOffset = c.$headers.not('.' + noReorderLeft).first(), + offsets = c.$headers.map(function(i){ + var s, $t = $(this); + if ($t.hasClass(noReorderLeft)) { + s = lastOffset; + $t = s; + //lastOffset = $t; + } + lastOffset = $t; + return $t.offset().left; + }).get(), + len = offsets.length, + startReorder = function(e, $th){ + var p = $th.position(), + r = $th.parent().position(), + i = startIndex = $th.index(); + clickOffset = [ e.pageX - p.left, e.pageY - r.top ]; + $helper = c.$table.clone(); + $helper.find('> thead > tr:first').children('[data-column!=' + i + ']').remove(); + $helper.find('thead tr:gt(0), caption, colgroup, tbody, tfoot').remove(); + $helper + .css({ + position: 'absolute', + zIndex : 1, + left: p.left - clickOffset[0], + top: r.top - clickOffset[1], + width: $th.outerWidth() + }) + .appendTo('body') + .find('th, td').addClass(wo.reorder_helperClass); + $bar = $('
                                  ') + .css({ + position : 'absolute', + top : c.$table.find('thead').offset().top, + height : $th.closest('thead').outerHeight() + c.$table.find('tbody').height() + }) + .appendTo('body'); + positionBar(e); + lastIndx = endIndex; + }, + positionBar = function(e){ + for (i = 0; i <= len; i++) { + if ( i > 0 && e.pageX < offsets[i-1] + (offsets[i] - offsets[i-1])/2 && !c.$headers.eq(i).hasClass(noReorderLeft) ) { + endIndex = i - 1; + // endIndex = offsets.lastIndexOf( offsets[i-1] ); // lastIndexOf not supported by IE8 and older + if (endIndex >= 0 && lastIndx === endIndex) { return false; } + lastIndx = endIndex; + if (c.debug) { + console.log( endIndex === 0 ? 'target before column 0' : endIndex === len ? 'target after last column' : 'target between columns ' + startIndex + ' and ' + endIndex); + } + $bar.css('left', offsets[i-1]); + return false; + } + } + if (endIndex < 0) { + endIndex = len; + $bar.css('left', offsets[len]); + } + }, + finishReorder = function(){ + $helper.remove(); + $bar.remove(); + // finish reorder + var adj, s = startIndex, + rows = c.$table.find('tr'), + cols; + startIndex = -1; // stop mousemove updates + if ( s > -1 && endIndex > -1 && s != endIndex && s + 1 !== endIndex ) { + adj = endIndex !== 0; + if (c.debug) { + console.log( 'Inserting column ' + s + (adj ? ' after' : ' before') + ' column ' + (endIndex - adj ? 1 : 0) ); + } + rows.each(function() { + cols = $(this).children(); + cols.eq(s)[ adj ? 'insertAfter' : 'insertBefore' ]( cols.eq( endIndex - (adj ? 1 : 0) ) ); + }); + cols = []; + // stored header info needs to be modified too! + for (i = 0; i < len; i++) { + if (i === s) { continue; } + if (i === endIndex - (adj ? 1 : 0)) { + if (!adj) { cols.push(c.headerContent[s]); } + cols.push(c.headerContent[i]); + if (adj) { cols.push(c.headerContent[s]); } + } else { + cols.push(c.headerContent[i]); + } + } + c.headerContent = cols; + // cols = c.headerContent.splice(s, 1); + // c.headerContent.splice(endIndex - (adj ? 1 : 0), 0, cols); + c.$table.trigger('updateAll', [ true, wo.reorder_complete ]); + } + endIndex = -1; + }, + mdown = function(e, el){ + var $t = $(el), evt = e; + if ($t.hasClass(wo.reorder_noReorder)) { return; } + timer = setTimeout(function(){ + $t.addClass('tablesorter-reorder'); + startReorder(evt, $t); + }, wo.reorder_delay); + }; + + console.log( c.$headers.last().hasClass(noReorderLast) ); + + if ( c.$headers.last().hasClass(noReorderLast) ) { + offsets.push( offsets[ offsets.length - 1 ] ); + } else { + offsets.push( c.$table.offset().left + c.$table.outerWidth() ); + } + + c.$headers.not('.' + wo.reorder_noReorder).bind('mousedown.reorder', function(e){ + mdown(e, this); + }); + + $(document) + .bind('mousemove.reorder', function(e){ + if (startIndex !== -1){ + var c = { left : e.pageX - clickOffset[0] }; + endIndex = -1; + if (/y/.test(wo.reorder_axis)) { + c.top = e.pageY - clickOffset[1]; + } + $helper.css(c); + positionBar(e); + } + }) + .add( c.$headers ) + .bind('mouseup.reorder', function(){ + clearTimeout(timer); + if (startIndex !== -1 && endIndex !== -1){ + finishReorder(); + } else { + startIndex = -1; + } + }); + + // has sticky headers? + c.$table.bind('stickyHeadersInit', function(){ + wo.$sticky.find('thead').children().not('.' + wo.reorder_noReorder).bind('mousedown.reorder', function(e){ + mdown(e, this); + }); + }); + + } +}); + +// add mouse coordinates +$x = $('#main h1:last'); $(document).mousemove(function(e){ $x.html( e.pageX ); }); + +})(jQuery); \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/bower.json b/vendor/FHC-vendor/jquery-tablesorter/bower.json new file mode 100644 index 000000000..6862657f1 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/bower.json @@ -0,0 +1,28 @@ +{ + "name": "tablesorter", + "description": "tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.", + "dependencies": { + "jquery": ">=1.2.6" + }, + "main": [ + "dist/js/jquery.tablesorter.combined.js", + "dist/css/theme.blue.min.css" + ], + "ignore": [ + "/node_modules", + "/bower_components", + "/.git", + "/addons", + "/beta-testing", + "/css", + "/docs", + "/js", + "/testing", + "/Gruntfile.js", + "/package.json", + "/*.txt", + "/*.md", + "/*.html", + "/tablesorter.jquery.json" + ] +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/changelog.txt b/vendor/FHC-vendor/jquery-tablesorter/changelog.txt new file mode 100644 index 000000000..f8f1cf0e9 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/changelog.txt @@ -0,0 +1,2 @@ +Change log moved to the wiki documentation pages: +https://github.com/Mottie/tablesorter/wiki/Changes \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/bootstrap.less b/vendor/FHC-vendor/jquery-tablesorter/css/bootstrap.less new file mode 100644 index 000000000..1d712ca2f --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/bootstrap.less @@ -0,0 +1,322 @@ +/* Tablesorter Custom Bootstrap LESS Theme by Rob Garrison + +To create your own theme, modify the code below and run it through +a LESS compiler, like this one: http://leafo.net/lessphp/editor.html +or download less.js from http://lesscss.org/ + +Test out these custom less files live + Basic Theme : http://codepen.io/Mottie/pen/eqBbn + Bootstrap : http://codepen.io/Mottie/pen/Ltzpi + Metro Style : http://codepen.io/Mottie/pen/gCslk + +*/ + +/*** theme ***/ +@theme : tablesorter-bootstrap; + +/*** fonts ***/ +@tableHeaderFont : 14px bold Arial, Sans-serif; +@tableBodyFont : 14px "Helvetica Neue", Helvetica, Arial, sans-serif; + +/*** color definitions ***/ +/* for best results, only change the hue (240), + leave the saturation (60%) and luminosity (80%) alone + pick the color from here: http://hslpicker.com/#99E699 */ +@headerBackground : hsl(240, 60%, 80%); +@borderAndBackground : #cdcdcd; +@overallBorder : @borderAndBackground 1px solid; +@headerTextColor : #000; + +@bodyBackground : #fff; +@bodyTextColor : #000; + +@headerAsc : darken(spin(@headerBackground, 5), 10%); /* darken(@headerBackground, 10%); */ +@headerDesc : lighten(spin(@headerBackground, -5), 10%); /* desaturate(@headerAsc, 5%); */ + +@captionBackground : #fff; /* it might be best to match the document body background color here */ +@errorBackground : #e6bf99; /* ajax error message (added to thead) */ + +@filterCellBackground : #eee; +@filterElementTextColor: #333; +@filterElementBkgd : #fff; +@filterElementBorder : 1px solid #bbb; +@filterTransitionTime : 0.1s; +@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */ + +@overallPadding : 4px; +/* 20px should be slightly wider than the icon width to avoid overlap */ +@headerPadding : 4px 20px 4px 4px; +@headerMargin : 0 0 18px; + +/* url(icons/loading.gif); */ +@processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs='); + +/* zebra striping */ +.allRows { + background-color: @bodyBackground; + color: @bodyTextColor; +} +.evenRows { + background-color: lighten(@headerBackground, 35%); +} +.oddRows { + background-color: lighten(@headerBackground, 18%); +} + +/* hovered rows */ +.oddHovered { + background-color: desaturate(@headerBackground, 60%); +} +.evenHovered { + background-color: lighten( desaturate(@headerBackground, 60%), 10% ); +} + +/* Columns widget */ +@primaryOdd : spin(@headerBackground, 10); /* saturate( darken( desaturate(@headerBackground, 10%), 10% ), 30%); */ +@primaryEven : lighten( @primaryOdd, 10% ); +@secondaryOdd : @primaryEven; +@secondaryEven : lighten( @primaryEven, 5% ); +@tertiaryOdd : @secondaryEven; +@tertiaryEven : lighten( @secondaryEven, 5% ); + +/* Filter widget transition */ +.filterWidgetTransition { + -webkit-transition: line-height @filterTransitionTime ease; + -moz-transition: line-height @filterTransitionTime ease; + -o-transition: line-height @filterTransitionTime ease; + transition: line-height @filterTransitionTime ease; +} + +/*** icon block ***/ +.iconPosition { + font-size: 11px; + position: absolute; + right: 2px; + top: 50%; + margin-top: -7px; /* half the icon height; older IE doesn't like this */ + width: 14px; + height: 14px; + background-repeat: no-repeat; + line-height: 14px; +} + +/* black */ +@unsortedBlack : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAMAAADOvxanAAAAVFBMVEUAAABCQkJZWVkZGRnJyckgICAZGRkZGRn8/PweHh4dHR0aGhoaGhpUVFQbGxvQ0NDc3NxMTExSUlIbGxvr6+s4ODhKSkogICAtLS00NDQzMzMnJydSEPrQAAAAGHRSTlMA1ssZRLgdAQbDyisqsZo8QdXUq0r9xPepSRwiAAAAX0lEQVQI13XHSQKAIAwEwQAKxn13Ev7/T2Pu9qmarJKPXIicI4PH4hxaKNrhm2S8bJK5h4YzKHrzJNtK6yYT/TdXzpS5zuYg4MSQYF6i4IHExdw1UVRi05HPrrvT53a+qyMFC9t04gcAAAAASUVORK5CYII=); + +/* white */ +@unsortedWhite : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOBAMAAAALT/umAAAAKlBMVEUAAAD///////////////////////////////////////////////////+Gu8ovAAAADXRSTlMA4EXKBtQqvR0+sxmalc142gAAAFdJREFUCNdjYGDoamAAAjZbMxCVfvd6AgMDd+3du9UMDKx3hWSvMjBwXZww8RYDGuC53NB8h4GB8a617UUGBs7Yu3cjGRhYVO9eVQFKOskKOQApFmUgBwBZ+xXRTttNdAAAAABJRU5ErkJggg==); + +/* automatically choose the correct arrow/text color */ +.headerText (@a) when (lightness(@a) >= 50%) { + color: @headerTextColor; +} +.headerText (@a) when (lightness(@a) < 50%) { + color: lighten(@headerTextColor, 90%); +} +.unsorted (@a) when (lightness(@a) >= 50%) { + background-image: @unsortedBlack; + color: @headerTextColor; +} +.unsorted (@a) when (lightness(@a) < 50%) { + background-image: @unsortedWhite; + color: lighten(@headerTextColor, 90%); +} + +/* variable theme name - requires less.js 1.3+; + or just replace (!".@{theme}") with the contents of @theme +*/ +.@{theme} { + font: @tableBodyFont; + background-color: @borderAndBackground; + width: 100%; + + /* style th's outside of the thead */ + th, thead td { + font: @tableHeaderFont; + font-weight: bold; + background-color: @headerBackground; + .headerText(@headerBackground); + border-collapse: collapse; + margin: @headerMargin; + padding: @overallPadding; + } + + tbody td, tfoot th, tfoot td { + padding: @overallPadding; + vertical-align: top; + } + + /* style header */ + .tablesorter-header { + cursor: pointer; + } + + .tablesorter-header-inner { + position: relative; + padding: @headerPadding; + } + + /* bootstrap uses for icons */ + .tablesorter-header-inner i.tablesorter-icon { + .iconPosition + } + + .tablesorter-header.sorter-false { + background-image: none; + cursor: default; + + } + + .tablesorter-headerAsc { + background-color: @headerAsc; + } + + .tablesorter-headerDesc { + background-color: @headerDesc; + } + + .bootstrap-icon-unsorted { + .unsorted(@headerBackground); + } + + + /* tfoot */ + tfoot .tablesorter-headerAsc, + tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; + } + + /* optional disabled input styling */ + .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; + } + + /* body */ + tbody { + + td { + .allRows; + padding: @overallPadding; + vertical-align: top; + } + + /* Zebra Widget - row alternating colors */ + tr.odd > td { + .oddRows; + } + tr.even > td { + .evenRows; + } + + } + + /* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ + tbody > tr.hover > td, + tbody > tr:hover > td, + tbody > tr:hover + tr.tablesorter-childRow > td, + tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, + tbody > tr.even.hover > td, + tbody > tr.even:hover > td, + tbody > tr.even:hover + tr.tablesorter-childRow > td, + tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .evenHovered; + } + tbody > tr.odd.hover > td, + tbody > tr.odd:hover > td, + tbody > tr.odd:hover + tr.tablesorter-childRow > td, + tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .oddHovered; + } + + /* table processing indicator - indeterminate spinner */ + .tablesorter-processing { + background-image: @processingIcon; + background-position: center center; + background-repeat: no-repeat; + } + + /* Column Widget - column sort colors */ + tr.odd td.primary { + background-color: @primaryOdd; + } + td.primary, tr.even td.primary { + background-color: @primaryEven; + } + tr.odd td.secondary { + background-color: @secondaryOdd; + } + td.secondary, tr.even td.secondary { + background-color: @secondaryEven; + } + tr.odd td.tertiary { + background-color: @tertiaryOdd; + } + td.tertiary, tr.even td.tertiary { + background-color: @tertiaryEven; + } + + /* caption (non-theme matching) */ + caption { + background-color: @captionBackground ; + } + + /* filter widget */ + .tablesorter-filter-row input, + .tablesorter-filter-row select{ + width: 98%; + margin: 0; + padding: @overallPadding; + color: @filterElementTextColor; + background-color: @filterElementBkgd; + border: @filterElementBorder; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + .filterWidgetTransition; + } + .tablesorter-filter-row { + background-color: @filterCellBackground; + } + .tablesorter-filter-row td { + text-align: center; + background-color: @filterCellBackground; + line-height: normal; + text-align: center; /* center the input */ + .filterWidgetTransition; + } + /* hidden filter row */ + .tablesorter-filter-row.hideme td { + padding: @filterRowHiddenHeight / 2; + margin: 0; + line-height: 0; + cursor: pointer; + } + .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); + } + /* rows hidden by filtering (needed for child rows) */ + .filtered { + display: none; + } + + /* ajax error row */ + .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: @errorBackground; + } + +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css b/vendor/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css new file mode 100644 index 000000000..e8b59d39e --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css @@ -0,0 +1,64 @@ +/* + * dragtable + * @Version 2.0.14 MOD + * default css + */ +.dragtable-sortable { + list-style-type: none; + margin: 0; + padding: 0; + -moz-user-select: none; + z-index: 10; +} +.dragtable-sortable li { + margin: 0; + padding: 0; + float: left; + font-size: 1em; +} +.dragtable-sortable table { + margin-top: 0; +} +.dragtable-sortable th, .dragtable-sortable td { + border-left: 0px; +} +.dragtable-sortable li:first-child th, .dragtable-sortable li:first-child td { + border-left: 1px solid #CCC; +} +.dragtable-handle-selected { + /* table-handle class while actively dragging a column */ +} +.ui-sortable-helper { + opacity: 0.7; + filter: alpha(opacity=70); +} +.ui-sortable-placeholder { + -moz-box-shadow: 4px 5px 4px rgba(0,0,0,0.2) inset; + -webkit-box-shadow: 4px 5px 4px rgba(0,0,0,0.2) inset; + box-shadow: 4px 5px 4px rgba(0,0,0,0.2) inset; + border-bottom: 1px solid rgba(0,0,0,0.2); + border-top: 1px solid rgba(0,0,0,0.2); + visibility: visible !important; + /* change the background color here to match the tablesorter theme */ + background: #EFEFEF; +} +.ui-sortable-placeholder * { + opacity: 0.0; + visibility: hidden; +} +.table-handle, .table-handle-disabled { + /* background-image: url(images/dragtable-handle.png); */ + /* background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAANAQMAAAC5Li2yAAAABlBMVEUAAAAzMzPI8eYgAAAAAnRSTlMAzORBQ6MAAAAOSURBVAjXYwABByyYAQAQWgFBLN2RnwAAAABJRU5ErkJggg=='); */ + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjEzIj48cmVjdCBzdHlsZT0iZmlsbDojMzMzO2ZpbGwtb3BhY2l0eTouODsiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjEiIHk9IjIiLz4JPHJlY3Qgc3R5bGU9ImZpbGw6IzMzMztmaWxsLW9wYWNpdHk6Ljg7IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSIxIiB5PSI0Ii8+CTxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iNiIvPjxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iOCIvPjxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iMTAiLz48L3N2Zz4=); + background-repeat: repeat-x; + height: 13px; + margin: 0 1px; + cursor: move; +} +.table-handle-disabled { + opacity: 0; + cursor: not-allowed; +} +.dragtable-sortable table { + margin-bottom: 0; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/filter.formatter.css b/vendor/FHC-vendor/jquery-tablesorter/css/filter.formatter.css new file mode 100644 index 000000000..cb5dde1f0 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/filter.formatter.css @@ -0,0 +1,183 @@ +/**** Filter Formatter Elements ****/ +.tablesorter .tablesorter-filter-row td { + text-align: center; + font-size: 0.9em; + font-weight: normal; +} + +/**** Sliders ****/ +/* shrink the sliders to look nicer inside of a table cell */ +.tablesorter .ui-slider, .tablesorter input.range { + width: 90%; + margin: 2px auto 2px auto; /* add enough top margin so the tooltips will fit */ + font-size: 0.8em; +} +.tablesorter .ui-slider { + top: 12px; +} +.tablesorter .ui-slider .ui-slider-handle { + width: 0.9em; + height: 0.9em; +} +.tablesorter .ui-datepicker { + font-size: 0.8em; +} +.tablesorter .ui-slider-horizontal { + height: 0.5em; +} +/* Add tooltips to slider handles */ +.tablesorter .value-popup:after { + content : attr(data-value); + position: absolute; + bottom: 14px; + left: -7px; + min-width: 18px; + height: 12px; + background-color: #444; + background-image: -webkit-gradient(linear, left top, left bottom, from(#444444), to(#999999)); + background-image: -webkit-linear-gradient(top, #444, #999); + background-image: -moz-linear-gradient(top, #444, #999); + background-image: -o-linear-gradient(top, #444, #999); + background-image: linear-gradient(to bottom, #444, #999); + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-background-clip: padding-box; background-clip: padding-box; + -webkit-box-shadow: 0px 0px 4px 0px #777; + box-shadow: 0px 0px 4px 0px #777; + border: #444 1px solid; + color: #fff; + font: 1em/1.1em Arial, Sans-Serif; + padding: 1px; + text-align: center; +} +.tablesorter .value-popup:before { + content: ""; + position: absolute; + width: 0; + height: 0; + border-top: 8px solid #777; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + top: -8px; + left: 50%; + margin-left: -8px; + margin-top: -1px; +} + +/**** Date Picker ****/ +.tablesorter .dateFrom, .tablesorter .dateTo { + width: 80px; + margin: 2px 5px; +} + +/**** Color Picker/HTML5Number Toggle button ****/ +.tablesorter .button { + width: 14px; + height: 14px; + background: #fcfff4; + background: -webkit-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); + background: -moz-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); + background: -o-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); + background: -ms-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); + background: linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfff4', endColorstr='#b3bead', GradientType=0 ); + margin: 1px 5px 1px 1px; + -webkit-border-radius: 25px; + -moz-border-radius: 25px; + border-radius: 25px; + -webkit-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5); + -moz-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5); + box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5); + position: relative; + top: 3px; + display: inline-block; +} + +.tablesorter .button label { + cursor: pointer; + position: absolute; + width: 10px; + height: 10px; + -webkit-border-radius: 25px; + -moz-border-radius: 25px; + border-radius: 25px; + left: 2px; + top: 2px; + -webkit-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,1); + -moz-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,1); + box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,1); + background: #45484d; + background: -webkit-linear-gradient(top, #222 0%, #45484d 100%); + background: -moz-linear-gradient(top, #222 0%, #45484d 100%); + background: -o-linear-gradient(top, #222 0%, #45484d 100%); + background: -ms-linear-gradient(top, #222 0%, #45484d 100%); + background: linear-gradient(top, #222 0%, #45484d 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222', endColorstr='#45484d', GradientType=0 ); +} + +.tablesorter .button label:after { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + opacity: 0; + content: ''; + position: absolute; + width: 8px; + height: 8px; + background: #55f; + background: -webkit-linear-gradient(top, #aaf 0%, #55f 100%); + background: -moz-linear-gradient(top, #aaf 0%, #55f 100%); + background: -o-linear-gradient(top, #aaf 0%, #55f 100%); + background: -ms-linear-gradient(top, #aaf 0%, #55f 100%); + background: linear-gradient(top, #aaf 0%, #55f 100%); + -webkit-border-radius: 25px; + -moz-border-radius: 25px; + border-radius: 25px; + top: 1px; + left: 1px; + -webkit-box-shadow: inset 0px 1px 1px #fff, 0px 1px 3px rgba(0,0,0,0.5); + -moz-box-shadow: inset 0px 1px 1px #fff, 0px 1px 3px rgba(0,0,0,0.5); + box-shadow: inset 0px 1px 1px #fff, 0px 1px 3px rgba(0,0,0,0.5); +} + +.tablesorter .button label:hover::after { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; + filter: alpha(opacity=30); + opacity: 0.3; +} + +.tablesorter .button input[type=checkbox] { + visibility: hidden; +} + +.tablesorter .button input[type=checkbox]:checked + label:after { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + filter: alpha(opacity=100); + opacity: 1; +} + +.tablesorter .colorpicker { + width: 30px; + height: 18px; +} +.tablesorter .ui-spinner-input { + width: 100px; + height: 18px; +} +.tablesorter .currentColor, .tablesorter .ui-spinner { + position: relative; +} +.tablesorter input.number { + position: relative; +} + +/* hide filter row */ +.tablesorter .tablesorter-filter-row.hideme td * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif new file mode 100644 index 000000000..730533fa3 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif new file mode 100644 index 000000000..4c3b61020 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif new file mode 100644 index 000000000..5647f6583 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png new file mode 100644 index 000000000..4e161a65e Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png new file mode 100644 index 000000000..fb227a150 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png new file mode 100644 index 000000000..ff64a7d57 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg b/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg new file mode 100644 index 000000000..041ec1ded --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png new file mode 100644 index 000000000..bc45223f1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png new file mode 100644 index 000000000..0d6ee1505 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png new file mode 100644 index 000000000..493094204 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png new file mode 100644 index 000000000..0bce65a07 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif new file mode 100644 index 000000000..4cfba0950 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif new file mode 100644 index 000000000..4f8817650 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-header.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-header.gif new file mode 100644 index 000000000..cc746b70a Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-header.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif new file mode 100644 index 000000000..0afe2c021 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif new file mode 100644 index 000000000..0961d9aaf Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif new file mode 100644 index 000000000..0330fccaa Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif new file mode 100644 index 000000000..c1afde558 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png new file mode 100644 index 000000000..f7a781be1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png new file mode 100644 index 000000000..ef5f48e07 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif new file mode 100644 index 000000000..ae274c6c1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png new file mode 100644 index 000000000..653b08342 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png new file mode 100644 index 000000000..63327188b Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png new file mode 100644 index 000000000..ca7c363e3 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif new file mode 100644 index 000000000..2173b0a05 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif new file mode 100644 index 000000000..7109c3ea1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif new file mode 100644 index 000000000..9bfc3459c Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/metro.less b/vendor/FHC-vendor/jquery-tablesorter/css/metro.less new file mode 100644 index 000000000..62b929264 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/metro.less @@ -0,0 +1,357 @@ +/* Tablesorter Custom Metro LESS Theme by Rob Garrison + +To create your own theme, modify the code below and run it through +a LESS compiler, like this one: http://leafo.net/lessphp/editor.html +or download less.js from http://lesscss.org/ + +Test out these custom less files live + Basic Theme : http://codepen.io/Mottie/pen/eqBbn + Bootstrap : http://codepen.io/Mottie/pen/Ltzpi + Metro Style : http://codepen.io/Mottie/pen/gCslk + +*/ + +/*** theme ***/ +@theme : tablesorter-metro; + +/*** fonts ***/ +@tableHeaderFont : 14px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif; +@tableBodyFont : 14px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif; + +/*** color definitions ***/ +/* for best results, only change the hue (120), + leave the saturation (60%) and luminosity (75%) alone + pick the color from here: http://hslpicker.com/#825a2b + + Inspired by http://www.jtable.org/ metro themes: + Blue: hsl(212, 86%, 35%) + Brown hsl(32, 50%, 30%) + Crimson hsl(0, 100%, 38%) + Dark Grey hsl(0, 0%, 27%) + Dark Orange hsl(13, 70%, 51%) + Green hsl(120, 100%, 32%) + Light Gray hsl(0, 0%, 44%) + Pink hsl(297, 100%, 33%) + Purple hsl(257, 51%, 48%) + Red hsl(5, 100%, 40%) + + */ +@headerBackground : hsl(32, 50%, 30%); +@borderAndBackground : #cdcdcd; +@headerTextColor : #eee; + +@bodyBackground : #fff; +@bodyTextColor : #000; + +@captionBackground : #fff; /* it might be best to match the document body background color here */ +@errorBackground : #e6bf99; /* ajax error message (added to thead) */ + +@filterCellBackground : #eee; +@filterElementTextColor: #333; +@filterElementBkgd : #fff; +@filterElementBorder : 1px solid #bbb; +@filterTransitionTime : 0.1s; +@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */ + +@overallPadding : 4px; +/* 20px should be slightly wider than the icon width to avoid overlap */ +@headerPadding : 4px 20px 4px 4px; + +/* url(icons/loading.gif); */ +@processingIcon : url('data:image/gif;base64,R0lGODlhEAAQAPIAAP///1VVVdbW1oCAgFVVVZaWlqurq7a2tiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA=='); + +/* zebra striping */ +.allRows { + background-color: @bodyBackground; + color: @bodyTextColor; +} +.evenRows { + background-color: lighten( desaturate(@headerBackground, 80%), 70%); + color: @bodyTextColor; +} +.oddRows { + background-color: lighten( desaturate(@headerBackground, 80%), 50%); +} + +/* hovered rows */ +.oddHovered { + background-color: lighten( desaturate(@headerBackground, 50%), 40%); + color: @bodyTextColor; +} +.evenHovered { + background-color: lighten( desaturate(@headerBackground, 50%), 30%); + color: @bodyTextColor; +} + +/* Columns widget */ +@primaryOdd : lighten( spin(@headerBackground, 10), 40%); +@primaryEven : lighten( @primaryOdd, 8% ); +@secondaryOdd : @primaryEven; +@secondaryEven : lighten( @primaryEven, 8% ); +@tertiaryOdd : @secondaryEven; +@tertiaryEven : lighten( @secondaryEven, 8% ); + +/* Filter widget transition */ +.filterWidgetTransition { + -webkit-transition: line-height @filterTransitionTime ease; + -moz-transition: line-height @filterTransitionTime ease; + -o-transition: line-height @filterTransitionTime ease; + transition: line-height @filterTransitionTime ease; +} + +/*** Arrows ***/ +@arrowPosition : right 5px center; + +/* black */ +@unsortedBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC); +@sortAscBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC); +@sortDescBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAADnRSTlMAMiweCQITTvDctZZqaTlM310AAABcSURBVAjXY2BgYEtgAAFHERDJqigUAKSYBQUNgFSioKAYAwOLIBA4MASBKFUGQxAlzAAF+94BwWuGKBC1lIFl3rt3Lx0YGCzevWsGSjK9e6cAUlT3HKyW9wADAwDRrBiDy6bKzwAAAABJRU5ErkJggg==); + +/* white */ +@unsortedWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAElBMVEUAAADu7u7u7u7u7u7u7u7u7u7yb344AAAABnRSTlMAMhIHKyAHBrhHAAAATElEQVQI12NgYGBSYAABQ2Ew5SgCIlkFBQOAlKKgoBADA7MgEBgwsIAoB4ZAECXKAAFQHkg9WIejoCBIv4mgoDOQYgZpAxkDNARqEQBTkAYuMZEHPgAAAABJRU5ErkJggg==); +@sortAscWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAHlBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u4+jEeEAAAACXRSTlMAMwkqFV7roCD4hW+/AAAAWUlEQVQI1y3MrQ5AABSG4Xd+Rj0jiDabjKZxB6qqaarGNRh27tY5myd8b/uAeML1l2+wPqUlUd0ss+oNoZqG2rOwe15+p5iC1HNAK5IBlUjnZyIlZsxx0QAfzokSZgp96u4AAAAASUVORK5CYII=); +@sortDescWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAJ1BMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u4RJgHSAAAADHRSTlMAMiweCQITaU7olrlu2HdvAAAAXElEQVQI12NgYGBLYAABRxEQyaooFACkmAUFDYBUoqCgGAMDiyAQODAEgShVBkMQJcwABWvOAMEphmgQtZWBZc6ZMycdGBhszpw5DJRkOnNGAaSo5wRYLXsBAwMAi4YWQHRX4F0AAAAASUVORK5CYII=); + +/* automatically choose the correct arrow/text color */ +.headerText (@a) when (lightness(@a) >= 50%) { + color: @headerTextColor; +} +.headerText (@a) when (lightness(@a) < 50%) { + color: lighten(@headerTextColor, 90%); +} +.unsorted (@a) when (lightness(@a) >= 50%) { + background-image: @unsortedBlack; +} +.unsorted (@a) when (lightness(@a) < 50%) { + background-image: @unsortedWhite; +} +.sortAsc (@a) when (lightness(@a) >= 50%) { + background-image: @sortAscBlack; +} +.sortAsc (@a) when (lightness(@a) < 50%) { + background-image: @sortAscWhite; +} +.sortDesc (@a) when (lightness(@a) >= 50%) { + background-image: @sortDescBlack; +} +.sortDesc (@a) when (lightness(@a) < 50%) { + background-image: @sortDescWhite; +} + +/* variable theme name - requires less.js 1.3+; + or just replace (!".@{theme}") with the contents of @theme +*/ +.@{theme} { + font: @tableBodyFont; + background-color: @borderAndBackground; + margin: 10px 0 15px; + width: 100%; + text-align: left; + border-spacing: 0; + border: 0; + + th, td { + border: 0; + } + + /* style th's outside of the thead */ + th, thead td { + font: @tableHeaderFont; + font-weight: bold; + background-color: @headerBackground; + color: @headerTextColor; + .headerText(@headerBackground); + border-collapse: collapse; + padding: @overallPadding; + } + + .dark-row th, .dark-row td, caption.dark-row { + background-color: darken( @headerBackground, 10% ); + } + + tbody td, tfoot th, tfoot td { + padding: @overallPadding; + vertical-align: top; + } + + /* style header */ + .tablesorter-header { + .unsorted(@headerBackground); + background-repeat: no-repeat; + background-position: @arrowPosition; + cursor: pointer; + white-space: normal; + } + + .tablesorter-header-inner { + padding: @headerPadding; + } + + .tablesorter-header.sorter-false { + background-image: none; + cursor: default; + padding: @overallPadding; + } + + .tablesorter-headerAsc { + .sortAsc(@headerBackground); + } + + .tablesorter-headerDesc { + .sortDesc(@headerBackground); + } + + /* tfoot */ + tfoot .tablesorter-headerAsc, + tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; + } + + /* optional disabled input styling */ + .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; + } + + /* body */ + tbody { + + td { + .allRows; + padding: @overallPadding; + vertical-align: top; + } + + /* Zebra Widget - row alternating colors */ + tr.odd > td { + .oddRows; + } + tr.even > td { + .evenRows; + } + + } + + /* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ + tbody > tr.hover > td, + tbody > tr:hover > td, + tbody > tr:hover + tr.tablesorter-childRow > td, + tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, + tbody > tr.even.hover > td, + tbody > tr.even:hover > td, + tbody > tr.even:hover + tr.tablesorter-childRow > td, + tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .evenHovered; + } + tbody > tr.odd.hover > td, + tbody > tr.odd:hover > td, + tbody > tr.odd:hover + tr.tablesorter-childRow > td, + tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .oddHovered; + } + + /* table processing indicator - indeterminate spinner */ + .tablesorter-processing { + background-image: @processingIcon; + background-position: center center; + background-repeat: no-repeat; + } + + /* pager */ + div.tablesorter-pager { + button { + background-color: lighten( @headerBackground, 7% ); + color: @headerTextColor; + border: lighten( @headerBackground, 15% ) 1px solid; + cursor: pointer; + } + button:hover { + background-color: lighten( @headerBackground, 15% ); + } + } + + /* Column Widget - column sort colors */ + tr.odd td.primary { + background-color: @primaryOdd; + } + td.primary, tr.even td.primary { + background-color: @primaryEven; + } + tr.odd td.secondary { + background-color: @secondaryOdd; + } + td.secondary, tr.even td.secondary { + background-color: @secondaryEven; + } + tr.odd td.tertiary { + background-color: @tertiaryOdd; + } + td.tertiary, tr.even td.tertiary { + background-color: @tertiaryEven; + } + + /* caption (non-theme matching) */ + caption { + background-color: @captionBackground ; + } + + /* filter widget */ + .tablesorter-filter-row input, + .tablesorter-filter-row select{ + width: 98%; + height: auto; + margin: 0; + padding: @overallPadding; + color: @filterElementTextColor; + background-color: @filterElementBkgd; + border: @filterElementBorder; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + .filterWidgetTransition; + } + .tablesorter-filter-row { + background-color: @filterCellBackground; + } + .tablesorter-filter-row td { + text-align: center; + background-color: @filterCellBackground; + line-height: normal; + text-align: center; /* center the input */ + .filterWidgetTransition; + } + /* hidden filter row */ + .tablesorter-filter-row.hideme td { + padding: @filterRowHiddenHeight / 2; + margin: 0; + line-height: 0; + cursor: pointer; + } + .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); + } + /* rows hidden by filtering (needed for child rows) */ + .filtered { + display: none; + } + + /* ajax error row */ + .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: @errorBackground; + } + +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd b/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd new file mode 100644 index 000000000..f49267750 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd b/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd new file mode 100644 index 000000000..bc9ffacd1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd b/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd new file mode 100644 index 000000000..5f6a8701e Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd b/vendor/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd new file mode 100644 index 000000000..1fe712ab4 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css new file mode 100644 index 000000000..1bf253d05 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css @@ -0,0 +1,192 @@ +/************* + Black Ice Theme (by thezoggy) + *************/ +/* overall */ +.tablesorter-blackice { + width: 100%; + margin-right: auto; + margin-left: auto; + font: 11px/18px Arial, Sans-serif; + text-align: left; + background-color: #000; + border-collapse: collapse; + border-spacing: 0; +} + +/* header */ +.tablesorter-blackice th, +.tablesorter-blackice thead td { + padding: 4px; + font: 13px/20px Arial, Sans-serif; + font-weight: bold; + color: #e5e5e5; + text-align: left; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.7); + background-color: #111; + border: 1px solid #232323; +} +.tablesorter-blackice .header, +.tablesorter-blackice .tablesorter-header { + padding: 4px 20px 4px 4px; + cursor: pointer; + background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); + background-position: center right; + background-repeat: no-repeat; +} +.tablesorter-blackice .headerSortUp, +.tablesorter-blackice .tablesorter-headerSortUp, +.tablesorter-blackice .tablesorter-headerAsc { + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); + color: #fff; +} +.tablesorter-blackice .headerSortDown, +.tablesorter-blackice .tablesorter-headerSortDown, +.tablesorter-blackice .tablesorter-headerDesc { + color: #fff; + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); +} +.tablesorter-blackice thead .sorter-false { + background-image: none; + cursor: default; + padding: 4px; +} + +/* tfoot */ +.tablesorter-blackice tfoot .tablesorter-headerSortUp, +.tablesorter-blackice tfoot .tablesorter-headerSortDown, +.tablesorter-blackice tfoot .tablesorter-headerAsc, +.tablesorter-blackice tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; +} + +/* tbody */ +.tablesorter-blackice td { + padding: 4px; + color: #ccc; + vertical-align: top; + background-color: #333; + border: 1px solid #232323; +} + +/* hovered row colors */ +.tablesorter-blackice tbody > tr.hover > td, +.tablesorter-blackice tbody > tr:hover > td, +.tablesorter-blackice tbody > tr.even:hover > td, +.tablesorter-blackice tbody > tr.odd:hover > td { + background-color: #000; +} + +/* table processing indicator */ +.tablesorter-blackice .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-blackice tr.odd > td { + background-color: #333; +} +.tablesorter-blackice tr.even > td { + background-color: #393939; +} + +/* Column Widget - column sort colors */ +.tablesorter-blackice td.primary, +.tablesorter-blackice tr.odd td.primary { + background-color: #2f3a40; +} +.tablesorter-blackice tr.even td.primary { + background-color: #3f4a50; +} +.tablesorter-blackice td.secondary, +.tablesorter-blackice tr.odd td.secondary { + background-color: #3f4a50; +} +.tablesorter-blackice tr.even td.secondary { + background-color: #4f5a60; +} +.tablesorter-blackice td.tertiary, +.tablesorter-blackice tr.odd td.tertiary { + background-color: #4f5a60; +} +.tablesorter-blackice tr.even td.tertiary { + background-color: #5a646b; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-blackice .tablesorter-filter-row { + background-color: #222; +} +.tablesorter-blackice .tablesorter-filter-row td { + background-color: #222; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-blackice .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-blackice .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-blackice .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-blackice input.tablesorter-filter, +.tablesorter-blackice select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.blue.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.blue.css new file mode 100644 index 000000000..66d6e58cf --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.blue.css @@ -0,0 +1,229 @@ +/************* + Blue Theme + *************/ +/* overall */ +.tablesorter-blue { + width: 100%; + background-color: #fff; + margin: 10px 0 15px; + text-align: left; + border-spacing: 0; + border: #cdcdcd 1px solid; + border-width: 1px 0 0 1px; +} +.tablesorter-blue th, +.tablesorter-blue td { + border: #cdcdcd 1px solid; + border-width: 0 1px 1px 0; +} + +/* header */ +.tablesorter-blue th, +.tablesorter-blue thead td { + font: 12px/18px Arial, Sans-serif; + font-weight: bold; + color: #000; + background-color: #99bfe6; + border-collapse: collapse; + padding: 4px; + text-shadow: 0 1px 0 rgba(204, 204, 204, 0.7); +} +.tablesorter-blue tbody td, +.tablesorter-blue tfoot th, +.tablesorter-blue tfoot td { + padding: 4px; + vertical-align: top; +} +.tablesorter-blue .header, +.tablesorter-blue .tablesorter-header { + /* black (unsorted) double arrow */ + background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); + /* white (unsorted) double arrow */ + /* background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); */ + /* image */ + /* background-image: url(images/black-unsorted.gif); */ + background-repeat: no-repeat; + background-position: center right; + padding: 4px 18px 4px 4px; + white-space: normal; + cursor: pointer; +} +.tablesorter-blue .headerSortUp, +.tablesorter-blue .tablesorter-headerSortUp, +.tablesorter-blue .tablesorter-headerAsc { + background-color: #9fbfdf; + /* black asc arrow */ + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); + /* white asc arrow */ + /* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); */ + /* image */ + /* background-image: url(images/black-asc.gif); */ +} +.tablesorter-blue .headerSortDown, +.tablesorter-blue .tablesorter-headerSortDown, +.tablesorter-blue .tablesorter-headerDesc { + background-color: #8cb3d9; + /* black desc arrow */ + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + /* white desc arrow */ + /* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); */ + /* image */ + /* background-image: url(images/black-desc.gif); */ +} +.tablesorter-blue thead .sorter-false { + background-image: none; + cursor: default; + padding: 4px; +} + +/* tfoot */ +.tablesorter-blue tfoot .tablesorter-headerSortUp, +.tablesorter-blue tfoot .tablesorter-headerSortDown, +.tablesorter-blue tfoot .tablesorter-headerAsc, +.tablesorter-blue tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; +} + +/* tbody */ +.tablesorter-blue td { + color: #3d3d3d; + background-color: #fff; + padding: 4px; + vertical-align: top; +} + +/* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ +.tablesorter-blue tbody > tr.hover > td, +.tablesorter-blue tbody > tr:hover > td, +.tablesorter-blue tbody > tr:hover + tr.tablesorter-childRow > td, +.tablesorter-blue tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, +.tablesorter-blue tbody > tr.even.hover > td, +.tablesorter-blue tbody > tr.even:hover > td, +.tablesorter-blue tbody > tr.even:hover + tr.tablesorter-childRow > td, +.tablesorter-blue tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + background-color: #d9d9d9; +} +.tablesorter-blue tbody > tr.odd.hover > td, +.tablesorter-blue tbody > tr.odd:hover > td, +.tablesorter-blue tbody > tr.odd:hover + tr.tablesorter-childRow > td, +.tablesorter-blue tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + background-color: #bfbfbf; +} + +/* table processing indicator */ +.tablesorter-blue .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-blue tbody tr.odd > td { + background-color: #ebf2fa; +} +.tablesorter-blue tbody tr.even > td { + background-color: #fff; +} + +/* Column Widget - column sort colors */ +.tablesorter-blue td.primary, +.tablesorter-blue tr.odd td.primary { + background-color: #99b3e6; +} +.tablesorter-blue tr.even td.primary { + background-color: #c2d1f0; +} +.tablesorter-blue td.secondary, +.tablesorter-blue tr.odd td.secondary { + background-color: #c2d1f0; +} +.tablesorter-blue tr.even td.secondary { + background-color: #d6e0f5; +} +.tablesorter-blue td.tertiary, +.tablesorter-blue tr.odd td.tertiary { + background-color: #d6e0f5; +} +.tablesorter-blue tr.even td.tertiary { + background-color: #ebf0fa; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-blue .tablesorter-filter-row { + background-color: #eee; +} +.tablesorter-blue .tablesorter-filter-row td { + background-color: #eee; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-blue .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-blue .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-blue .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-blue input.tablesorter-filter, +.tablesorter-blue select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css new file mode 100644 index 000000000..11a3ea7a6 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css @@ -0,0 +1,158 @@ +/************* + Bootstrap theme + *************/ +/* jQuery Bootstrap Theme */ +.tablesorter-bootstrap { + width: 100%; +} +.tablesorter-bootstrap thead th, +.tablesorter-bootstrap thead td, +.tablesorter-bootstrap tfoot th, +.tablesorter-bootstrap tfoot td { + font: 14px/20px Arial, Sans-serif; + font-weight: bold; + padding: 4px; + margin: 0 0 18px; + background-color: #eee; +} + +.tablesorter-bootstrap .tablesorter-header { + cursor: pointer; +} + +.tablesorter-bootstrap .tablesorter-header-inner { + position: relative; + padding: 4px 18px 4px 4px; +} + +/* bootstrap uses for icons */ +.tablesorter-bootstrap .tablesorter-header i.tablesorter-icon { + font-size: 11px; + position: absolute; + right: 2px; + top: 50%; + margin-top: -7px; /* half the icon height; older IE doesn't like this */ + width: 14px; + height: 14px; + background-repeat: no-repeat; + line-height: 14px; + display: inline-block; +} + +/* black unsorted icon */ +.tablesorter-bootstrap .bootstrap-icon-unsorted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAMAAADOvxanAAAAVFBMVEUAAABCQkJZWVkZGRnJyckgICAZGRkZGRn8/PweHh4dHR0aGhoaGhpUVFQbGxvQ0NDc3NxMTExSUlIbGxvr6+s4ODhKSkogICAtLS00NDQzMzMnJydSEPrQAAAAGHRSTlMA1ssZRLgdAQbDyisqsZo8QdXUq0r9xPepSRwiAAAAX0lEQVQI13XHSQKAIAwEwQAKxn13Ev7/T2Pu9qmarJKPXIicI4PH4hxaKNrhm2S8bJK5h4YzKHrzJNtK6yYT/TdXzpS5zuYg4MSQYF6i4IHExdw1UVRi05HPrrvT53a+qyMFC9t04gcAAAAASUVORK5CYII=); +} + +/* white unsorted icon */ +.tablesorter-bootstrap .icon-white.bootstrap-icon-unsorted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOBAMAAAALT/umAAAAKlBMVEUAAAD///////////////////////////////////////////////////+Gu8ovAAAADXRSTlMA4EXKBtQqvR0+sxmalc142gAAAFdJREFUCNdjYGDoamAAAjZbMxCVfvd6AgMDd+3du9UMDKx3hWSvMjBwXZww8RYDGuC53NB8h4GB8a617UUGBs7Yu3cjGRhYVO9eVQFKOskKOQApFmUgBwBZ+xXRTttNdAAAAABJRU5ErkJggg==); +} + +/* since bootstrap (table-striped) uses nth-child(), we just use this to add a zebra stripe color */ +.tablesorter-bootstrap > tbody > tr.odd > td, +.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.odd:hover ~ tr.tablesorter-hasChildRow.odd ~ .tablesorter-childRow.odd > td { + background-color: #f9f9f9; +} +.tablesorter-bootstrap > tbody > tr.hover > td, +.tablesorter-bootstrap > tbody > tr.odd:hover > td, +.tablesorter-bootstrap > tbody > tr.even:hover > td, +.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.odd:hover ~ .tablesorter-childRow.odd > td, +.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.even:hover ~ .tablesorter-childRow.even > td { + background-color: #f5f5f5; +} +.tablesorter-bootstrap > tbody > tr.even > td, +.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.even:hover ~ tr.tablesorter-hasChildRow.even ~ .tablesorter-childRow.even > td { + background-color: #fff; +} + +/* processing icon */ +.tablesorter-bootstrap .tablesorter-processing { + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs='); + background-position: center center !important; + background-repeat: no-repeat !important; +} + +/* caption */ +.caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-bootstrap .tablesorter-filter-row input.tablesorter-filter, +.tablesorter-bootstrap .tablesorter-filter-row select.tablesorter-filter { + width: 98%; + margin: 0; + padding: 4px 6px; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +.tablesorter-bootstrap .tablesorter-filter-row .tablesorter-filter.disabled { + background-color: #eee; + color: #555; + cursor: not-allowed; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset; + box-sizing: border-box; + transition: height 0.1s ease; +} +.tablesorter-bootstrap .tablesorter-filter-row { + background-color: #efefef; +} +.tablesorter-bootstrap .tablesorter-filter-row td { + background-color: #efefef; + line-height: normal; + text-align: center; + padding: 4px 6px; + vertical-align: middle; + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* hidden filter row */ +.tablesorter-bootstrap .tablesorter-filter-row.hideme td { + padding: 2px; /* change this to modify the thickness of the closed border row */ + margin: 0; + line-height: 0; +} +.tablesorter-bootstrap .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* pager plugin */ +.tablesorter-bootstrap .tablesorter-pager select { + padding: 4px 6px; +} +.tablesorter-bootstrap .tablesorter-pager .pagedisplay { + border: 0; +} +/* tfoot i for pager controls */ +.tablesorter-bootstrap tfoot i { + font-size: 11px; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css new file mode 100644 index 000000000..fe0665bf2 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css @@ -0,0 +1,157 @@ +/************* + Bootstrap 2 Theme + *************/ +/* jQuery Bootstrap 2 Theme */ +.tablesorter-bootstrap { + width: 100%; +} +.tablesorter-bootstrap .tablesorter-header, +.tablesorter-bootstrap tfoot th, +.tablesorter-bootstrap tfoot td { + font: 14px/20px Arial, Sans-serif; + font-weight: bold; + position: relative; + padding: 8px; + margin: 0 0 18px; + list-style: none; + background-color: #FBFBFB; + background-image: -moz-linear-gradient(top, white, #efefef); + background-image: -ms-linear-gradient(top, white, #efefef); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(white), to(#efefef)); + background-image: -webkit-linear-gradient(top, white, #efefef); + background-image: -o-linear-gradient(top, white, #efefef); + background-image: linear-gradient(to bottom, white, #efefef); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#efefef', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 1px 0 white; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 white; +} + +.tablesorter-bootstrap .tablesorter-header { + cursor: pointer; +} + +.tablesorter-bootstrap .tablesorter-header-inner { + position: relative; + padding: 4px 18px 4px 4px; +} + +/* bootstrap uses for icons */ +.tablesorter-bootstrap .tablesorter-header i.tablesorter-icon { + position: absolute; + right: 2px; + top: 50%; + margin-top: -7px; /* half the icon height; older IE doesn't like this */ + width: 14px; + height: 14px; + background-repeat: no-repeat; + line-height: 14px; + display: inline-block; +} + +/* black unsorted icon */ +.tablesorter-bootstrap .bootstrap-icon-unsorted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWVJREFUeNqUUL9Lw2AUTGP8mqGlpBQkNeCSRcckEBcHq1jImMElToKuDvpHFMGhU0BQcHBwLji6CE1B4uB/INQsDi4d2jQ/fPeZxo764OV6915f7lLJ81xot9tCURXqdVEUr7IsO6ffH9Q5BlEUCaLwWxWqTcbYnaIoh0Dw4gAvcWlxq1qt9hqNxg6hUGAP+uIPUrGs0qXLer2+v/pTX6QpxLtkc2U2m53ACb8sSdIDXerSEms2m6+DweAICA4d89KGbduf9MpEVdXQ9/2LVqv1CASHjjn3iq/x1xKFfxQPqGnada1W86bT6SiO42OS3qk3KPStLMvbk8nkfjwen/LLuq6blFymMB0KdUPSGhAcOualjX6/f0bCiC7NaWGPQr0BwaFjzn0gYJqmLAiCA8/zni3LmhuGkQPBoWPOPwQeaPIqD4fDruu6L6Zp5kBw6IudchmdJAkLw3DXcZwnIPjy/FuAAQCiqqWWCAFKcwAAAABJRU5ErkJggg==); +} + +/* white unsorted icon */ +.tablesorter-bootstrap .icon-white.bootstrap-icon-unsorted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOBAMAAAALT/umAAAAKlBMVEUAAAD///////////////////////////////////////////////////+Gu8ovAAAADXRSTlMA4EXKBtQqvR0+sxmalc142gAAAFdJREFUCNdjYGDoamAAAjZbMxCVfvd6AgMDd+3du9UMDKx3hWSvMjBwXZww8RYDGuC53NB8h4GB8a617UUGBs7Yu3cjGRhYVO9eVQFKOskKOQApFmUgBwBZ+xXRTttNdAAAAABJRU5ErkJggg==); +} + +/* since bootstrap (table-striped) uses nth-child(), we just use this to add a zebra stripe color */ +.tablesorter-bootstrap tr.odd > td { + background-color: #f9f9f9; +} +.tablesorter-bootstrap tbody > tr.hover > td, +.tablesorter-bootstrap tbody > .odd:hover > td, +.tablesorter-bootstrap tbody > .even:hover > td { + background-color: #f5f5f5; +} +.tablesorter-bootstrap tbody > tr.even > td { + background-color: #fff; +} + +/* processing icon */ +.tablesorter-bootstrap .tablesorter-processing { + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs='); + position: absolute; + z-index: 1000; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-bootstrap .tablesorter-filter-row input.tablesorter-filter, +.tablesorter-bootstrap .tablesorter-filter-row select.tablesorter-filter { + height: 28px; + width: 98%; + margin: 0; + padding: 4px 6px; + background-color: #fff; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +.tablesorter-bootstrap .tablesorter-filter-row .tablesorter-filter.disabled { + background-color: #eee; + cursor: not-allowed; +} +.tablesorter-bootstrap .tablesorter-filter-row { + background-color: #ddd; +} +.tablesorter-bootstrap .tablesorter-filter-row td { + background-color: #eee; + line-height: normal; + text-align: center; + padding: 4px 6px; + vertical-align: middle; + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* hidden filter row */ +.tablesorter-bootstrap tr.tablesorter-filter-row.hideme td { + padding: 2px; /* change this to modify the thickness of the closed border row */ + margin: 0; + line-height: 0; +} +.tablesorter-bootstrap tr.tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* pager plugin */ +.tablesorter-bootstrap .tablesorter-pager select { + padding: 4px 6px; +} +.tablesorter-bootstrap .tablesorter-pager .pagedisplay { + border: 0; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.dark.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.dark.css new file mode 100644 index 000000000..3ddbf61fe --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.dark.css @@ -0,0 +1,193 @@ +/************* + Dark Theme (by thezoggy) + *************/ +/* overall */ +.tablesorter-dark { + width: 100%; + font: 11px/18px Arial, Sans-serif; + color: #ccc; + text-align: left; + background-color: #000; + border-spacing: 0; +} + +/* header */ +.tablesorter-dark th, +.tablesorter-dark thead td { + padding: 4px; + font: 12px/20px Arial, Sans-serif; + font-weight: bold; + color: #fff; + background-color: #000; + border-collapse: collapse; +} +.tablesorter-dark thead th { + border-bottom: #333 2px solid; +} +.tablesorter-dark .header, +.tablesorter-dark .tablesorter-header { + padding: 4px 20px 4px 4px; + cursor: pointer; + background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); + background-position: center right; + background-repeat: no-repeat; +} +.tablesorter-dark thead .headerSortUp, +.tablesorter-dark thead .tablesorter-headerSortUp, +.tablesorter-dark thead .tablesorter-headerAsc { + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); + border-bottom: #888 1px solid; +} +.tablesorter-dark thead .headerSortDown, +.tablesorter-dark thead .tablesorter-headerSortDown, +.tablesorter-dark thead .tablesorter-headerDesc { + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + border-bottom: #888 1px solid; +} +.tablesorter-dark thead .sorter-false { + background-image: none; + cursor: default; + padding: 4px; +} + +/* tfoot */ +.tablesorter-dark tfoot .tablesorter-headerSortUp, +.tablesorter-dark tfoot .tablesorter-headerSortDown, +.tablesorter-dark tfoot .tablesorter-headerAsc, +.tablesorter-dark tfoot .tablesorter-headerDesc { + border-top: #888 1px solid; + /* remove sort arrows from footer */ + background-image: none; +} + +/* tbody */ +.tablesorter-dark td { + padding: 4px; + background-color: #000; + border-bottom: #333 1px solid; + color: #ccc; +} + +/* hovered row colors */ +.tablesorter-dark tbody > tr.hover > td, +.tablesorter-dark tbody > tr:hover > td, +.tablesorter-dark tbody > tr.even:hover > td, +.tablesorter-dark tbody > tr.odd:hover > td { + background-color: #000; +} + +/* table processing indicator */ +.tablesorter-dark .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-dark tr.odd > td { + background-color: #202020; +} +.tablesorter-dark tr.even > td { + background-color: #101010; +} + +/* Column Widget - column sort colors */ +.tablesorter-dark td.primary, +.tablesorter-dark tr.odd td.primary { + background-color: #0a0a0a; +} +.tablesorter-dark tr.even td.primary { + background-color: #050505; +} +.tablesorter-dark td.secondary, +.tablesorter-dark tr.odd td.secondary { + background-color: #0f0f0f; +} +.tablesorter-dark tr.even td.secondary { + background-color: #0a0a0a; +} +.tablesorter-dark td.tertiary, +.tablesorter-dark tr.odd td.tertiary { + background-color: #191919; +} +.tablesorter-dark tr.even td.tertiary { + background-color: #0f0f0f; +} + +/* caption */ +caption { + background-color: #202020; +} + +/* filter widget */ +.tablesorter-dark .tablesorter-filter-row { + background-color: #202020; +} +.tablesorter-dark .tablesorter-filter-row td { + background-color: #202020; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-dark .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} + +/* hidden filter row */ +.tablesorter-dark .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-dark .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} + +/* filters */ +.tablesorter-dark input.tablesorter-filter, +.tablesorter-dark select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #111; + border: 1px solid #222; + color: #ddd; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css new file mode 100644 index 000000000..6c2a34621 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css @@ -0,0 +1,194 @@ +/************* +Default Theme +*************/ +/* overall */ +.tablesorter-default { + width: 100%; + font: 12px/18px Arial, Sans-serif; + color: #333; + background-color: #fff; + border-spacing: 0; + margin: 10px 0 15px; + text-align: left; +} + +/* header */ +.tablesorter-default th, +.tablesorter-default thead td { + font-weight: bold; + color: #000; + background-color: #fff; + border-collapse: collapse; + border-bottom: #ccc 2px solid; + padding: 0; +} +.tablesorter-default tfoot th, +.tablesorter-default tfoot td { + border: 0; +} +.tablesorter-default .header, +.tablesorter-default .tablesorter-header { + background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); + background-position: center right; + background-repeat: no-repeat; + cursor: pointer; + white-space: normal; + padding: 4px 20px 4px 4px; +} +.tablesorter-default thead .headerSortUp, +.tablesorter-default thead .tablesorter-headerSortUp, +.tablesorter-default thead .tablesorter-headerAsc { + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); + border-bottom: #000 2px solid; +} +.tablesorter-default thead .headerSortDown, +.tablesorter-default thead .tablesorter-headerSortDown, +.tablesorter-default thead .tablesorter-headerDesc { + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + border-bottom: #000 2px solid; +} +.tablesorter-default thead .sorter-false { + background-image: none; + cursor: default; + padding: 4px; +} + +/* tfoot */ +.tablesorter-default tfoot .tablesorter-headerSortUp, +.tablesorter-default tfoot .tablesorter-headerSortDown, +.tablesorter-default tfoot .tablesorter-headerAsc, +.tablesorter-default tfoot .tablesorter-headerDesc { + border-top: #000 2px solid; +} + +/* tbody */ +.tablesorter-default td { + background-color: #fff; + border-bottom: #ccc 1px solid; + padding: 4px; + vertical-align: top; +} + +/* hovered row colors */ +.tablesorter-default tbody > tr.hover > td, +.tablesorter-default tbody > tr:hover > td, +.tablesorter-default tbody > tr.even:hover > td, +.tablesorter-default tbody > tr.odd:hover > td { + background-color: #fff; + color: #000; +} + +/* table processing indicator */ +.tablesorter-default .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-default tr.odd > td { + background-color: #dfdfdf; +} +.tablesorter-default tr.even > td { + background-color: #efefef; +} + +/* Column Widget - column sort colors */ +.tablesorter-default tr.odd td.primary { + background-color: #bfbfbf; +} +.tablesorter-default td.primary, +.tablesorter-default tr.even td.primary { + background-color: #d9d9d9; +} +.tablesorter-default tr.odd td.secondary { + background-color: #d9d9d9; +} +.tablesorter-default td.secondary, +.tablesorter-default tr.even td.secondary { + background-color: #e6e6e6; +} +.tablesorter-default tr.odd td.tertiary { + background-color: #e6e6e6; +} +.tablesorter-default td.tertiary, +.tablesorter-default tr.even td.tertiary { + background-color: #f2f2f2; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-default .tablesorter-filter-row { + background-color: #eee; +} +.tablesorter-default .tablesorter-filter-row td { + background-color: #eee; + border-bottom: #ccc 1px solid; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-default .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-default .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-default .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-default input.tablesorter-filter, +.tablesorter-default select.tablesorter-filter { + width: 95%; + height: auto; + margin: 4px auto; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css new file mode 100644 index 000000000..c173032a3 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css @@ -0,0 +1,216 @@ +/************* + Dropbox Theme (by thezoggy) + *************/ +/* overall */ +.tablesorter-dropbox { + width: 100%; + font: 13px/32px "Open Sans","lucida grande","Segoe UI",arial,verdana,"lucida sans unicode",tahoma,sans-serif; + color: #555; + text-align: left; + background-color: #fff; + border-collapse: collapse; + border-top: 1px solid #82cffa; + border-spacing: 0; +} + +/* header */ +.tablesorter-dropbox th, +.tablesorter-dropbox thead td, +.tablesorter-dropbox tfoot th, +.tablesorter-dropbox tfoot td { + background-color: #f0f9ff; + border-color: #82cffa #e7f2fb #96c4ea; + border-style: solid; + border-width: 1px; + padding: 3px 6px; + font-size: 13px; + font-weight: normal; + line-height: 29px; + color: #2281CF; + text-align: left; +} +.tablesorter-dropbox .header, +.tablesorter-dropbox thead tr, +.tablesorter-dropbox .tablesorter-headerRow { + background-color: #f0f9ff; + border-bottom: 1px solid #96c4ea; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.12), 0 0 0 #000000 inset; + white-space: normal; +} +.tablesorter-dropbox .tablesorter-headerSortUp, +.tablesorter-dropbox .tablesorter-headerSortDown, +.tablesorter-dropbox .tablesorter-headerAsc, +.tablesorter-dropbox .tablesorter-headerDesc { + font-weight: 600; +} +.tablesorter-dropbox .tablesorter-header { + cursor: pointer; +} +.tablesorter-dropbox .tablesorter-header i.tablesorter-icon { + width: 9px; + height: 9px; + padding: 0 10px 0 4px; + display: inline-block; + background-position: center right; + background-repeat: no-repeat; + content: ""; +} +.tablesorter-dropbox .tablesorter-headerSortUp i.tablesorter-icon, +.tablesorter-dropbox .tablesorter-headerAsc i.tablesorter-icon { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALhJREFUeNpi/P//PwMhwILMiexYx8bIxNTy/9+/muUVQb9g4kzIitg4edI4+YRLQTSyOCPMupjerUI8whK3OXgEhH58+fDuy9sXqkuKvd+hmMTOxdvCxS8sxMUvxACiQXwU6+Im7DDg5BNKY+fiY2BmYWMA0SA+SByuiJ2bbzIHrwAzMxsb0AGMDCAaxAeJg+SZ7wtaqfAISfQAdTIwMUM8ywhUyMTEzPD/71+5FXvPLWUkJpwAAgwAZqYvvHStbD4AAAAASUVORK5CYII='); + /* background-image: url(images/dropbox-asc.png); */ +} +.tablesorter-dropbox .tablesorter-headerSortUp:hover i.tablesorter-icon, +.tablesorter-dropbox .tablesorter-headerAsc:hover i.tablesorter-icon { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALVJREFUeNpi/P//PwMhwILMCc+qZGNkYmr5/+9fzcpp7b9g4kzIitjYOdM4uXlLQTSyOCPMuqi8OiEefsHbHFzcQj++fX335eN71WWTmt6hmMTOwdXCycMnBDSJAUSD+CjWxRQ0GHBw86Sxc3AyMDOzMIBoEB8kDlfEzsk1mYOLByjPCnQAIwOIBvFB4iB55rsfmVS4+QV7QNYwMTNDHApUyMTExPDv/z+5Feu3L2UkJpwAAgwA244u+I9CleAAAAAASUVORK5CYII='); + /* background-image: url(images/dropbox-asc-hovered.png); */ +} +.tablesorter-dropbox .tablesorter-headerSortDown i.tablesorter-icon, +.tablesorter-dropbox .tablesorter-headerDesc i.tablesorter-icon { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNpi/P//PwMhwBLdtVGFhZ3zNhMzC4bkv79/GP78/K7KCDIpZ9mVw+xcfDaMTExwBf///WP4+e3TkSlROrZg7UxMLLns3HxnmFnZmGGK/v7+9ff3j2+5YHkQMSlC48Kv719m/f//D2IKkAbxQeJwRSDw4/OHmr+/fr0DqmAA0SA+TA6uaEq0zjugG+r//vkFcks9iA/3HbJvvn18O+vf379yP758mMXAoAAXZyQmnAACDADX316BiTFbMQAAAABJRU5ErkJggg=='); + /* background-image: url(images/dropbox-desc.png); */ +} +.tablesorter-dropbox .tablesorter-headerSortDown:hover i.tablesorter-icon, +.tablesorter-dropbox .tablesorter-headerDesc:hover i.tablesorter-icon { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALNJREFUeNpi/P//PwMhwBJf3uP879e3PUzMzBiS//7+ZWBi43JhBJmU2z7nIzMzEx8jIyNcAUj8799/nyZXpvCzgARYuXjTWBkZVjCzIEz7++cvw+//DGkgNiPMTWVT1l5hZvynDTINbMp/pqtdOcE6IDkmmM5fv3/5//v37z9QBQOIBvFhcnBFEwoj7/5jZFnz9+8fBhAN4sN9h+ybH9++JrGxscr/+vE1CVmckZhwAggwANvlUyq5Dd1wAAAAAElFTkSuQmCC'); + /* background-image: url(images/dropbox-desc-hovered.png); */ +} +.tablesorter-dropbox thead .sorter-false { + cursor: default; +} + +.tablesorter-dropbox thead .sorter-false i.tablesorter-icon, +.tablesorter-dropbox thead .sorter-false:hover i.tablesorter-icon { + background-image: none; + padding: 4px; +} + +/* tbody */ +.tablesorter-dropbox td { + padding: 5px 6px; + line-height: 32px; + color: #555; + text-align: left; + border-top: 1px solid #edf1f5; + border-bottom: 1px solid #edf1f5; +} + +/* hovered row colors */ +.tablesorter-dropbox tbody > tr.hover > td, +.tablesorter-dropbox tbody > tr:hover > td, +.tablesorter-dropbox tbody > tr.even:hover > td, +.tablesorter-dropbox tbody > tr.odd:hover > td { + background-color: rgba(230, 245, 255, 0.3); + border-right: 0; + border-left: 0; + border-color: #c6d8e4; + /* trick to do border-top and bottom colors */ + border-style: double; +} + +/* table processing indicator */ +.tablesorter-dropbox .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-dropbox tr.odd > td { +} +.tablesorter-dropbox tr.even > td { +} + +/* Column Widget - column sort colors */ +.tablesorter-dropbox td.primary, +.tablesorter-dropbox tr.odd td.primary { +} +.tablesorter-dropbox tr.even td.primary { +} +.tablesorter-dropbox td.secondary, +.tablesorter-dropbox tr.odd td.secondary { +} +.tablesorter-dropbox tr.even td.secondary { +} +.tablesorter-dropbox td.tertiary, +.tablesorter-dropbox tr.odd td.tertiary { +} +.tablesorter-dropbox tr.even td.tertiary { +} + +/* caption */ +caption { + background-color: #fff; +} + +/* Filter Widget */ +.tablesorter-dropbox .tablesorter-filter-row { + background-color: #fff; +} +.tablesorter-dropbox .tablesorter-filter-row td { + background-color: #fff; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-dropbox .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} + +/* hidden filter row */ +.tablesorter-dropbox .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-dropbox .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} + +/* filters */ +.tablesorter-dropbox input.tablesorter-filter, +.tablesorter-dropbox select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.green.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.green.css new file mode 100644 index 000000000..32a0f3c6f --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.green.css @@ -0,0 +1,212 @@ +/************* + Green Theme + *************/ +/* overall */ +.tablesorter-green { + width: 100%; + text-align: left; + border-spacing: 0; + border: #cdcdcd 1px solid; + border-width: 1px 0 0 1px; +} +.tablesorter-green th, +.tablesorter-green td { + font: 12px/18px Arial, Sans-serif; + border: #cdcdcd 1px solid; + border-width: 0 1px 1px 0; +} + +/* header */ +.tablesorter-green thead tr .tablesorter-header, +.tablesorter-green tfoot tr { + background-position: center center; + background-repeat: repeat-x; + background-image: url(data:image/gif;base64,R0lGODlhAQBkAOYAAN/e39XU1fX19tTU1eXm5uTl5ePk5OLj4+Hi4vX29fT19PP08/Lz8vHy8fDx8O/w7+7v7uzt7Orr6ufo5/T08/Pz8ufn5uLi4eDg39/f3t3d3Nzc29HR0NDQz8/Pzuvq6urp6eno6Ojn5+fm5tfW1tbV1dTT09PS0tLR0dHQ0NDPz/f39/b29vX19fT09PPz8/Ly8vHx8e/v7+7u7u3t7ezs7Ovr6+rq6unp6ejo6Ofn5+bm5uXl5eTk5OPj4+Li4uHh4eDg4N/f397e3t3d3dzc3Nvb29ra2tnZ2djY2NfX19XV1dPT09LS0tHR0dDQ0M/Pz8rKysXFxf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFMALAAAAAABAGQAAAdegCsrLC0tLi+ILi6FCSwsCS0KkhQVDA0OMjM0NTYfICEiIzw9P0AYGUQaG0ZHSEoDTU9Qs08pTk1MSyRJR0VDQT8+PTw7Ojg3NTMyMTAvi4WOhC0vMTI1OT9GTlFSgQA7); + /* background-image: url(images/green-header.gif); */ +} +.tablesorter-green th, +.tablesorter-green thead td { + font-weight: bold; + border-right: #cdcdcd 1px solid; + border-collapse: collapse; + padding: 6px; +} +.tablesorter-green .header, +.tablesorter-green .tablesorter-header-inner { + background-position: 5px center; + background-repeat: no-repeat; + background-image: url(data:image/gif;base64,R0lGODlhEAAQAOYAAA5NDBBYDlWWUzRUM5DVjp7inJ/fnQ1ECiCsGhyYFxqKFRFdDhBXDQxCCiO8HSK2HCCqGh2aGByUFxuPFhqNFhmHFRZ2EhVvERRpEBBVDSS8HiGyHB+mGh6fGRuTFxiAFBd5Eww/Cgs5CRp7Fiu+JRx8GCy/JjHAKyynKCuhJzXCMDbCMDnDMyNuHz3EODy9N0LFPSl7JkvIRjycOFDKS1LKTVPLT1XLUFTCT17OWTBkLmbQYnDTbHXVcXnWdoXago/djGmUZ112XCJEIEdjRf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEUALAAAAAAQABAAAAdlgEWCg4SFhoIvh4cVLECKhCMeJjwFj0UlEwgaMD4Gii0WFAkRHQ47BIY6IQAZDAwBCyAPOJa1toRBGBAwNTY3OT0/AoZCDQoOKi4yNDOKRCIfGycrKZYDBxIkKLZDFxy3RTHgloEAOw==); + /* background-image: url(images/green-unsorted.gif); */ + border-collapse: collapse; + white-space: normal; + cursor: pointer; +} +.tablesorter-green thead .headerSortUp .tablesorter-header-inner, +.tablesorter-green thead .tablesorter-headerSortUp .tablesorter-header-inner, +.tablesorter-green thead .tablesorter-headerAsc .tablesorter-header-inner { + background-image: url(data:image/gif;base64,R0lGODlhEAAQANUAAA5NDBBYDpDVjp7inJ/fnSCsGhyYFxFdDhBXDSO8HSK2HB2aGBuPFhqNFhmHFRZ2EhBVDSS8Hh6fGRuTFxd5Eww/Chp7Fhx8GCy/JjnDMyNuHzy9N0LFPVTCTzBkLmbQYnDTbHnWdo/djP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACMALAAAAAAQABAAAAY4wJFwSCwaj8ikcslMbpojR0bEtEwwoIHywihEOCECUvNoGBaSxEdg9FQAEAQicKAoOtC8fs8fBgEAOw==) + /* background-image: url(images/green-asc.gif); */ +} +.tablesorter-green thead .headerSortDown .tablesorter-header-inner, +.tablesorter-green thead .tablesorter-headerSortDown .tablesorter-header-inner, +.tablesorter-green thead .tablesorter-headerDesc .tablesorter-header-inner { + background-image: url(data:image/gif;base64,R0lGODlhEAAQANUAAFWWUzRUMw1EChqKFQxCCiO8HSCqGhyUFxVvERRpECGyHB+mGhiAFAs5CSu+JTHAKyynKCuhJzXCMDbCMD3EOELFPSl7JkvIRjycOFDKS1LKTVPLT1XLUF7OWXXVcYXagmmUZ112XCJEIEdjRf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACQALAAAAAAQABAAAAY4QJJwSCwaj8ikcskkghKGimbD6Xg+AGOIMChIKJcMBjlqMBSPSUQZEBwcEKYIsWiSLPa8fs9HBgEAOw==) + /* background-image: url(images/green-desc.gif); */ +} +.tablesorter-green th.tablesorter-header .tablesorter-header-inner, +.tablesorter-green td.tablesorter-header .tablesorter-header-inner { + padding-left: 23px; +} +.tablesorter-green thead .tablesorter-header.sorter-false .tablesorter-header-inner { + background-image: none; + cursor: default; + padding-left: 6px; +} + +/* tfoot */ +.tablesorter-green tbody td, +.tablesorter-green tfoot th { + padding: 6px; + vertical-align: top; +} + +/* tbody */ +.tablesorter-green td { + color: #3d3d3d; + padding: 6px; +} + +/* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ +.tablesorter-green tbody > tr.hover > td, +.tablesorter-green tbody > tr:hover > td, +.tablesorter-green tbody > tr:hover + tr.tablesorter-childRow > td, +.tablesorter-green tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, +.tablesorter-green tbody > tr.even.hover > td, +.tablesorter-green tbody > tr.even:hover > td, +.tablesorter-green tbody > tr.even:hover + tr.tablesorter-childRow > td, +.tablesorter-green tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + background-color: #d9d9d9; +} +.tablesorter-green tbody > tr.odd.hover > td, +.tablesorter-green tbody > tr.odd:hover > td, +.tablesorter-green tbody > tr.odd:hover + tr.tablesorter-childRow > td, +.tablesorter-green tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + background-color: #bfbfbf; +} + +/* table processing indicator */ +.tablesorter-green .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-green tr.odd > td { + background-color: #ebfaeb; +} +.tablesorter-green tr.even > td { + background-color: #fff; +} + +/* Column Widget - column sort colors */ +.tablesorter-green td.primary, +.tablesorter-green tr.odd td.primary { + background-color: #99e6a6; +} +.tablesorter-green tr.even td.primary { + background-color: #c2f0c9; +} +.tablesorter-green td.secondary, +.tablesorter-green tr.odd td.secondary { + background-color: #c2f0c9; +} +.tablesorter-green tr.even td.secondary { + background-color: #d6f5db; +} +.tablesorter-green td.tertiary, +.tablesorter-green tr.odd td.tertiary { + background-color: #d6f5db; +} +.tablesorter-green tr.even td.tertiary { + background-color: #ebfaed; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-green .tablesorter-filter-row { + background-color: #eee; +} +.tablesorter-green .tablesorter-filter-row td { + background-color: #eee; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-green .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-green .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-green .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-green input.tablesorter-filter, +.tablesorter-green select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.grey.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.grey.css new file mode 100644 index 000000000..fdb3d9b0d --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.grey.css @@ -0,0 +1,252 @@ +/************* + Grey Theme + *************/ +/* overall */ +.tablesorter-grey { + width: 100%; + margin: 10px 0 15px; + text-align: left; + border-spacing: 0; + border-left: #555 1px solid; +} + +/* header */ +.tablesorter-grey th, +.tablesorter-grey thead td { + font: bold 12px/18px Arial, Sans-serif; + color: #c8c8c8; + background-color: #3c3c3c; + background-image: -moz-linear-gradient(top, #555, #3c3c3c); + background-image: -ms-linear-gradient(top, #555, #3c3c3c); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555), to(#3c3c3c)); + background-image: -webkit-linear-gradient(top, #555, #3c3c3c); + background-image: -o-linear-gradient(top, #555, #3c3c3c); + background-image: linear-gradient(to bottom, #555,#3c3c3c); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#555555', endColorstr='#3c3c3c',GradientType=0 ); + background-repeat: repeat-x; + border-right: #555 1px solid; + text-shadow: 0 1px 0 rgba(128, 128, 128, 0.7); + -webkit-box-shadow: inset 0 1px 0 #222; + -moz-box-shadow: inset 0 1px 0 #222; + box-shadow: inset 0 1px 0 #222; + padding: 4px; +} +.tablesorter-grey .tablesorter-header-inner, +.tablesorter-grey .tablesorter-header-inner { + position: relative; + padding: 4px 15px 4px 4px; +} +.tablesorter-grey .header, +.tablesorter-grey .tablesorter-header { + cursor: pointer; +} +.tablesorter-grey .header i, +.tablesorter-grey .tablesorter-header i.tablesorter-icon { + width: 18px; + height: 10px; + position: absolute; + right: 2px; + top: 50%; + margin-top: -10px; + /* white (unsorted) double arrow */ + background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); + background-repeat: no-repeat; + background-position: center right; + padding: 4px; + white-space: normal; +} +.tablesorter-grey th.headerSortUp, +.tablesorter-grey th.tablesorter-headerSortUp, +.tablesorter-grey th.headerSortDown, +.tablesorter-grey th.tablesorter-headerSortDown { + color: #ddd; + background-color: #135185; + background-image: -moz-linear-gradient(top, #195c93, #0e4776); + background-image: -ms-linear-gradient(top, #195c93, #0e4776); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#195c93), to(#0e4776)); + background-image: -webkit-linear-gradient(top, #195c93, #0e4776); + background-image: -o-linear-gradient(top, #195c93, #0e4776); + background-image: linear-gradient(to bottom, #195c93, #0e4776); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#195c93', endColorstr='#0e4776',GradientType=0 ); +} +.tablesorter-grey .headerSortUp i.tablesorter-icon, +.tablesorter-grey .tablesorter-headerSortUp i.tablesorter-icon, +.tablesorter-grey .tablesorter-headerAsc i.tablesorter-icon { + /* white asc arrow */ + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); +} +.tablesorter-grey .headerSortDown i.tablesorter-icon, +.tablesorter-grey .tablesorter-headerSortDown i.tablesorter-icon, +.tablesorter-grey .tablesorter-headerDesc i.tablesorter-icon { + /* white desc arrow */ + background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); +} +.tablesorter-grey thead .sorter-false { + cursor: default; +} +.tablesorter-grey thead .sorter-false i.tablesorter-icon { + background-image: none; + padding: 4px; +} + +/* tfoot */ +.tablesorter-grey tbody td, +.tablesorter-grey tfoot th, +.tablesorter-grey tfoot td { + padding: 4px; + vertical-align: top; + border-right: #555 1px solid; +} +.tablesorter-grey tfoot th, +.tablesorter-grey tfoot td { + padding: 8px; +} + +/* tbody */ +.tablesorter-grey td { + color: #eee; + background-color: #6d6d6d; + padding: 4px; + vertical-align: top; +} + +/* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ +.tablesorter-grey tbody > tr.hover > td, +.tablesorter-grey tbody > tr:hover > td, +.tablesorter-grey tbody > tr:hover + tr.tablesorter-childRow > td, +.tablesorter-grey tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, +.tablesorter-grey tbody > tr.even.hover > td, +.tablesorter-grey tbody > tr.even:hover > td, +.tablesorter-grey tbody > tr.even:hover + tr.tablesorter-childRow > td, +.tablesorter-grey tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + background-color: #134b78; +} +.tablesorter-grey tbody > tr.odd.hover > td, +.tablesorter-grey tbody > tr.odd:hover > td, +.tablesorter-grey tbody > tr.odd:hover + tr.tablesorter-childRow > td, +.tablesorter-grey tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + background-color: #134b78; +} + +/* table processing indicator */ +.tablesorter-grey .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-grey tbody tr.odd > td { + background-color: #5e5e5e; +} +.tablesorter-grey tbody tr.even > td { + background-color: #6d6d6d; +} + +/* Column Widget - column sort colors */ +.tablesorter-grey td.primary, +.tablesorter-grey tr.odd td.primary { + color: #ddd; + background-color: #165388; +} +.tablesorter-grey tr.even td.primary { + color: #ddd; + background-color: #195c93; +} +.tablesorter-grey td.secondary, +.tablesorter-grey tr.odd td.secondary { + color: #ddd; + background-color: #185C9A; +} +.tablesorter-grey tr.even td.secondary { + color: #ddd; + background-color: #1D67A5; +} +.tablesorter-grey td.tertiary, +.tablesorter-grey tr.odd td.tertiary { + color: #ddd; + background-color: #1B67AD; +} +.tablesorter-grey tr.even td.tertiary { + color: #ddd; + background-color: #2073B7; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-grey .tablesorter-filter-row { + background-color: #3c3c3c; +} +.tablesorter-grey .tablesorter-filter-row td { + background-color: #3c3c3c; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-grey .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-grey .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-grey .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-grey input.tablesorter-filter, +.tablesorter-grey select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #6d6d6d; + border: 1px solid #555; + color: #ddd; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.ice.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.ice.css new file mode 100644 index 000000000..0b406dece --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.ice.css @@ -0,0 +1,212 @@ +/************* + Ice Theme (by thezoggy) + *************/ +/* overall */ +.tablesorter-ice { + width: 100%; + background-color: #fff; + margin: 10px 0 15px; + text-align: left; + border-spacing: 0; + border: #ccc 1px solid; + border-width: 1px 0 0 1px; +} +.tablesorter-ice th, +.tablesorter-ice td { + border: #ccc 1px solid; + border-width: 0 1px 1px 0; +} + +/* header */ +.tablesorter-ice th, +.tablesorter-ice thead td { + font: 12px/18px Arial, Sans-serif; + color: #555; + background-color: #f6f8f9; + border-collapse: collapse; + padding: 4px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); +} +.tablesorter-ice tbody td, +.tablesorter-ice tfoot th, +.tablesorter-ice tfoot td { + padding: 4px; + vertical-align: top; +} +.tablesorter-ice .header, +.tablesorter-ice .tablesorter-header { + background-color: #f6f8f9; + background-position: center right; + background-repeat: no-repeat; + background-image: url(data:image/gif;base64,R0lGODlhDAAMAMQAAAJEjAJCiwJBigJAiANFjgNGjgNEjQRIkQRHkANIkAVMlAVQmAZWnQZUnAdYoAhdpAhZoAlhqQlepQliqQppsApmrQxutgtutQtutAxwtwxwtg1yug1zugxtsw1yuP8A/yH5BAEAAB8ALAAAAAAMAAwAAAUx4Cd+3GiOW4ado2d9VMVm1xg9ptadTsP+QNZEcjoQTBDGCAFgLRSfQgCYMAiCn8EvBAA7); + /* background-image: url(images/ice-unsorted.gif) */ + padding: 4px 20px 4px 4px; + white-space: normal; + cursor: pointer; +} +.tablesorter-ice .headerSortUp, +.tablesorter-ice .tablesorter-headerSortUp, +.tablesorter-ice .tablesorter-headerAsc { + color: #333; + background-color: #ebedee; + background-position: center right; + background-repeat: no-repeat; + background-image: url(data:image/gif;base64,R0lGODlhDAAMANUAAAJCiwNHkANFjgNEjQRIkQNJkQRMlARKkwRKkgVPlwZSmgdaogdYnwhfpghcowlhqgliqglgqAlgpwljqwporwpmrQplrAtsswtqsgtrsgtqsQxttAtvtQtttAxyuQxwtwxxtwxvtg10uw1zuQ1xuP8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACUALAAAAAAMAAwAAAY6wJKwJBoahyNQ6Dj0fDoZCpPEuWgqk4jxs8FQLI+Gg8Esm5kQydFQMC7IwkOAqUiUCAIzIjA4lwBlQQA7); + /* background-image: url(images/ice-desc.gif) */ +} +.tablesorter-ice .headerSortDown, +.tablesorter-ice .tablesorter-headerSortDown, +.tablesorter-ice .tablesorter-headerDesc { + color: #333; + background-color: #ebedee; + background-position: center right; + background-repeat: no-repeat; + background-image: url(data:image/gif;base64,R0lGODlhDAAMANUAAAE/iAJBigNFjgNEjQNFjQNDiwRHkQRHjwNHjwROlgRMlQRMlARJkgRKkgZQmAVPlgZWnQZSmgZRmAdXoAdXnwdUnAdbogdZoQhbowlhqAlepglkrAliqQtstAtqsQxyugxyuQxwuAxxuAxxtwxwtgxvtQ10vA12vA10u/8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACkALAAAAAAMAAwAAAY6wJQwdRoah6bP6DhEiVIdDxNEGm4yxlDpiJkwv2AmR2OhVCSJBsJ4gUQeCwOB6VAwBAXwYRAIpwBfQQA7); + /* background-image: url(images/ice-asc.gif); */ +} +.tablesorter-ice thead .sorter-false { + background-image: none; + cursor: default; + padding: 4px; +} + +/* tfoot */ +.tablesorter-ice tfoot .tablesorter-headerSortUp, +.tablesorter-ice tfoot .tablesorter-headerSortDown, +.tablesorter-ice tfoot .tablesorter-headerAsc, +.tablesorter-ice tfoot .tablesorter-headerDesc { + background-color: #ebedee; +} + +/* tbody */ +.tablesorter-ice td { + color: #333; +} + +/* hovered row colors */ +.tablesorter-ice tbody > tr.hover > td, +.tablesorter-ice tbody > tr:hover > td, +.tablesorter-ice tbody > tr.even:hover > td, +.tablesorter-ice tbody > tr.odd:hover > td { + background-color: #ebf2fa; +} + +/* table processing indicator */ +.tablesorter-ice .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-ice tr.odd > td { + background-color: #dfdfdf; +} +.tablesorter-ice tr.even > td { + background-color: #efefef; +} + +/* Column Widget - column sort colors */ +.tablesorter-ice td.primary, +.tablesorter-ice tr.odd td.primary { + background-color: #9ae5e5; +} +.tablesorter-ice tr.even td.primary { + background-color: #c2f0f0; +} +.tablesorter-ice td.secondary, +.tablesorter-ice tr.odd td.secondary { + background-color: #c2f0f0; +} +.tablesorter-ice tr.even td.secondary { + background-color: #d5f5f5; +} +.tablesorter-ice td.tertiary, +.tablesorter-ice tr.odd td.tertiary { + background-color: #d5f5f5; +} +.tablesorter-ice tr.even td.tertiary { + background-color: #ebfafa; +} + +/* sticky headers */ +.tablesorter-ice.containsStickyHeaders thead tr:nth-child(1) th, +.tablesorter-ice.containsStickyHeaders thead tr:nth-child(1) td { + border-top: #ccc 1px solid; +} + +/* caption */ +caption { + background-color: #fff; +} + +/* filter widget */ +.tablesorter-ice .tablesorter-filter-row { + background-color: #eee; +} +.tablesorter-ice .tablesorter-filter-row td { + background-color: #eee; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-ice .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-ice .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-ice .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-ice input.tablesorter-filter, +.tablesorter-ice select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.jui.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.jui.css new file mode 100644 index 000000000..aa1309b4d --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.jui.css @@ -0,0 +1,164 @@ +/************* + jQuery UI Theme + *************/ + /* overall */ +.tablesorter-jui { + width: 100%; + border-collapse: separate; + border-spacing: 2px; /* adjust spacing between table cells */ + margin: 10px 0 15px; + padding: 5px; + font-size: 0.8em; +} + +/* header */ +.tablesorter-jui thead th, +.tablesorter-jui thead td, +.tablesorter-jui tfoot th, +.tablesorter-jui tfoot td { + position: relative; + background-repeat: no-repeat; + background-position: right center; + /* UI hover and active states make the font normal and the table resizes, this fixes it */ + font-weight: bold !important; + border-width: 1px !important; + text-align: left; + padding: 8px; /* wider than the icon */ +} +.tablesorter-jui .header, +.tablesorter-jui .tablesorter-header { + cursor: pointer; + white-space: normal; +} +.tablesorter-jui .tablesorter-header-inner { + padding-right: 20px; +} +.tablesorter-jui thead tr th .ui-icon { + position: absolute; + right: 3px; + top: 50%; + margin-top: -8px; /* half the icon height; older IE doesn't like this */ +} + +.tablesorter-jui thead .sorter-false { + cursor: default; +} +.tablesorter-jui thead tr .sorter-false .ui-icon { + display: none; +} + +/* tfoot */ +.tablesorter-jui tfoot th, +.tablesorter-jui tfoot td { + font-weight: normal !important; + font-size: .9em; + padding: 2px; +} + +/* tbody */ +.tablesorter-jui td { + padding: 4px; + vertical-align: top; +} + +/* hovered row colors */ +.tablesorter-jui tbody > tr.hover > td, +.tablesorter-jui tbody > tr:hover > td { + opacity: 0.7; + filter: alpha(opacity=70); +} + +/* table processing indicator */ +.tablesorter-jui .tablesorter-processing .tablesorter-header-inner { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important; +} + +/* Zebra widget - This allows you to use ui-state-default as the zebra stripe color */ +.tablesorter-jui tr.ui-state-default { + background-image: none; + font-weight: normal; +} + +/* processing background color */ +.tablesorter-jui .tablesorter-processing { + background-color: #ddd; /* older browsers that don't support rgba */ + background-color: rgba(255,255,255,0.8); +} + +/* caption */ +.tablesorter-jui caption { + border: 0; +} + +/* filter widget */ +.tablesorter-jui .tablesorter-filter-row { + background-color: transparent; +} +.tablesorter-jui .tablesorter-filter-row td { + background-color: transparent; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-jui .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-jui .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-jui .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-jui input.tablesorter-filter, +.tablesorter-jui select.tablesorter-filter { + width: 98%; + height: auto; + margin: 0; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.less b/vendor/FHC-vendor/jquery-tablesorter/css/theme.less new file mode 100644 index 000000000..c0a4d7922 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.less @@ -0,0 +1,329 @@ +/* Tablesorter Custom LESS Theme by Rob Garrison + + To create your own theme, modify the code below and run it through + a LESS compiler, like this one: http://leafo.net/lessphp/editor.html + or download less.js from http://lesscss.org/ + +Test out these custom less files live + Basic Theme : http://codepen.io/Mottie/pen/eqBbn + Bootstrap : http://codepen.io/Mottie/pen/Ltzpi + Metro Style : http://codepen.io/Mottie/pen/gCslk + + */ + +/*** theme ***/ +@theme : tablesorter-custom; + +/*** fonts ***/ +@tableHeaderFont : 11px 'trebuchet ms', verdana, arial; +@tableBodyFont : 11px 'trebuchet ms', verdana, arial; + +/*** color definitions ***/ +/* for best results, only change the hue (120), + leave the saturation (60%) and luminosity (75%) alone + pick the color from here: http://hslpicker.com/#99E699 */ +@headerBackground : hsl(120, 60%, 75%); +@borderAndBackground : #cdcdcd; +@overallBorder : @borderAndBackground 1px solid; +@headerTextColor : #000; + +@bodyBackground : #fff; +@bodyTextColor : #000; + +@headerAsc : darken(spin(@headerBackground, 5), 10%); /* darken(@headerBackground, 10%); */ +@headerDesc : lighten(spin(@headerBackground, -5), 10%); /* desaturate(@headerAsc, 5%); */ + +@captionBackground : #fff; /* it might be best to match the document body background color here */ +@errorBackground : #e6bf99; /* ajax error message (added to thead) */ + +@filterCellBackground : #eee; +@filterElementTextColor: #333; +@filterElementBkgd : #fff; +@filterElementBorder : 1px solid #bbb; +@filterTransitionTime : 0.1s; +@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */ + +@overallPadding : 4px; +/* 20px should be slightly wider than the icon width to avoid overlap */ +@headerPadding : 4px 20px 4px 4px; + +/* url(icons/loading.gif); */ +@processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs='); + +/* zebra striping */ +.allRows { + background-color: @bodyBackground; + color: @bodyTextColor; +} +.evenRows { + background-color: lighten(@headerBackground, 40%); + color: @bodyTextColor; +} +.oddRows { + background-color: lighten(@headerBackground, 20%); +} + +/* hovered rows */ +.oddHovered { + background-color: desaturate(@headerBackground, 60%); + color: @bodyTextColor; +} +.evenHovered { + background-color: lighten( desaturate(@headerBackground, 60%), 10% ); + color: @bodyTextColor; +} + +/* Columns widget */ +@primaryOdd : spin(@headerBackground, 10); /* saturate( darken( desaturate(@headerBackground, 10%), 10% ), 30%); */ +@primaryEven : lighten( @primaryOdd, 10% ); +@secondaryOdd : @primaryEven; +@secondaryEven : lighten( @primaryEven, 5% ); +@tertiaryOdd : @secondaryEven; +@tertiaryEven : lighten( @secondaryEven, 5% ); + +/* Filter widget transition */ +.filterWidgetTransition { + -webkit-transition: line-height @filterTransitionTime ease; + -moz-transition: line-height @filterTransitionTime ease; + -o-transition: line-height @filterTransitionTime ease; + transition: line-height @filterTransitionTime ease; +} + +/*** Arrows ***/ +@arrowPosition : right 5px center; + +/* black */ +@unsortedBlack : url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); +@sortAscBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); +@sortDescBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + +/* white */ +@unsortedWhite : url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); +@sortAscWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); +@sortDescWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + +/* automatically choose the correct arrow/text color */ +.headerText (@a) when (lightness(@a) >= 50%) { + color: @headerTextColor; +} +.headerText (@a) when (lightness(@a) < 50%) { + color: lighten(@headerTextColor, 90%); +} +.unsorted (@a) when (lightness(@a) >= 50%) { + background-image: @unsortedBlack; +} +.unsorted (@a) when (lightness(@a) < 50%) { + background-image: @unsortedWhite; +} +.sortAsc (@a) when (lightness(@a) >= 50%) { + background-image: @sortAscBlack; +} +.sortAsc (@a) when (lightness(@a) < 50%) { + background-image: @sortAscWhite; +} +.sortDesc (@a) when (lightness(@a) >= 50%) { + background-image: @sortDescBlack; +} +.sortDesc (@a) when (lightness(@a) < 50%) { + background-image: @sortDescWhite; +} + +/* variable theme name - requires less.js 1.3+; + or just replace (!".@{theme}") with the contents of @theme + */ +.@{theme} { + font: @tableBodyFont; + background-color: @borderAndBackground; + margin: 10px 0 15px; + width: 100%; + text-align: left; + border-spacing: 0; + border: @overallBorder; + border-width: 1px 0 0 1px; + + th, td { + border: @overallBorder; + border-width: 0 1px 1px 0; + } + + /* style th's outside of the thead */ + th, thead td { + font: @tableHeaderFont; + font-weight: bold; + background-color: @headerBackground; + .headerText(@headerBackground); + border-collapse: collapse; + padding: @overallPadding; + } + + tbody td, tfoot th, tfoot td { + padding: @overallPadding; + vertical-align: top; + } + + /* style header */ + .tablesorter-header { + .unsorted(@headerBackground); + background-repeat: no-repeat; + background-position: @arrowPosition; + padding: @headerPadding; + cursor: pointer; + } + + .tablesorter-header.sorter-false { + background-image: none; + cursor: default; + padding: @overallPadding; + } + + .tablesorter-headerAsc { + background-color: @headerAsc; + .sortAsc(@headerBackground); + } + + .tablesorter-headerDesc { + background-color: @headerDesc; + .sortDesc(@headerBackground); + } + + /* tfoot */ + tfoot .tablesorter-headerAsc, + tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; + } + + /* optional disabled input styling */ + .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; + } + + /* body */ + tbody { + + td { + .allRows; + padding: @overallPadding; + vertical-align: top; + } + + /* Zebra Widget - row alternating colors */ + tr.odd > td { + .oddRows; + } + tr.even > td { + .evenRows; + } + + } + + /* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ + tbody > tr.hover td, + tbody > tr:hover td, + tbody > tr:hover + tr.tablesorter-childRow > td, + tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, + tbody > tr.even.hover > td, + tbody > tr.even:hover > td, + tbody > tr.even:hover + tr.tablesorter-childRow > td, + tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .evenHovered; + } + tbody > tr.odd.hover > td, + tbody > tr.odd:hover > td, + tbody > tr.odd:hover + tr.tablesorter-childRow > td, + tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .oddHovered; + } + + /* table processing indicator - indeterminate spinner */ + .tablesorter-processing { + background-image: @processingIcon; + background-position: center center; + background-repeat: no-repeat; + } + + /* Column Widget - column sort colors */ + tr.odd td.primary { + background-color: @primaryOdd; + } + td.primary, tr.even td.primary { + background-color: @primaryEven; + } + tr.odd td.secondary { + background-color: @secondaryOdd; + } + td.secondary, tr.even td.secondary { + background-color: @secondaryEven; + } + tr.odd td.tertiary { + background-color: @tertiaryOdd; + } + td.tertiary, tr.even td.tertiary { + background-color: @tertiaryEven; + } + + /* caption (non-theme matching) */ + caption { + background-color: @captionBackground ; + } + + /* filter widget */ + .tablesorter-filter-row input, + .tablesorter-filter-row select { + width: 98%; + height: auto; + margin: 0; + padding: @overallPadding; + color: @filterElementTextColor; + background-color: @filterElementBkgd; + border: @filterElementBorder; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + .filterWidgetTransition; + } + .tablesorter-filter-row { + background-color: @filterCellBackground; + } + .tablesorter-filter-row td { + text-align: center; + background-color: @filterCellBackground; + line-height: normal; + text-align: center; /* center the input */ + .filterWidgetTransition; + } + /* hidden filter row */ + .tablesorter-filter-row.hideme td { + padding: @filterRowHiddenHeight / 2; + margin: 0; + line-height: 0; + cursor: pointer; + } + .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); + } + /* rows hidden by filtering (needed for child rows) */ + .filtered { + display: none; + } + + /* ajax error row */ + .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: @errorBackground; + } + +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css b/vendor/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css new file mode 100644 index 000000000..461c2db45 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css @@ -0,0 +1,197 @@ +/************* +Metro Dark Theme +*************/ +/* overall */ +.tablesorter-metro-dark { + width: 100%; + font: 12px/18px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif; + color: #000; + background-color: #333; + border-spacing: 0; + margin: 10px 0 15px; + text-align: left; +} + +.tablesorter-metro-dark tr.dark-row th, .tablesorter-metro-dark tr.dark-row td, .tablesorter-metro-dark caption.dark-row { + background-color: #222; + color: #fff; + padding: 2px; + text-align: left; + font-size: 14px; +} + +/* header/footer */ +.tablesorter-metro-dark caption, +.tablesorter-metro-dark th, +.tablesorter-metro-dark thead td, +.tablesorter-metro-dark tfoot th, +.tablesorter-metro-dark tfoot td { + font-weight: 300; + font-size: 15px; + color: #ddd; + background-color: #333; + padding: 4px; +} + +.tablesorter-metro-dark .header, +.tablesorter-metro-dark .tablesorter-header { + background-image: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAGFBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u5jNePWAAAACHRSTlMAMxIHKwEgMWD59H4AAABSSURBVAjXY2BgYFJgAAHzYhDJ6igSAKTYBAUTgJSioKAQAwNzoaCguAFDiCAQuDIkgigxBgiA8cJAVCpQt6AgSL+JoKAzA0gjUBsQqBcBCYhFAAE/CV4zeSzxAAAAAElFTkSuQmCC); + background-position: right 5px center; + background-repeat: no-repeat; + cursor: pointer; + white-space: normal; +} +.tablesorter-metro-dark .tablesorter-header-inner { + padding: 0 18px 0 4px; +} +.tablesorter-metro-dark thead .headerSortUp, +.tablesorter-metro-dark thead .tablesorter-headerSortUp, +.tablesorter-metro-dark thead .tablesorter-headerAsc { + background-image: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u5meJAOAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC); +} +.tablesorter-metro-dark thead .headerSortDown, +.tablesorter-metro-dark thead .tablesorter-headerSortDown, +.tablesorter-metro-dark thead .tablesorter-headerDesc { + background-image: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAALVBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7i0NViAAAADnRSTlMAMiweCQITTvDctZZqaTlM310AAABcSURBVAjXY2BgYEtgAAFHERDJqigUAKSYBQUNgFSioKAYAwOLIBA4MASBKFUGQxAlzAAF+94BwWuGKBC1lIFl3rt3Lx0YGCzevWsGSjK9e6cAUlT3HKyW9wADAwDRrBiDy6bKzwAAAABJRU5ErkJggg==); +} +.tablesorter-metro-dark thead .sorter-false { + background-image: none; + cursor: default; + padding: 4px; +} + +/* tbody */ +.tablesorter-metro-dark td { + background-color: #fff; + padding: 4px; + vertical-align: top; +} + +/* hovered row colors */ +.tablesorter-metro-dark tbody > tr.hover > td, +.tablesorter-metro-dark tbody > tr:hover > td, +.tablesorter-metro-dark tbody > tr.even:hover > td, +.tablesorter-metro-dark tbody > tr.odd:hover > td { + background-color: #bbb; + color: #000; +} + +/* table processing indicator */ +.tablesorter-metro-dark .tablesorter-processing { + background-position: center center !important; + background-repeat: no-repeat !important; + /* background-image: url(images/loading.gif) !important; */ + background-image: url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=) !important; +} + +/* pager */ +.tablesorter-metro-dark .tablesorter-pager button { + background-color: #444; + color: #eee; + border: #555 1px solid; + cursor: pointer; +} +.tablesorter-metro-dark .tablesorter-pager button:hover { + background-color: #555; +} + +/* Zebra Widget - row alternating colors */ +.tablesorter-metro-dark tr.odd > td { + background-color: #eee; +} +.tablesorter-metro-dark tr.even > td { + background-color: #fff; +} + +/* Column Widget - column sort colors */ +.tablesorter-metro-dark tr.odd td.primary { + background-color: #bfbfbf; +} +.tablesorter-metro-dark td.primary, +.tablesorter-metro-dark tr.even td.primary { + background-color: #d9d9d9; +} +.tablesorter-metro-dark tr.odd td.secondary { + background-color: #d9d9d9; +} +.tablesorter-metro-dark td.secondary, +.tablesorter-metro-dark tr.even td.secondary { + background-color: #e6e6e6; +} +.tablesorter-metro-dark tr.odd td.tertiary { + background-color: #e6e6e6; +} +.tablesorter-metro-dark td.tertiary, +.tablesorter-metro-dark tr.even td.tertiary { + background-color: #f2f2f2; +} + +/* filter widget */ +.tablesorter-metro-dark .tablesorter-filter-row { + background-color: #eee; +} +.tablesorter-metro-dark .tablesorter-filter-row td { + background-color: #eee; + line-height: normal; + text-align: center; /* center the input */ + -webkit-transition: line-height 0.1s ease; + -moz-transition: line-height 0.1s ease; + -o-transition: line-height 0.1s ease; + transition: line-height 0.1s ease; +} +/* optional disabled input styling */ +.tablesorter-metro-dark .tablesorter-filter-row .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; +} +/* hidden filter row */ +.tablesorter-metro-dark .tablesorter-filter-row.hideme td { + /*** *********************************************** ***/ + /*** change this padding to modify the thickness ***/ + /*** of the closed filter row (height = padding x 2) ***/ + padding: 2px; + /*** *********************************************** ***/ + margin: 0; + line-height: 0; + cursor: pointer; +} +.tablesorter-metro-dark .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); +} +/* filters */ +.tablesorter-metro-dark input.tablesorter-filter, +.tablesorter-metro-dark select.tablesorter-filter { + width: 95%; + height: auto; + margin: 0; + padding: 4px; + background-color: #fff; + border: 1px solid #bbb; + color: #333; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: height 0.1s ease; + -moz-transition: height 0.1s ease; + -o-transition: height 0.1s ease; + transition: height 0.1s ease; +} +/* rows hidden by filtering (needed for child rows) */ +.tablesorter .filtered { + display: none; +} + +/* ajax error row */ +.tablesorter .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: #e6bf99; +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css new file mode 100644 index 000000000..56d2f42eb --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css @@ -0,0 +1 @@ +.dragtable-sortable{list-style-type:none;margin:0;padding:0;-moz-user-select:none;z-index:10}.dragtable-sortable li{margin:0;padding:0;float:left;font-size:1em}.dragtable-sortable table{margin-top:0}.dragtable-sortable td,.dragtable-sortable th{border-left:0}.dragtable-sortable li:first-child td,.dragtable-sortable li:first-child th{border-left:1px solid #CCC}.ui-sortable-helper{opacity:.7;filter:alpha(opacity=70)}.ui-sortable-placeholder{-moz-box-shadow:4px 5px 4px rgba(0,0,0,.2) inset;-webkit-box-shadow:4px 5px 4px rgba(0,0,0,.2) inset;box-shadow:4px 5px 4px rgba(0,0,0,.2) inset;border-bottom:1px solid rgba(0,0,0,.2);border-top:1px solid rgba(0,0,0,.2);visibility:visible!important;background:#EFEFEF}.ui-sortable-placeholder *{opacity:0;visibility:hidden}.table-handle,.table-handle-disabled{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjEzIj48cmVjdCBzdHlsZT0iZmlsbDojMzMzO2ZpbGwtb3BhY2l0eTouODsiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjEiIHk9IjIiLz4JPHJlY3Qgc3R5bGU9ImZpbGw6IzMzMztmaWxsLW9wYWNpdHk6Ljg7IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSIxIiB5PSI0Ii8+CTxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iNiIvPjxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iOCIvPjxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iMTAiLz48L3N2Zz4=);background-repeat:repeat-x;height:13px;margin:0 1px;cursor:move}.table-handle-disabled{opacity:0;cursor:not-allowed}.dragtable-sortable table{margin-bottom:0} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css new file mode 100644 index 000000000..eba8cc043 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css @@ -0,0 +1 @@ +.tablesorter .tablesorter-filter-row td{text-align:center;font-size:.9em;font-weight:400}.tablesorter .ui-slider,.tablesorter input.range{width:90%;margin:2px auto;font-size:.8em}.tablesorter .ui-slider{top:12px}.tablesorter .ui-slider .ui-slider-handle{width:.9em;height:.9em}.tablesorter .ui-datepicker{font-size:.8em}.tablesorter .ui-slider-horizontal{height:.5em}.tablesorter .value-popup:after{content:attr(data-value);position:absolute;bottom:14px;left:-7px;min-width:18px;height:12px;background-color:#444;background-image:-webkit-gradient(linear,left top,left bottom,from(#444),to(#999));background-image:-webkit-linear-gradient(top,#444,#999);background-image:-moz-linear-gradient(top,#444,#999);background-image:-o-linear-gradient(top,#444,#999);background-image:linear-gradient(to bottom,#444,#999);-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-box-shadow:0 0 4px 0 #777;box-shadow:0 0 4px 0 #777;border:1px solid #444;color:#fff;font:1em/1.1em Arial,Sans-Serif;padding:1px;text-align:center}.tablesorter .button,.tablesorter .button label{-webkit-border-radius:25px;-moz-border-radius:25px}.tablesorter .value-popup:before{content:"";position:absolute;width:0;height:0;border-top:8px solid #777;border-left:8px solid transparent;border-right:8px solid transparent;top:-8px;left:50%;margin-left:-8px;margin-top:-1px}.tablesorter .dateFrom,.tablesorter .dateTo{width:80px;margin:2px 5px}.tablesorter .button{width:14px;height:14px;background:#fcfff4;background:-webkit-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:-moz-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:-o-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:-ms-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfff4', endColorstr='#b3bead', GradientType=0 );margin:1px 5px 1px 1px;border-radius:25px;-webkit-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);-moz-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);position:relative;top:3px;display:inline-block}.tablesorter .button label{cursor:pointer;position:absolute;width:10px;height:10px;border-radius:25px;left:2px;top:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,1);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,1);box-shadow:inset 0 1px 1px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,1);background:#45484d;background:-webkit-linear-gradient(top,#222 0,#45484d 100%);background:-moz-linear-gradient(top,#222 0,#45484d 100%);background:-o-linear-gradient(top,#222 0,#45484d 100%);background:-ms-linear-gradient(top,#222 0,#45484d 100%);background:linear-gradient(top,#222 0,#45484d 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#222', endColorstr='#45484d', GradientType=0 )}.tablesorter .button label:after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;content:'';position:absolute;width:8px;height:8px;background:#55f;background:-webkit-linear-gradient(top,#aaf 0,#55f 100%);background:-moz-linear-gradient(top,#aaf 0,#55f 100%);background:-o-linear-gradient(top,#aaf 0,#55f 100%);background:-ms-linear-gradient(top,#aaf 0,#55f 100%);background:linear-gradient(top,#aaf 0,#55f 100%);-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;top:1px;left:1px;-webkit-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);-moz-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5)}.tablesorter .button label:hover::after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";filter:alpha(opacity=30);opacity:.3}.tablesorter .button input[type=checkbox]{visibility:hidden}.tablesorter .button input[type=checkbox]:checked+label:after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}.tablesorter .colorpicker{width:30px;height:18px}.tablesorter .ui-spinner-input{width:100px;height:18px}.tablesorter .currentColor,.tablesorter .ui-spinner,.tablesorter input.number{position:relative}.tablesorter .tablesorter-filter-row.hideme td *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif new file mode 100644 index 000000000..730533fa3 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif new file mode 100644 index 000000000..4c3b61020 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif new file mode 100644 index 000000000..5647f6583 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png new file mode 100644 index 000000000..4e161a65e Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png new file mode 100644 index 000000000..fb227a150 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png new file mode 100644 index 000000000..ff64a7d57 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg new file mode 100644 index 000000000..041ec1ded --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png new file mode 100644 index 000000000..bc45223f1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png new file mode 100644 index 000000000..0d6ee1505 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png new file mode 100644 index 000000000..493094204 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png new file mode 100644 index 000000000..0bce65a07 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/first.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/first.png new file mode 100644 index 000000000..6f11fcb08 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/first.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif new file mode 100644 index 000000000..4cfba0950 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif new file mode 100644 index 000000000..4f8817650 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif new file mode 100644 index 000000000..cc746b70a Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif new file mode 100644 index 000000000..0afe2c021 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif new file mode 100644 index 000000000..0961d9aaf Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif new file mode 100644 index 000000000..0330fccaa Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif new file mode 100644 index 000000000..c1afde558 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/last.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/last.png new file mode 100644 index 000000000..720793576 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/last.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif new file mode 100644 index 000000000..72054717b Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png new file mode 100644 index 000000000..f7a781be1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png new file mode 100644 index 000000000..ef5f48e07 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif new file mode 100644 index 000000000..ae274c6c1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png new file mode 100644 index 000000000..653b08342 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png new file mode 100644 index 000000000..63327188b Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png new file mode 100644 index 000000000..ca7c363e3 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/next.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/next.png new file mode 100644 index 000000000..4a2f9d4e4 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/next.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png new file mode 100644 index 000000000..15d1584bd Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif new file mode 100644 index 000000000..2173b0a05 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif new file mode 100644 index 000000000..7109c3ea1 Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif new file mode 100644 index 000000000..9bfc3459c Binary files /dev/null and b/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif differ diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css new file mode 100644 index 000000000..9d87fe3fc --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css @@ -0,0 +1 @@ +.tablesorter-pager{padding:5px}td.tablesorter-pager{background-color:#e6eeee;margin:0}.tablesorter-pager img{vertical-align:middle;margin-right:2px;cursor:pointer}.tablesorter-pager .pagedisplay{padding:0 5px;width:auto;white-space:nowrap;text-align:center}.tablesorter-pager select{margin:0;padding:0}.tablesorter-pager.disabled{display:none}.tablesorter-pager .disabled{opacity:.5;filter:alpha(opacity=50);cursor:default} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less b/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less new file mode 100644 index 000000000..1d712ca2f --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less @@ -0,0 +1,322 @@ +/* Tablesorter Custom Bootstrap LESS Theme by Rob Garrison + +To create your own theme, modify the code below and run it through +a LESS compiler, like this one: http://leafo.net/lessphp/editor.html +or download less.js from http://lesscss.org/ + +Test out these custom less files live + Basic Theme : http://codepen.io/Mottie/pen/eqBbn + Bootstrap : http://codepen.io/Mottie/pen/Ltzpi + Metro Style : http://codepen.io/Mottie/pen/gCslk + +*/ + +/*** theme ***/ +@theme : tablesorter-bootstrap; + +/*** fonts ***/ +@tableHeaderFont : 14px bold Arial, Sans-serif; +@tableBodyFont : 14px "Helvetica Neue", Helvetica, Arial, sans-serif; + +/*** color definitions ***/ +/* for best results, only change the hue (240), + leave the saturation (60%) and luminosity (80%) alone + pick the color from here: http://hslpicker.com/#99E699 */ +@headerBackground : hsl(240, 60%, 80%); +@borderAndBackground : #cdcdcd; +@overallBorder : @borderAndBackground 1px solid; +@headerTextColor : #000; + +@bodyBackground : #fff; +@bodyTextColor : #000; + +@headerAsc : darken(spin(@headerBackground, 5), 10%); /* darken(@headerBackground, 10%); */ +@headerDesc : lighten(spin(@headerBackground, -5), 10%); /* desaturate(@headerAsc, 5%); */ + +@captionBackground : #fff; /* it might be best to match the document body background color here */ +@errorBackground : #e6bf99; /* ajax error message (added to thead) */ + +@filterCellBackground : #eee; +@filterElementTextColor: #333; +@filterElementBkgd : #fff; +@filterElementBorder : 1px solid #bbb; +@filterTransitionTime : 0.1s; +@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */ + +@overallPadding : 4px; +/* 20px should be slightly wider than the icon width to avoid overlap */ +@headerPadding : 4px 20px 4px 4px; +@headerMargin : 0 0 18px; + +/* url(icons/loading.gif); */ +@processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs='); + +/* zebra striping */ +.allRows { + background-color: @bodyBackground; + color: @bodyTextColor; +} +.evenRows { + background-color: lighten(@headerBackground, 35%); +} +.oddRows { + background-color: lighten(@headerBackground, 18%); +} + +/* hovered rows */ +.oddHovered { + background-color: desaturate(@headerBackground, 60%); +} +.evenHovered { + background-color: lighten( desaturate(@headerBackground, 60%), 10% ); +} + +/* Columns widget */ +@primaryOdd : spin(@headerBackground, 10); /* saturate( darken( desaturate(@headerBackground, 10%), 10% ), 30%); */ +@primaryEven : lighten( @primaryOdd, 10% ); +@secondaryOdd : @primaryEven; +@secondaryEven : lighten( @primaryEven, 5% ); +@tertiaryOdd : @secondaryEven; +@tertiaryEven : lighten( @secondaryEven, 5% ); + +/* Filter widget transition */ +.filterWidgetTransition { + -webkit-transition: line-height @filterTransitionTime ease; + -moz-transition: line-height @filterTransitionTime ease; + -o-transition: line-height @filterTransitionTime ease; + transition: line-height @filterTransitionTime ease; +} + +/*** icon block ***/ +.iconPosition { + font-size: 11px; + position: absolute; + right: 2px; + top: 50%; + margin-top: -7px; /* half the icon height; older IE doesn't like this */ + width: 14px; + height: 14px; + background-repeat: no-repeat; + line-height: 14px; +} + +/* black */ +@unsortedBlack : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAMAAADOvxanAAAAVFBMVEUAAABCQkJZWVkZGRnJyckgICAZGRkZGRn8/PweHh4dHR0aGhoaGhpUVFQbGxvQ0NDc3NxMTExSUlIbGxvr6+s4ODhKSkogICAtLS00NDQzMzMnJydSEPrQAAAAGHRSTlMA1ssZRLgdAQbDyisqsZo8QdXUq0r9xPepSRwiAAAAX0lEQVQI13XHSQKAIAwEwQAKxn13Ev7/T2Pu9qmarJKPXIicI4PH4hxaKNrhm2S8bJK5h4YzKHrzJNtK6yYT/TdXzpS5zuYg4MSQYF6i4IHExdw1UVRi05HPrrvT53a+qyMFC9t04gcAAAAASUVORK5CYII=); + +/* white */ +@unsortedWhite : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOBAMAAAALT/umAAAAKlBMVEUAAAD///////////////////////////////////////////////////+Gu8ovAAAADXRSTlMA4EXKBtQqvR0+sxmalc142gAAAFdJREFUCNdjYGDoamAAAjZbMxCVfvd6AgMDd+3du9UMDKx3hWSvMjBwXZww8RYDGuC53NB8h4GB8a617UUGBs7Yu3cjGRhYVO9eVQFKOskKOQApFmUgBwBZ+xXRTttNdAAAAABJRU5ErkJggg==); + +/* automatically choose the correct arrow/text color */ +.headerText (@a) when (lightness(@a) >= 50%) { + color: @headerTextColor; +} +.headerText (@a) when (lightness(@a) < 50%) { + color: lighten(@headerTextColor, 90%); +} +.unsorted (@a) when (lightness(@a) >= 50%) { + background-image: @unsortedBlack; + color: @headerTextColor; +} +.unsorted (@a) when (lightness(@a) < 50%) { + background-image: @unsortedWhite; + color: lighten(@headerTextColor, 90%); +} + +/* variable theme name - requires less.js 1.3+; + or just replace (!".@{theme}") with the contents of @theme +*/ +.@{theme} { + font: @tableBodyFont; + background-color: @borderAndBackground; + width: 100%; + + /* style th's outside of the thead */ + th, thead td { + font: @tableHeaderFont; + font-weight: bold; + background-color: @headerBackground; + .headerText(@headerBackground); + border-collapse: collapse; + margin: @headerMargin; + padding: @overallPadding; + } + + tbody td, tfoot th, tfoot td { + padding: @overallPadding; + vertical-align: top; + } + + /* style header */ + .tablesorter-header { + cursor: pointer; + } + + .tablesorter-header-inner { + position: relative; + padding: @headerPadding; + } + + /* bootstrap uses for icons */ + .tablesorter-header-inner i.tablesorter-icon { + .iconPosition + } + + .tablesorter-header.sorter-false { + background-image: none; + cursor: default; + + } + + .tablesorter-headerAsc { + background-color: @headerAsc; + } + + .tablesorter-headerDesc { + background-color: @headerDesc; + } + + .bootstrap-icon-unsorted { + .unsorted(@headerBackground); + } + + + /* tfoot */ + tfoot .tablesorter-headerAsc, + tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; + } + + /* optional disabled input styling */ + .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; + } + + /* body */ + tbody { + + td { + .allRows; + padding: @overallPadding; + vertical-align: top; + } + + /* Zebra Widget - row alternating colors */ + tr.odd > td { + .oddRows; + } + tr.even > td { + .evenRows; + } + + } + + /* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ + tbody > tr.hover > td, + tbody > tr:hover > td, + tbody > tr:hover + tr.tablesorter-childRow > td, + tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, + tbody > tr.even.hover > td, + tbody > tr.even:hover > td, + tbody > tr.even:hover + tr.tablesorter-childRow > td, + tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .evenHovered; + } + tbody > tr.odd.hover > td, + tbody > tr.odd:hover > td, + tbody > tr.odd:hover + tr.tablesorter-childRow > td, + tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .oddHovered; + } + + /* table processing indicator - indeterminate spinner */ + .tablesorter-processing { + background-image: @processingIcon; + background-position: center center; + background-repeat: no-repeat; + } + + /* Column Widget - column sort colors */ + tr.odd td.primary { + background-color: @primaryOdd; + } + td.primary, tr.even td.primary { + background-color: @primaryEven; + } + tr.odd td.secondary { + background-color: @secondaryOdd; + } + td.secondary, tr.even td.secondary { + background-color: @secondaryEven; + } + tr.odd td.tertiary { + background-color: @tertiaryOdd; + } + td.tertiary, tr.even td.tertiary { + background-color: @tertiaryEven; + } + + /* caption (non-theme matching) */ + caption { + background-color: @captionBackground ; + } + + /* filter widget */ + .tablesorter-filter-row input, + .tablesorter-filter-row select{ + width: 98%; + margin: 0; + padding: @overallPadding; + color: @filterElementTextColor; + background-color: @filterElementBkgd; + border: @filterElementBorder; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + .filterWidgetTransition; + } + .tablesorter-filter-row { + background-color: @filterCellBackground; + } + .tablesorter-filter-row td { + text-align: center; + background-color: @filterCellBackground; + line-height: normal; + text-align: center; /* center the input */ + .filterWidgetTransition; + } + /* hidden filter row */ + .tablesorter-filter-row.hideme td { + padding: @filterRowHiddenHeight / 2; + margin: 0; + line-height: 0; + cursor: pointer; + } + .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); + } + /* rows hidden by filtering (needed for child rows) */ + .filtered { + display: none; + } + + /* ajax error row */ + .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: @errorBackground; + } + +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less b/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less new file mode 100644 index 000000000..62b929264 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less @@ -0,0 +1,357 @@ +/* Tablesorter Custom Metro LESS Theme by Rob Garrison + +To create your own theme, modify the code below and run it through +a LESS compiler, like this one: http://leafo.net/lessphp/editor.html +or download less.js from http://lesscss.org/ + +Test out these custom less files live + Basic Theme : http://codepen.io/Mottie/pen/eqBbn + Bootstrap : http://codepen.io/Mottie/pen/Ltzpi + Metro Style : http://codepen.io/Mottie/pen/gCslk + +*/ + +/*** theme ***/ +@theme : tablesorter-metro; + +/*** fonts ***/ +@tableHeaderFont : 14px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif; +@tableBodyFont : 14px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif; + +/*** color definitions ***/ +/* for best results, only change the hue (120), + leave the saturation (60%) and luminosity (75%) alone + pick the color from here: http://hslpicker.com/#825a2b + + Inspired by http://www.jtable.org/ metro themes: + Blue: hsl(212, 86%, 35%) + Brown hsl(32, 50%, 30%) + Crimson hsl(0, 100%, 38%) + Dark Grey hsl(0, 0%, 27%) + Dark Orange hsl(13, 70%, 51%) + Green hsl(120, 100%, 32%) + Light Gray hsl(0, 0%, 44%) + Pink hsl(297, 100%, 33%) + Purple hsl(257, 51%, 48%) + Red hsl(5, 100%, 40%) + + */ +@headerBackground : hsl(32, 50%, 30%); +@borderAndBackground : #cdcdcd; +@headerTextColor : #eee; + +@bodyBackground : #fff; +@bodyTextColor : #000; + +@captionBackground : #fff; /* it might be best to match the document body background color here */ +@errorBackground : #e6bf99; /* ajax error message (added to thead) */ + +@filterCellBackground : #eee; +@filterElementTextColor: #333; +@filterElementBkgd : #fff; +@filterElementBorder : 1px solid #bbb; +@filterTransitionTime : 0.1s; +@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */ + +@overallPadding : 4px; +/* 20px should be slightly wider than the icon width to avoid overlap */ +@headerPadding : 4px 20px 4px 4px; + +/* url(icons/loading.gif); */ +@processingIcon : url('data:image/gif;base64,R0lGODlhEAAQAPIAAP///1VVVdbW1oCAgFVVVZaWlqurq7a2tiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA=='); + +/* zebra striping */ +.allRows { + background-color: @bodyBackground; + color: @bodyTextColor; +} +.evenRows { + background-color: lighten( desaturate(@headerBackground, 80%), 70%); + color: @bodyTextColor; +} +.oddRows { + background-color: lighten( desaturate(@headerBackground, 80%), 50%); +} + +/* hovered rows */ +.oddHovered { + background-color: lighten( desaturate(@headerBackground, 50%), 40%); + color: @bodyTextColor; +} +.evenHovered { + background-color: lighten( desaturate(@headerBackground, 50%), 30%); + color: @bodyTextColor; +} + +/* Columns widget */ +@primaryOdd : lighten( spin(@headerBackground, 10), 40%); +@primaryEven : lighten( @primaryOdd, 8% ); +@secondaryOdd : @primaryEven; +@secondaryEven : lighten( @primaryEven, 8% ); +@tertiaryOdd : @secondaryEven; +@tertiaryEven : lighten( @secondaryEven, 8% ); + +/* Filter widget transition */ +.filterWidgetTransition { + -webkit-transition: line-height @filterTransitionTime ease; + -moz-transition: line-height @filterTransitionTime ease; + -o-transition: line-height @filterTransitionTime ease; + transition: line-height @filterTransitionTime ease; +} + +/*** Arrows ***/ +@arrowPosition : right 5px center; + +/* black */ +@unsortedBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC); +@sortAscBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC); +@sortDescBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAADnRSTlMAMiweCQITTvDctZZqaTlM310AAABcSURBVAjXY2BgYEtgAAFHERDJqigUAKSYBQUNgFSioKAYAwOLIBA4MASBKFUGQxAlzAAF+94BwWuGKBC1lIFl3rt3Lx0YGCzevWsGSjK9e6cAUlT3HKyW9wADAwDRrBiDy6bKzwAAAABJRU5ErkJggg==); + +/* white */ +@unsortedWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAElBMVEUAAADu7u7u7u7u7u7u7u7u7u7yb344AAAABnRSTlMAMhIHKyAHBrhHAAAATElEQVQI12NgYGBSYAABQ2Ew5SgCIlkFBQOAlKKgoBADA7MgEBgwsIAoB4ZAECXKAAFQHkg9WIejoCBIv4mgoDOQYgZpAxkDNARqEQBTkAYuMZEHPgAAAABJRU5ErkJggg==); +@sortAscWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAHlBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u4+jEeEAAAACXRSTlMAMwkqFV7roCD4hW+/AAAAWUlEQVQI1y3MrQ5AABSG4Xd+Rj0jiDabjKZxB6qqaarGNRh27tY5myd8b/uAeML1l2+wPqUlUd0ss+oNoZqG2rOwe15+p5iC1HNAK5IBlUjnZyIlZsxx0QAfzokSZgp96u4AAAAASUVORK5CYII=); +@sortDescWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAJ1BMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u4RJgHSAAAADHRSTlMAMiweCQITaU7olrlu2HdvAAAAXElEQVQI12NgYGBLYAABRxEQyaooFACkmAUFDYBUoqCgGAMDiyAQODAEgShVBkMQJcwABWvOAMEphmgQtZWBZc6ZMycdGBhszpw5DJRkOnNGAaSo5wRYLXsBAwMAi4YWQHRX4F0AAAAASUVORK5CYII=); + +/* automatically choose the correct arrow/text color */ +.headerText (@a) when (lightness(@a) >= 50%) { + color: @headerTextColor; +} +.headerText (@a) when (lightness(@a) < 50%) { + color: lighten(@headerTextColor, 90%); +} +.unsorted (@a) when (lightness(@a) >= 50%) { + background-image: @unsortedBlack; +} +.unsorted (@a) when (lightness(@a) < 50%) { + background-image: @unsortedWhite; +} +.sortAsc (@a) when (lightness(@a) >= 50%) { + background-image: @sortAscBlack; +} +.sortAsc (@a) when (lightness(@a) < 50%) { + background-image: @sortAscWhite; +} +.sortDesc (@a) when (lightness(@a) >= 50%) { + background-image: @sortDescBlack; +} +.sortDesc (@a) when (lightness(@a) < 50%) { + background-image: @sortDescWhite; +} + +/* variable theme name - requires less.js 1.3+; + or just replace (!".@{theme}") with the contents of @theme +*/ +.@{theme} { + font: @tableBodyFont; + background-color: @borderAndBackground; + margin: 10px 0 15px; + width: 100%; + text-align: left; + border-spacing: 0; + border: 0; + + th, td { + border: 0; + } + + /* style th's outside of the thead */ + th, thead td { + font: @tableHeaderFont; + font-weight: bold; + background-color: @headerBackground; + color: @headerTextColor; + .headerText(@headerBackground); + border-collapse: collapse; + padding: @overallPadding; + } + + .dark-row th, .dark-row td, caption.dark-row { + background-color: darken( @headerBackground, 10% ); + } + + tbody td, tfoot th, tfoot td { + padding: @overallPadding; + vertical-align: top; + } + + /* style header */ + .tablesorter-header { + .unsorted(@headerBackground); + background-repeat: no-repeat; + background-position: @arrowPosition; + cursor: pointer; + white-space: normal; + } + + .tablesorter-header-inner { + padding: @headerPadding; + } + + .tablesorter-header.sorter-false { + background-image: none; + cursor: default; + padding: @overallPadding; + } + + .tablesorter-headerAsc { + .sortAsc(@headerBackground); + } + + .tablesorter-headerDesc { + .sortDesc(@headerBackground); + } + + /* tfoot */ + tfoot .tablesorter-headerAsc, + tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; + } + + /* optional disabled input styling */ + .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; + } + + /* body */ + tbody { + + td { + .allRows; + padding: @overallPadding; + vertical-align: top; + } + + /* Zebra Widget - row alternating colors */ + tr.odd > td { + .oddRows; + } + tr.even > td { + .evenRows; + } + + } + + /* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ + tbody > tr.hover > td, + tbody > tr:hover > td, + tbody > tr:hover + tr.tablesorter-childRow > td, + tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, + tbody > tr.even.hover > td, + tbody > tr.even:hover > td, + tbody > tr.even:hover + tr.tablesorter-childRow > td, + tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .evenHovered; + } + tbody > tr.odd.hover > td, + tbody > tr.odd:hover > td, + tbody > tr.odd:hover + tr.tablesorter-childRow > td, + tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .oddHovered; + } + + /* table processing indicator - indeterminate spinner */ + .tablesorter-processing { + background-image: @processingIcon; + background-position: center center; + background-repeat: no-repeat; + } + + /* pager */ + div.tablesorter-pager { + button { + background-color: lighten( @headerBackground, 7% ); + color: @headerTextColor; + border: lighten( @headerBackground, 15% ) 1px solid; + cursor: pointer; + } + button:hover { + background-color: lighten( @headerBackground, 15% ); + } + } + + /* Column Widget - column sort colors */ + tr.odd td.primary { + background-color: @primaryOdd; + } + td.primary, tr.even td.primary { + background-color: @primaryEven; + } + tr.odd td.secondary { + background-color: @secondaryOdd; + } + td.secondary, tr.even td.secondary { + background-color: @secondaryEven; + } + tr.odd td.tertiary { + background-color: @tertiaryOdd; + } + td.tertiary, tr.even td.tertiary { + background-color: @tertiaryEven; + } + + /* caption (non-theme matching) */ + caption { + background-color: @captionBackground ; + } + + /* filter widget */ + .tablesorter-filter-row input, + .tablesorter-filter-row select{ + width: 98%; + height: auto; + margin: 0; + padding: @overallPadding; + color: @filterElementTextColor; + background-color: @filterElementBkgd; + border: @filterElementBorder; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + .filterWidgetTransition; + } + .tablesorter-filter-row { + background-color: @filterCellBackground; + } + .tablesorter-filter-row td { + text-align: center; + background-color: @filterCellBackground; + line-height: normal; + text-align: center; /* center the input */ + .filterWidgetTransition; + } + /* hidden filter row */ + .tablesorter-filter-row.hideme td { + padding: @filterRowHiddenHeight / 2; + margin: 0; + line-height: 0; + cursor: pointer; + } + .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); + } + /* rows hidden by filtering (needed for child rows) */ + .filtered { + display: none; + } + + /* ajax error row */ + .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: @errorBackground; + } + +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less b/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less new file mode 100644 index 000000000..c0a4d7922 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less @@ -0,0 +1,329 @@ +/* Tablesorter Custom LESS Theme by Rob Garrison + + To create your own theme, modify the code below and run it through + a LESS compiler, like this one: http://leafo.net/lessphp/editor.html + or download less.js from http://lesscss.org/ + +Test out these custom less files live + Basic Theme : http://codepen.io/Mottie/pen/eqBbn + Bootstrap : http://codepen.io/Mottie/pen/Ltzpi + Metro Style : http://codepen.io/Mottie/pen/gCslk + + */ + +/*** theme ***/ +@theme : tablesorter-custom; + +/*** fonts ***/ +@tableHeaderFont : 11px 'trebuchet ms', verdana, arial; +@tableBodyFont : 11px 'trebuchet ms', verdana, arial; + +/*** color definitions ***/ +/* for best results, only change the hue (120), + leave the saturation (60%) and luminosity (75%) alone + pick the color from here: http://hslpicker.com/#99E699 */ +@headerBackground : hsl(120, 60%, 75%); +@borderAndBackground : #cdcdcd; +@overallBorder : @borderAndBackground 1px solid; +@headerTextColor : #000; + +@bodyBackground : #fff; +@bodyTextColor : #000; + +@headerAsc : darken(spin(@headerBackground, 5), 10%); /* darken(@headerBackground, 10%); */ +@headerDesc : lighten(spin(@headerBackground, -5), 10%); /* desaturate(@headerAsc, 5%); */ + +@captionBackground : #fff; /* it might be best to match the document body background color here */ +@errorBackground : #e6bf99; /* ajax error message (added to thead) */ + +@filterCellBackground : #eee; +@filterElementTextColor: #333; +@filterElementBkgd : #fff; +@filterElementBorder : 1px solid #bbb; +@filterTransitionTime : 0.1s; +@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */ + +@overallPadding : 4px; +/* 20px should be slightly wider than the icon width to avoid overlap */ +@headerPadding : 4px 20px 4px 4px; + +/* url(icons/loading.gif); */ +@processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs='); + +/* zebra striping */ +.allRows { + background-color: @bodyBackground; + color: @bodyTextColor; +} +.evenRows { + background-color: lighten(@headerBackground, 40%); + color: @bodyTextColor; +} +.oddRows { + background-color: lighten(@headerBackground, 20%); +} + +/* hovered rows */ +.oddHovered { + background-color: desaturate(@headerBackground, 60%); + color: @bodyTextColor; +} +.evenHovered { + background-color: lighten( desaturate(@headerBackground, 60%), 10% ); + color: @bodyTextColor; +} + +/* Columns widget */ +@primaryOdd : spin(@headerBackground, 10); /* saturate( darken( desaturate(@headerBackground, 10%), 10% ), 30%); */ +@primaryEven : lighten( @primaryOdd, 10% ); +@secondaryOdd : @primaryEven; +@secondaryEven : lighten( @primaryEven, 5% ); +@tertiaryOdd : @secondaryEven; +@tertiaryEven : lighten( @secondaryEven, 5% ); + +/* Filter widget transition */ +.filterWidgetTransition { + -webkit-transition: line-height @filterTransitionTime ease; + -moz-transition: line-height @filterTransitionTime ease; + -o-transition: line-height @filterTransitionTime ease; + transition: line-height @filterTransitionTime ease; +} + +/*** Arrows ***/ +@arrowPosition : right 5px center; + +/* black */ +@unsortedBlack : url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); +@sortAscBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); +@sortDescBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + +/* white */ +@unsortedWhite : url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); +@sortAscWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); +@sortDescWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); + +/* automatically choose the correct arrow/text color */ +.headerText (@a) when (lightness(@a) >= 50%) { + color: @headerTextColor; +} +.headerText (@a) when (lightness(@a) < 50%) { + color: lighten(@headerTextColor, 90%); +} +.unsorted (@a) when (lightness(@a) >= 50%) { + background-image: @unsortedBlack; +} +.unsorted (@a) when (lightness(@a) < 50%) { + background-image: @unsortedWhite; +} +.sortAsc (@a) when (lightness(@a) >= 50%) { + background-image: @sortAscBlack; +} +.sortAsc (@a) when (lightness(@a) < 50%) { + background-image: @sortAscWhite; +} +.sortDesc (@a) when (lightness(@a) >= 50%) { + background-image: @sortDescBlack; +} +.sortDesc (@a) when (lightness(@a) < 50%) { + background-image: @sortDescWhite; +} + +/* variable theme name - requires less.js 1.3+; + or just replace (!".@{theme}") with the contents of @theme + */ +.@{theme} { + font: @tableBodyFont; + background-color: @borderAndBackground; + margin: 10px 0 15px; + width: 100%; + text-align: left; + border-spacing: 0; + border: @overallBorder; + border-width: 1px 0 0 1px; + + th, td { + border: @overallBorder; + border-width: 0 1px 1px 0; + } + + /* style th's outside of the thead */ + th, thead td { + font: @tableHeaderFont; + font-weight: bold; + background-color: @headerBackground; + .headerText(@headerBackground); + border-collapse: collapse; + padding: @overallPadding; + } + + tbody td, tfoot th, tfoot td { + padding: @overallPadding; + vertical-align: top; + } + + /* style header */ + .tablesorter-header { + .unsorted(@headerBackground); + background-repeat: no-repeat; + background-position: @arrowPosition; + padding: @headerPadding; + cursor: pointer; + } + + .tablesorter-header.sorter-false { + background-image: none; + cursor: default; + padding: @overallPadding; + } + + .tablesorter-headerAsc { + background-color: @headerAsc; + .sortAsc(@headerBackground); + } + + .tablesorter-headerDesc { + background-color: @headerDesc; + .sortDesc(@headerBackground); + } + + /* tfoot */ + tfoot .tablesorter-headerAsc, + tfoot .tablesorter-headerDesc { + /* remove sort arrows from footer */ + background-image: none; + } + + /* optional disabled input styling */ + .disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: not-allowed; + } + + /* body */ + tbody { + + td { + .allRows; + padding: @overallPadding; + vertical-align: top; + } + + /* Zebra Widget - row alternating colors */ + tr.odd > td { + .oddRows; + } + tr.even > td { + .evenRows; + } + + } + + /* hovered row colors + you'll need to add additional lines for + rows with more than 2 child rows + */ + tbody > tr.hover td, + tbody > tr:hover td, + tbody > tr:hover + tr.tablesorter-childRow > td, + tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td, + tbody > tr.even.hover > td, + tbody > tr.even:hover > td, + tbody > tr.even:hover + tr.tablesorter-childRow > td, + tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .evenHovered; + } + tbody > tr.odd.hover > td, + tbody > tr.odd:hover > td, + tbody > tr.odd:hover + tr.tablesorter-childRow > td, + tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td { + .oddHovered; + } + + /* table processing indicator - indeterminate spinner */ + .tablesorter-processing { + background-image: @processingIcon; + background-position: center center; + background-repeat: no-repeat; + } + + /* Column Widget - column sort colors */ + tr.odd td.primary { + background-color: @primaryOdd; + } + td.primary, tr.even td.primary { + background-color: @primaryEven; + } + tr.odd td.secondary { + background-color: @secondaryOdd; + } + td.secondary, tr.even td.secondary { + background-color: @secondaryEven; + } + tr.odd td.tertiary { + background-color: @tertiaryOdd; + } + td.tertiary, tr.even td.tertiary { + background-color: @tertiaryEven; + } + + /* caption (non-theme matching) */ + caption { + background-color: @captionBackground ; + } + + /* filter widget */ + .tablesorter-filter-row input, + .tablesorter-filter-row select { + width: 98%; + height: auto; + margin: 0; + padding: @overallPadding; + color: @filterElementTextColor; + background-color: @filterElementBkgd; + border: @filterElementBorder; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + .filterWidgetTransition; + } + .tablesorter-filter-row { + background-color: @filterCellBackground; + } + .tablesorter-filter-row td { + text-align: center; + background-color: @filterCellBackground; + line-height: normal; + text-align: center; /* center the input */ + .filterWidgetTransition; + } + /* hidden filter row */ + .tablesorter-filter-row.hideme td { + padding: @filterRowHiddenHeight / 2; + margin: 0; + line-height: 0; + cursor: pointer; + } + .tablesorter-filter-row.hideme * { + height: 1px; + min-height: 0; + border: 0; + padding: 0; + margin: 0; + /* don't use visibility: hidden because it disables tabbing */ + opacity: 0; + filter: alpha(opacity=0); + } + /* rows hidden by filtering (needed for child rows) */ + .filtered { + display: none; + } + + /* ajax error row */ + .tablesorter-errorRow td { + text-align: center; + cursor: pointer; + background-color: @errorBackground; + } + +} diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css new file mode 100644 index 000000000..0d728c756 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css @@ -0,0 +1 @@ +.tablesorter-blackice{width:100%;margin-right:auto;margin-left:auto;font:11px/18px Arial,Sans-serif;text-align:left;background-color:#000;border-collapse:collapse;border-spacing:0}.tablesorter-blackice th,.tablesorter-blackice thead td{padding:4px;font:13px/20px Arial,Sans-serif;font-weight:700;color:#e5e5e5;text-align:left;text-shadow:0 1px 0 rgba(0,0,0,.7);background-color:#111;border:1px solid #232323}.tablesorter-blackice .header,.tablesorter-blackice .tablesorter-header{padding:4px 20px 4px 4px;cursor:pointer;background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-position:center right;background-repeat:no-repeat}.tablesorter-blackice .headerSortUp,.tablesorter-blackice .tablesorter-headerAsc,.tablesorter-blackice .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);color:#fff}.tablesorter-blackice .headerSortDown,.tablesorter-blackice .tablesorter-headerDesc,.tablesorter-blackice .tablesorter-headerSortDown{color:#fff;background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7)}.tablesorter-blackice thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-blackice tfoot .tablesorter-headerAsc,.tablesorter-blackice tfoot .tablesorter-headerDesc,.tablesorter-blackice tfoot .tablesorter-headerSortDown,.tablesorter-blackice tfoot .tablesorter-headerSortUp{background-image:none}.tablesorter-blackice td{padding:4px;color:#ccc;vertical-align:top;background-color:#333;border:1px solid #232323}.tablesorter-blackice tbody>tr.even:hover>td,.tablesorter-blackice tbody>tr.hover>td,.tablesorter-blackice tbody>tr.odd:hover>td,.tablesorter-blackice tbody>tr:hover>td{background-color:#000}.tablesorter-blackice .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-blackice tr.odd>td{background-color:#333}.tablesorter-blackice tr.even>td{background-color:#393939}.tablesorter-blackice td.primary,.tablesorter-blackice tr.odd td.primary{background-color:#2f3a40}.tablesorter-blackice td.secondary,.tablesorter-blackice tr.even td.primary,.tablesorter-blackice tr.odd td.secondary{background-color:#3f4a50}.tablesorter-blackice td.tertiary,.tablesorter-blackice tr.even td.secondary,.tablesorter-blackice tr.odd td.tertiary{background-color:#4f5a60}.tablesorter-blackice tr.even td.tertiary{background-color:#5a646b}caption{background-color:#fff}.tablesorter-blackice .tablesorter-filter-row{background-color:#222}.tablesorter-blackice .tablesorter-filter-row td{background-color:#222;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-blackice .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-blackice .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-blackice .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-blackice input.tablesorter-filter,.tablesorter-blackice select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css new file mode 100644 index 000000000..8276861fb --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css @@ -0,0 +1 @@ +.tablesorter-blue{width:100%;background-color:#fff;margin:10px 0 15px;text-align:left;border-spacing:0;border:1px solid #cdcdcd;border-width:1px 0 0 1px}.tablesorter-blue td,.tablesorter-blue th{border:1px solid #cdcdcd;border-width:0 1px 1px 0}.tablesorter-blue th,.tablesorter-blue thead td{font:12px/18px Arial,Sans-serif;font-weight:700;color:#000;background-color:#99bfe6;border-collapse:collapse;padding:4px;text-shadow:0 1px 0 rgba(204,204,204,.7)}.tablesorter-blue tbody td,.tablesorter-blue tfoot td,.tablesorter-blue tfoot th{padding:4px;vertical-align:top}.tablesorter-blue .header,.tablesorter-blue .tablesorter-header{background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-repeat:no-repeat;background-position:center right;padding:4px 18px 4px 4px;white-space:normal;cursor:pointer}.tablesorter-blue .headerSortUp,.tablesorter-blue .tablesorter-headerAsc,.tablesorter-blue .tablesorter-headerSortUp{background-color:#9fbfdf;background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7)}.tablesorter-blue .headerSortDown,.tablesorter-blue .tablesorter-headerDesc,.tablesorter-blue .tablesorter-headerSortDown{background-color:#8cb3d9;background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7)}.tablesorter-blue thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-blue tfoot .tablesorter-headerAsc,.tablesorter-blue tfoot .tablesorter-headerDesc,.tablesorter-blue tfoot .tablesorter-headerSortDown,.tablesorter-blue tfoot .tablesorter-headerSortUp{background-image:none}.tablesorter-blue td{color:#3d3d3d;background-color:#fff;padding:4px;vertical-align:top}.tablesorter-blue tbody>tr.even.hover>td,.tablesorter-blue tbody>tr.even:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-blue tbody>tr.even:hover+tr.tablesorter-childRow>td,.tablesorter-blue tbody>tr.even:hover>td,.tablesorter-blue tbody>tr.hover>td,.tablesorter-blue tbody>tr:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-blue tbody>tr:hover+tr.tablesorter-childRow>td,.tablesorter-blue tbody>tr:hover>td{background-color:#d9d9d9}.tablesorter-blue tbody>tr.odd.hover>td,.tablesorter-blue tbody>tr.odd:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-blue tbody>tr.odd:hover+tr.tablesorter-childRow>td,.tablesorter-blue tbody>tr.odd:hover>td{background-color:#bfbfbf}.tablesorter-blue .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-blue tbody tr.odd>td{background-color:#ebf2fa}.tablesorter-blue tbody tr.even>td{background-color:#fff}.tablesorter-blue td.primary,.tablesorter-blue tr.odd td.primary{background-color:#99b3e6}.tablesorter-blue td.secondary,.tablesorter-blue tr.even td.primary,.tablesorter-blue tr.odd td.secondary{background-color:#c2d1f0}.tablesorter-blue td.tertiary,.tablesorter-blue tr.even td.secondary,.tablesorter-blue tr.odd td.tertiary{background-color:#d6e0f5}.tablesorter-blue tr.even td.tertiary{background-color:#ebf0fa}caption{background-color:#fff}.tablesorter-blue .tablesorter-filter-row{background-color:#eee}.tablesorter-blue .tablesorter-filter-row td{background-color:#eee;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-blue .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-blue .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-blue .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-blue input.tablesorter-filter,.tablesorter-blue select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css new file mode 100644 index 000000000..9ce906402 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css @@ -0,0 +1 @@ +.tablesorter-bootstrap{width:100%}.tablesorter-bootstrap tfoot td,.tablesorter-bootstrap tfoot th,.tablesorter-bootstrap thead td,.tablesorter-bootstrap thead th{font:14px/20px Arial,Sans-serif;font-weight:700;padding:4px;margin:0 0 18px;background-color:#eee}.tablesorter-bootstrap .tablesorter-header{cursor:pointer}.tablesorter-bootstrap .tablesorter-header-inner{position:relative;padding:4px 18px 4px 4px}.tablesorter-bootstrap .tablesorter-header i.tablesorter-icon{font-size:11px;position:absolute;right:2px;top:50%;margin-top:-7px;width:14px;height:14px;background-repeat:no-repeat;line-height:14px;display:inline-block}.tablesorter-bootstrap .bootstrap-icon-unsorted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAMAAADOvxanAAAAVFBMVEUAAABCQkJZWVkZGRnJyckgICAZGRkZGRn8/PweHh4dHR0aGhoaGhpUVFQbGxvQ0NDc3NxMTExSUlIbGxvr6+s4ODhKSkogICAtLS00NDQzMzMnJydSEPrQAAAAGHRSTlMA1ssZRLgdAQbDyisqsZo8QdXUq0r9xPepSRwiAAAAX0lEQVQI13XHSQKAIAwEwQAKxn13Ev7/T2Pu9qmarJKPXIicI4PH4hxaKNrhm2S8bJK5h4YzKHrzJNtK6yYT/TdXzpS5zuYg4MSQYF6i4IHExdw1UVRi05HPrrvT53a+qyMFC9t04gcAAAAASUVORK5CYII=)}.tablesorter-bootstrap .icon-white.bootstrap-icon-unsorted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOBAMAAAALT/umAAAAKlBMVEUAAAD///////////////////////////////////////////////////+Gu8ovAAAADXRSTlMA4EXKBtQqvR0+sxmalc142gAAAFdJREFUCNdjYGDoamAAAjZbMxCVfvd6AgMDd+3du9UMDKx3hWSvMjBwXZww8RYDGuC53NB8h4GB8a617UUGBs7Yu3cjGRhYVO9eVQFKOskKOQApFmUgBwBZ+xXRTttNdAAAAABJRU5ErkJggg==)}.tablesorter-bootstrap>tbody>tr.odd>td,.tablesorter-bootstrap>tbody>tr.tablesorter-hasChildRow.odd:hover~tr.tablesorter-hasChildRow.odd~.tablesorter-childRow.odd>td{background-color:#f9f9f9}.tablesorter-bootstrap>tbody>tr.even:hover>td,.tablesorter-bootstrap>tbody>tr.hover>td,.tablesorter-bootstrap>tbody>tr.odd:hover>td,.tablesorter-bootstrap>tbody>tr.tablesorter-hasChildRow.even:hover~.tablesorter-childRow.even>td,.tablesorter-bootstrap>tbody>tr.tablesorter-hasChildRow.odd:hover~.tablesorter-childRow.odd>td{background-color:#f5f5f5}.caption,.tablesorter-bootstrap>tbody>tr.even>td,.tablesorter-bootstrap>tbody>tr.tablesorter-hasChildRow.even:hover~tr.tablesorter-hasChildRow.even~.tablesorter-childRow.even>td{background-color:#fff}.tablesorter-bootstrap .tablesorter-processing{background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=);background-position:center center!important;background-repeat:no-repeat!important}.tablesorter-bootstrap .tablesorter-filter-row input.tablesorter-filter,.tablesorter-bootstrap .tablesorter-filter-row select.tablesorter-filter{width:98%;margin:0;padding:4px 6px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter-bootstrap .tablesorter-filter-row .tablesorter-filter.disabled{background-color:#eee;color:#555;cursor:not-allowed;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.075) inset;box-sizing:border-box;transition:height .1s ease}.tablesorter-bootstrap .tablesorter-filter-row{background-color:#efefef}.tablesorter-bootstrap .tablesorter-filter-row td{background-color:#efefef;line-height:normal;text-align:center;padding:4px 6px;vertical-align:middle;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-bootstrap .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0}.tablesorter-bootstrap .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter .filtered{display:none}.tablesorter-bootstrap .tablesorter-pager select{padding:4px 6px}.tablesorter-bootstrap .tablesorter-pager .pagedisplay{border:0}.tablesorter-bootstrap tfoot i{font-size:11px}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css new file mode 100644 index 000000000..f855e0809 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css @@ -0,0 +1 @@ +.tablesorter-bootstrap{width:100%}.tablesorter-bootstrap .tablesorter-header,.tablesorter-bootstrap tfoot td,.tablesorter-bootstrap tfoot th{font:14px/20px Arial,Sans-serif;font-weight:700;position:relative;padding:8px;margin:0 0 18px;list-style:none;background-color:#FBFBFB;background-image:-moz-linear-gradient(top,#fff,#efefef);background-image:-ms-linear-gradient(top,#fff,#efefef);background-image:-webkit-gradient(linear,0 0,0 100%,from(white),to(#efefef));background-image:-webkit-linear-gradient(top,#fff,#efefef);background-image:-o-linear-gradient(top,#fff,#efefef);background-image:linear-gradient(to bottom,#fff,#efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#efefef', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.tablesorter-bootstrap .tablesorter-header{cursor:pointer}.tablesorter-bootstrap .tablesorter-header-inner{position:relative;padding:4px 18px 4px 4px}.tablesorter-bootstrap .tablesorter-header i.tablesorter-icon{position:absolute;right:2px;top:50%;margin-top:-7px;width:14px;height:14px;background-repeat:no-repeat;line-height:14px;display:inline-block}.tablesorter-bootstrap .bootstrap-icon-unsorted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWVJREFUeNqUUL9Lw2AUTGP8mqGlpBQkNeCSRcckEBcHq1jImMElToKuDvpHFMGhU0BQcHBwLji6CE1B4uB/INQsDi4d2jQ/fPeZxo764OV6915f7lLJ81xot9tCURXqdVEUr7IsO6ffH9Q5BlEUCaLwWxWqTcbYnaIoh0Dw4gAvcWlxq1qt9hqNxg6hUGAP+uIPUrGs0qXLer2+v/pTX6QpxLtkc2U2m53ACb8sSdIDXerSEms2m6+DweAICA4d89KGbduf9MpEVdXQ9/2LVqv1CASHjjn3iq/x1xKFfxQPqGnada1W86bT6SiO42OS3qk3KPStLMvbk8nkfjwen/LLuq6blFymMB0KdUPSGhAcOualjX6/f0bCiC7NaWGPQr0BwaFjzn0gYJqmLAiCA8/zni3LmhuGkQPBoWPOPwQeaPIqD4fDruu6L6Zp5kBw6IudchmdJAkLw3DXcZwnIPjy/FuAAQCiqqWWCAFKcwAAAABJRU5ErkJggg==)}.tablesorter-bootstrap .icon-white.bootstrap-icon-unsorted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOBAMAAAALT/umAAAAKlBMVEUAAAD///////////////////////////////////////////////////+Gu8ovAAAADXRSTlMA4EXKBtQqvR0+sxmalc142gAAAFdJREFUCNdjYGDoamAAAjZbMxCVfvd6AgMDd+3du9UMDKx3hWSvMjBwXZww8RYDGuC53NB8h4GB8a617UUGBs7Yu3cjGRhYVO9eVQFKOskKOQApFmUgBwBZ+xXRTttNdAAAAABJRU5ErkJggg==)}.tablesorter-bootstrap tr.odd>td{background-color:#f9f9f9}.tablesorter-bootstrap tbody>.even:hover>td,.tablesorter-bootstrap tbody>.odd:hover>td,.tablesorter-bootstrap tbody>tr.hover>td{background-color:#f5f5f5}.tablesorter-bootstrap tbody>tr.even>td,caption{background-color:#fff}.tablesorter-bootstrap .tablesorter-processing{background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=);position:absolute;z-index:1000}.tablesorter-bootstrap .tablesorter-filter-row input.tablesorter-filter,.tablesorter-bootstrap .tablesorter-filter-row select.tablesorter-filter{height:28px;width:98%;margin:0;padding:4px 6px;background-color:#fff;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter-bootstrap .tablesorter-filter-row .tablesorter-filter.disabled{background-color:#eee;cursor:not-allowed}.tablesorter-bootstrap .tablesorter-filter-row{background-color:#ddd}.tablesorter-bootstrap .tablesorter-filter-row td{background-color:#eee;line-height:normal;text-align:center;padding:4px 6px;vertical-align:middle;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-bootstrap tr.tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0}.tablesorter-bootstrap tr.tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter .filtered{display:none}.tablesorter-bootstrap .tablesorter-pager select{padding:4px 6px}.tablesorter-bootstrap .tablesorter-pager .pagedisplay{border:0}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css new file mode 100644 index 000000000..7b3801b58 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css @@ -0,0 +1 @@ +.tablesorter-dark,.tablesorter-dark tbody>tr.even:hover>td,.tablesorter-dark tbody>tr.hover>td,.tablesorter-dark tbody>tr.odd:hover>td,.tablesorter-dark tbody>tr:hover>td,.tablesorter-dark td{background-color:#000}.tablesorter-dark{width:100%;font:11px/18px Arial,Sans-serif;color:#ccc;text-align:left;border-spacing:0}.tablesorter-dark th,.tablesorter-dark thead td{padding:4px;font:12px/20px Arial,Sans-serif;font-weight:700;color:#fff;background-color:#000;border-collapse:collapse}.tablesorter-dark thead th{border-bottom:#333 2px solid}.tablesorter-dark .header,.tablesorter-dark .tablesorter-header{padding:4px 20px 4px 4px;cursor:pointer;background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-position:center right;background-repeat:no-repeat}.tablesorter-dark thead .headerSortUp,.tablesorter-dark thead .tablesorter-headerAsc,.tablesorter-dark thead .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);border-bottom:#888 1px solid}.tablesorter-dark thead .headerSortDown,.tablesorter-dark thead .tablesorter-headerDesc,.tablesorter-dark thead .tablesorter-headerSortDown{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);border-bottom:#888 1px solid}.tablesorter-dark thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-dark tfoot .tablesorter-headerAsc,.tablesorter-dark tfoot .tablesorter-headerDesc,.tablesorter-dark tfoot .tablesorter-headerSortDown,.tablesorter-dark tfoot .tablesorter-headerSortUp{border-top:#888 1px solid;background-image:none}.tablesorter-dark td{padding:4px;border-bottom:#333 1px solid;color:#ccc}.tablesorter-dark .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-dark tr.odd>td{background-color:#202020}.tablesorter-dark tr.even>td{background-color:#101010}.tablesorter-dark td.primary,.tablesorter-dark tr.odd td.primary{background-color:#0a0a0a}.tablesorter-dark tr.even td.primary{background-color:#050505}.tablesorter-dark td.secondary,.tablesorter-dark tr.odd td.secondary{background-color:#0f0f0f}.tablesorter-dark tr.even td.secondary{background-color:#0a0a0a}.tablesorter-dark td.tertiary,.tablesorter-dark tr.odd td.tertiary{background-color:#191919}.tablesorter-dark tr.even td.tertiary{background-color:#0f0f0f}.tablesorter-dark .tablesorter-filter-row,caption{background-color:#202020}.tablesorter-dark .tablesorter-filter-row td{background-color:#202020;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-dark .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-dark .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-dark .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-dark input.tablesorter-filter,.tablesorter-dark select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#111;border:1px solid #222;color:#ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css new file mode 100644 index 000000000..e60b04934 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css @@ -0,0 +1 @@ +.tablesorter-default{width:100%;font:12px/18px Arial,Sans-serif;color:#333;background-color:#fff;border-spacing:0;margin:10px 0 15px;text-align:left}.tablesorter-default th,.tablesorter-default thead td{font-weight:700;color:#000;background-color:#fff;border-collapse:collapse;border-bottom:#ccc 2px solid;padding:0}.tablesorter-default tfoot td,.tablesorter-default tfoot th{border:0}.tablesorter-default .header,.tablesorter-default .tablesorter-header{background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-position:center right;background-repeat:no-repeat;cursor:pointer;white-space:normal;padding:4px 20px 4px 4px}.tablesorter-default thead .headerSortUp,.tablesorter-default thead .tablesorter-headerAsc,.tablesorter-default thead .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);border-bottom:#000 2px solid}.tablesorter-default thead .headerSortDown,.tablesorter-default thead .tablesorter-headerDesc,.tablesorter-default thead .tablesorter-headerSortDown{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);border-bottom:#000 2px solid}.tablesorter-default thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-default tfoot .tablesorter-headerAsc,.tablesorter-default tfoot .tablesorter-headerDesc,.tablesorter-default tfoot .tablesorter-headerSortDown,.tablesorter-default tfoot .tablesorter-headerSortUp{border-top:#000 2px solid}.tablesorter-default td{background-color:#fff;border-bottom:#ccc 1px solid;padding:4px;vertical-align:top}.tablesorter-default tbody>tr.even:hover>td,.tablesorter-default tbody>tr.hover>td,.tablesorter-default tbody>tr.odd:hover>td,.tablesorter-default tbody>tr:hover>td{background-color:#fff;color:#000}.tablesorter-default .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-default tr.odd>td{background-color:#dfdfdf}.tablesorter-default tr.even>td{background-color:#efefef}.tablesorter-default tr.odd td.primary{background-color:#bfbfbf}.tablesorter-default td.primary,.tablesorter-default tr.even td.primary,.tablesorter-default tr.odd td.secondary{background-color:#d9d9d9}.tablesorter-default td.secondary,.tablesorter-default tr.even td.secondary,.tablesorter-default tr.odd td.tertiary{background-color:#e6e6e6}.tablesorter-default td.tertiary,.tablesorter-default tr.even td.tertiary{background-color:#f2f2f2}caption{background-color:#fff}.tablesorter-default .tablesorter-filter-row{background-color:#eee}.tablesorter-default .tablesorter-filter-row td{background-color:#eee;border-bottom:#ccc 1px solid;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-default .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-default .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-default .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-default input.tablesorter-filter,.tablesorter-default select.tablesorter-filter{width:95%;height:auto;margin:4px auto;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css new file mode 100644 index 000000000..949f9c9c2 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css @@ -0,0 +1 @@ +.tablesorter-dropbox{width:100%;font:13px/32px "Open Sans","lucida grande","Segoe UI",arial,verdana,"lucida sans unicode",tahoma,sans-serif;color:#555;text-align:left;background-color:#fff;border-collapse:collapse;border-top:1px solid #82cffa;border-spacing:0}.tablesorter-dropbox tfoot td,.tablesorter-dropbox tfoot th,.tablesorter-dropbox th,.tablesorter-dropbox thead td{background-color:#f0f9ff;border-color:#82cffa #e7f2fb #96c4ea;border-style:solid;border-width:1px;padding:3px 6px;font-size:13px;font-weight:400;line-height:29px;color:#2281CF;text-align:left}.tablesorter-dropbox .header,.tablesorter-dropbox .tablesorter-headerRow,.tablesorter-dropbox thead tr{background-color:#f0f9ff;border-bottom:1px solid #96c4ea;box-shadow:0 1px 1px rgba(0,0,0,.12),0 0 0 #000 inset;white-space:normal}.tablesorter-dropbox .tablesorter-headerAsc,.tablesorter-dropbox .tablesorter-headerDesc,.tablesorter-dropbox .tablesorter-headerSortDown,.tablesorter-dropbox .tablesorter-headerSortUp{font-weight:600}.tablesorter-dropbox .tablesorter-header{cursor:pointer}.tablesorter-dropbox .tablesorter-header i.tablesorter-icon{width:9px;height:9px;padding:0 10px 0 4px;display:inline-block;background-position:center right;background-repeat:no-repeat;content:""}.tablesorter-dropbox .tablesorter-headerAsc i.tablesorter-icon,.tablesorter-dropbox .tablesorter-headerSortUp i.tablesorter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALhJREFUeNpi/P//PwMhwILMiexYx8bIxNTy/9+/muUVQb9g4kzIitg4edI4+YRLQTSyOCPMupjerUI8whK3OXgEhH58+fDuy9sXqkuKvd+hmMTOxdvCxS8sxMUvxACiQXwU6+Im7DDg5BNKY+fiY2BmYWMA0SA+SByuiJ2bbzIHrwAzMxsb0AGMDCAaxAeJg+SZ7wtaqfAISfQAdTIwMUM8ywhUyMTEzPD/71+5FXvPLWUkJpwAAgwAZqYvvHStbD4AAAAASUVORK5CYII=)}.tablesorter-dropbox .tablesorter-headerAsc:hover i.tablesorter-icon,.tablesorter-dropbox .tablesorter-headerSortUp:hover i.tablesorter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALVJREFUeNpi/P//PwMhwILMCc+qZGNkYmr5/+9fzcpp7b9g4kzIitjYOdM4uXlLQTSyOCPMuqi8OiEefsHbHFzcQj++fX335eN71WWTmt6hmMTOwdXCycMnBDSJAUSD+CjWxRQ0GHBw86Sxc3AyMDOzMIBoEB8kDlfEzsk1mYOLByjPCnQAIwOIBvFB4iB55rsfmVS4+QV7QNYwMTNDHApUyMTExPDv/z+5Feu3L2UkJpwAAgwA244u+I9CleAAAAAASUVORK5CYII=)}.tablesorter-dropbox .tablesorter-headerDesc i.tablesorter-icon,.tablesorter-dropbox .tablesorter-headerSortDown i.tablesorter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNpi/P//PwMhwBLdtVGFhZ3zNhMzC4bkv79/GP78/K7KCDIpZ9mVw+xcfDaMTExwBf///WP4+e3TkSlROrZg7UxMLLns3HxnmFnZmGGK/v7+9ff3j2+5YHkQMSlC48Kv719m/f//D2IKkAbxQeJwRSDw4/OHmr+/fr0DqmAA0SA+TA6uaEq0zjugG+r//vkFcks9iA/3HbJvvn18O+vf379yP758mMXAoAAXZyQmnAACDADX316BiTFbMQAAAABJRU5ErkJggg==)}.tablesorter-dropbox .tablesorter-headerDesc:hover i.tablesorter-icon,.tablesorter-dropbox .tablesorter-headerSortDown:hover i.tablesorter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALNJREFUeNpi/P//PwMhwBJf3uP879e3PUzMzBiS//7+ZWBi43JhBJmU2z7nIzMzEx8jIyNcAUj8799/nyZXpvCzgARYuXjTWBkZVjCzIEz7++cvw+//DGkgNiPMTWVT1l5hZvynDTINbMp/pqtdOcE6IDkmmM5fv3/5//v37z9QBQOIBvFhcnBFEwoj7/5jZFnz9+8fBhAN4sN9h+ybH9++JrGxscr/+vE1CVmckZhwAggwANvlUyq5Dd1wAAAAAElFTkSuQmCC)}.tablesorter-dropbox thead .sorter-false{cursor:default}.tablesorter-dropbox thead .sorter-false i.tablesorter-icon,.tablesorter-dropbox thead .sorter-false:hover i.tablesorter-icon{background-image:none;padding:4px}.tablesorter-dropbox td{padding:5px 6px;line-height:32px;color:#555;text-align:left;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.tablesorter-dropbox tbody>tr.even:hover>td,.tablesorter-dropbox tbody>tr.hover>td,.tablesorter-dropbox tbody>tr.odd:hover>td,.tablesorter-dropbox tbody>tr:hover>td{background-color:rgba(230,245,255,.3);border-right:0;border-left:0;border-color:#c6d8e4;border-style:double}.tablesorter-dropbox .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-dropbox .tablesorter-filter-row,caption{background-color:#fff}.tablesorter-dropbox .tablesorter-filter-row td{background-color:#fff;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-dropbox .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-dropbox .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-dropbox .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-dropbox input.tablesorter-filter,.tablesorter-dropbox select.tablesorter-filter{width:98%;height:auto;margin:0;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css new file mode 100644 index 000000000..1bcbf539b --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css @@ -0,0 +1 @@ +.tablesorter-green{width:100%;text-align:left;border-spacing:0;border:1px solid #cdcdcd;border-width:1px 0 0 1px}.tablesorter-green td,.tablesorter-green th{font:12px/18px Arial,Sans-serif;border:1px solid #cdcdcd;border-width:0 1px 1px 0}.tablesorter-green tfoot tr,.tablesorter-green thead tr .tablesorter-header{background-position:center center;background-repeat:repeat-x;background-image:url(data:image/gif;base64,R0lGODlhAQBkAOYAAN/e39XU1fX19tTU1eXm5uTl5ePk5OLj4+Hi4vX29fT19PP08/Lz8vHy8fDx8O/w7+7v7uzt7Orr6ufo5/T08/Pz8ufn5uLi4eDg39/f3t3d3Nzc29HR0NDQz8/Pzuvq6urp6eno6Ojn5+fm5tfW1tbV1dTT09PS0tLR0dHQ0NDPz/f39/b29vX19fT09PPz8/Ly8vHx8e/v7+7u7u3t7ezs7Ovr6+rq6unp6ejo6Ofn5+bm5uXl5eTk5OPj4+Li4uHh4eDg4N/f397e3t3d3dzc3Nvb29ra2tnZ2djY2NfX19XV1dPT09LS0tHR0dDQ0M/Pz8rKysXFxf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFMALAAAAAABAGQAAAdegCsrLC0tLi+ILi6FCSwsCS0KkhQVDA0OMjM0NTYfICEiIzw9P0AYGUQaG0ZHSEoDTU9Qs08pTk1MSyRJR0VDQT8+PTw7Ojg3NTMyMTAvi4WOhC0vMTI1OT9GTlFSgQA7)}.tablesorter-green th,.tablesorter-green thead td{font-weight:700;border-right:#cdcdcd 1px solid;border-collapse:collapse;padding:6px}.tablesorter-green .header,.tablesorter-green .tablesorter-header-inner{background-position:5px center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAAQAOYAAA5NDBBYDlWWUzRUM5DVjp7inJ/fnQ1ECiCsGhyYFxqKFRFdDhBXDQxCCiO8HSK2HCCqGh2aGByUFxuPFhqNFhmHFRZ2EhVvERRpEBBVDSS8HiGyHB+mGh6fGRuTFxiAFBd5Eww/Cgs5CRp7Fiu+JRx8GCy/JjHAKyynKCuhJzXCMDbCMDnDMyNuHz3EODy9N0LFPSl7JkvIRjycOFDKS1LKTVPLT1XLUFTCT17OWTBkLmbQYnDTbHXVcXnWdoXago/djGmUZ112XCJEIEdjRf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEUALAAAAAAQABAAAAdlgEWCg4SFhoIvh4cVLECKhCMeJjwFj0UlEwgaMD4Gii0WFAkRHQ47BIY6IQAZDAwBCyAPOJa1toRBGBAwNTY3OT0/AoZCDQoOKi4yNDOKRCIfGycrKZYDBxIkKLZDFxy3RTHgloEAOw==);border-collapse:collapse;white-space:normal;cursor:pointer}.tablesorter-green thead .headerSortUp .tablesorter-header-inner,.tablesorter-green thead .tablesorter-headerAsc .tablesorter-header-inner,.tablesorter-green thead .tablesorter-headerSortUp .tablesorter-header-inner{background-image:url(data:image/gif;base64,R0lGODlhEAAQANUAAA5NDBBYDpDVjp7inJ/fnSCsGhyYFxFdDhBXDSO8HSK2HB2aGBuPFhqNFhmHFRZ2EhBVDSS8Hh6fGRuTFxd5Eww/Chp7Fhx8GCy/JjnDMyNuHzy9N0LFPVTCTzBkLmbQYnDTbHnWdo/djP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACMALAAAAAAQABAAAAY4wJFwSCwaj8ikcslMbpojR0bEtEwwoIHywihEOCECUvNoGBaSxEdg9FQAEAQicKAoOtC8fs8fBgEAOw==)}.tablesorter-green thead .headerSortDown .tablesorter-header-inner,.tablesorter-green thead .tablesorter-headerDesc .tablesorter-header-inner,.tablesorter-green thead .tablesorter-headerSortDown .tablesorter-header-inner{background-image:url(data:image/gif;base64,R0lGODlhEAAQANUAAFWWUzRUMw1EChqKFQxCCiO8HSCqGhyUFxVvERRpECGyHB+mGhiAFAs5CSu+JTHAKyynKCuhJzXCMDbCMD3EOELFPSl7JkvIRjycOFDKS1LKTVPLT1XLUF7OWXXVcYXagmmUZ112XCJEIEdjRf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACQALAAAAAAQABAAAAY4QJJwSCwaj8ikcskkghKGimbD6Xg+AGOIMChIKJcMBjlqMBSPSUQZEBwcEKYIsWiSLPa8fs9HBgEAOw==)}.tablesorter-green td.tablesorter-header .tablesorter-header-inner,.tablesorter-green th.tablesorter-header .tablesorter-header-inner{padding-left:23px}.tablesorter-green thead .tablesorter-header.sorter-false .tablesorter-header-inner{background-image:none;cursor:default;padding-left:6px}.tablesorter-green tbody td,.tablesorter-green tfoot th{padding:6px;vertical-align:top}.tablesorter-green td{color:#3d3d3d;padding:6px}.tablesorter-green tbody>tr.even.hover>td,.tablesorter-green tbody>tr.even:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-green tbody>tr.even:hover+tr.tablesorter-childRow>td,.tablesorter-green tbody>tr.even:hover>td,.tablesorter-green tbody>tr.hover>td,.tablesorter-green tbody>tr:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-green tbody>tr:hover+tr.tablesorter-childRow>td,.tablesorter-green tbody>tr:hover>td{background-color:#d9d9d9}.tablesorter-green tbody>tr.odd.hover>td,.tablesorter-green tbody>tr.odd:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-green tbody>tr.odd:hover+tr.tablesorter-childRow>td,.tablesorter-green tbody>tr.odd:hover>td{background-color:#bfbfbf}.tablesorter-green .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-green tr.odd>td{background-color:#ebfaeb}.tablesorter-green tr.even>td{background-color:#fff}.tablesorter-green td.primary,.tablesorter-green tr.odd td.primary{background-color:#99e6a6}.tablesorter-green td.secondary,.tablesorter-green tr.even td.primary,.tablesorter-green tr.odd td.secondary{background-color:#c2f0c9}.tablesorter-green td.tertiary,.tablesorter-green tr.even td.secondary,.tablesorter-green tr.odd td.tertiary{background-color:#d6f5db}.tablesorter-green tr.even td.tertiary{background-color:#ebfaed}caption{background-color:#fff}.tablesorter-green .tablesorter-filter-row{background-color:#eee}.tablesorter-green .tablesorter-filter-row td{background-color:#eee;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-green .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-green .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-green .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-green input.tablesorter-filter,.tablesorter-green select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css new file mode 100644 index 000000000..9fb75c516 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css @@ -0,0 +1 @@ +.tablesorter-grey{width:100%;margin:10px 0 15px;text-align:left;border-spacing:0;border-left:#555 1px solid}.tablesorter-grey th,.tablesorter-grey thead td{font:700 12px/18px Arial,Sans-serif;color:#c8c8c8;background-color:#3c3c3c;background-image:-moz-linear-gradient(top,#555,#3c3c3c);background-image:-ms-linear-gradient(top,#555,#3c3c3c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#3c3c3c));background-image:-webkit-linear-gradient(top,#555,#3c3c3c);background-image:-o-linear-gradient(top,#555,#3c3c3c);background-image:linear-gradient(to bottom,#555,#3c3c3c);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#555555', endColorstr='#3c3c3c', GradientType=0 );background-repeat:repeat-x;border-right:#555 1px solid;text-shadow:0 1px 0 rgba(128,128,128,.7);-webkit-box-shadow:inset 0 1px 0 #222;-moz-box-shadow:inset 0 1px 0 #222;box-shadow:inset 0 1px 0 #222;padding:4px}.tablesorter-grey .tablesorter-header-inner{position:relative;padding:4px 15px 4px 4px}.tablesorter-grey .header,.tablesorter-grey .tablesorter-header{cursor:pointer}.tablesorter-grey .header i,.tablesorter-grey .tablesorter-header i.tablesorter-icon{width:18px;height:10px;position:absolute;right:2px;top:50%;margin-top:-10px;background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-repeat:no-repeat;background-position:center right;padding:4px;white-space:normal}.tablesorter-grey th.headerSortDown,.tablesorter-grey th.headerSortUp,.tablesorter-grey th.tablesorter-headerSortDown,.tablesorter-grey th.tablesorter-headerSortUp{color:#ddd;background-color:#135185;background-image:-moz-linear-gradient(top,#195c93,#0e4776);background-image:-ms-linear-gradient(top,#195c93,#0e4776);background-image:-webkit-gradient(linear,0 0,0 100%,from(#195c93),to(#0e4776));background-image:-webkit-linear-gradient(top,#195c93,#0e4776);background-image:-o-linear-gradient(top,#195c93,#0e4776);background-image:linear-gradient(to bottom,#195c93,#0e4776);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#195c93', endColorstr='#0e4776', GradientType=0 )}.tablesorter-grey .headerSortUp i.tablesorter-icon,.tablesorter-grey .tablesorter-headerAsc i.tablesorter-icon,.tablesorter-grey .tablesorter-headerSortUp i.tablesorter-icon{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7)}.tablesorter-grey .headerSortDown i.tablesorter-icon,.tablesorter-grey .tablesorter-headerDesc i.tablesorter-icon,.tablesorter-grey .tablesorter-headerSortDown i.tablesorter-icon{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7)}.tablesorter-grey thead .sorter-false{cursor:default}.tablesorter-grey thead .sorter-false i.tablesorter-icon{background-image:none;padding:4px}.tablesorter-grey tbody td,.tablesorter-grey tfoot td,.tablesorter-grey tfoot th{padding:4px;vertical-align:top;border-right:#555 1px solid}.tablesorter-grey tfoot td,.tablesorter-grey tfoot th{padding:8px}.tablesorter-grey td{color:#eee;background-color:#6d6d6d;padding:4px;vertical-align:top}.tablesorter-grey tbody>tr.even.hover>td,.tablesorter-grey tbody>tr.even:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-grey tbody>tr.even:hover+tr.tablesorter-childRow>td,.tablesorter-grey tbody>tr.even:hover>td,.tablesorter-grey tbody>tr.hover>td,.tablesorter-grey tbody>tr.odd.hover>td,.tablesorter-grey tbody>tr.odd:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-grey tbody>tr.odd:hover+tr.tablesorter-childRow>td,.tablesorter-grey tbody>tr.odd:hover>td,.tablesorter-grey tbody>tr:hover+tr.tablesorter-childRow+tr.tablesorter-childRow>td,.tablesorter-grey tbody>tr:hover+tr.tablesorter-childRow>td,.tablesorter-grey tbody>tr:hover>td{background-color:#134b78}.tablesorter-grey .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-grey tbody tr.odd>td{background-color:#5e5e5e}.tablesorter-grey tbody tr.even>td{background-color:#6d6d6d}.tablesorter-grey td.primary,.tablesorter-grey tr.odd td.primary{color:#ddd;background-color:#165388}.tablesorter-grey tr.even td.primary{color:#ddd;background-color:#195c93}.tablesorter-grey td.secondary,.tablesorter-grey tr.odd td.secondary{color:#ddd;background-color:#185C9A}.tablesorter-grey tr.even td.secondary{color:#ddd;background-color:#1D67A5}.tablesorter-grey td.tertiary,.tablesorter-grey tr.odd td.tertiary{color:#ddd;background-color:#1B67AD}.tablesorter-grey tr.even td.tertiary{color:#ddd;background-color:#2073B7}caption{background-color:#fff}.tablesorter-grey .tablesorter-filter-row{background-color:#3c3c3c}.tablesorter-grey .tablesorter-filter-row td{background-color:#3c3c3c;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-grey .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-grey .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-grey .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-grey input.tablesorter-filter,.tablesorter-grey select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#6d6d6d;border:1px solid #555;color:#ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css new file mode 100644 index 000000000..add23f621 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css @@ -0,0 +1 @@ +.tablesorter-ice{width:100%;background-color:#fff;margin:10px 0 15px;text-align:left;border-spacing:0;border:1px solid #ccc;border-width:1px 0 0 1px}.tablesorter-ice td,.tablesorter-ice th{border:1px solid #ccc;border-width:0 1px 1px 0}.tablesorter-ice th,.tablesorter-ice thead td{font:12px/18px Arial,Sans-serif;color:#555;background-color:#f6f8f9;border-collapse:collapse;padding:4px;text-shadow:0 1px 0 rgba(255,255,255,.7)}.tablesorter-ice tbody td,.tablesorter-ice tfoot td,.tablesorter-ice tfoot th{padding:4px;vertical-align:top}.tablesorter-ice .header,.tablesorter-ice .tablesorter-header{background-color:#f6f8f9;background-position:center right;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAMQAAAJEjAJCiwJBigJAiANFjgNGjgNEjQRIkQRHkANIkAVMlAVQmAZWnQZUnAdYoAhdpAhZoAlhqQlepQliqQppsApmrQxutgtutQtutAxwtwxwtg1yug1zugxtsw1yuP8A/yH5BAEAAB8ALAAAAAAMAAwAAAUx4Cd+3GiOW4ado2d9VMVm1xg9ptadTsP+QNZEcjoQTBDGCAFgLRSfQgCYMAiCn8EvBAA7);padding:4px 20px 4px 4px;white-space:normal;cursor:pointer}.tablesorter-ice .headerSortUp,.tablesorter-ice .tablesorter-headerAsc,.tablesorter-ice .tablesorter-headerSortUp{color:#333;background-color:#ebedee;background-position:center right;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMANUAAAJCiwNHkANFjgNEjQRIkQNJkQRMlARKkwRKkgVPlwZSmgdaogdYnwhfpghcowlhqgliqglgqAlgpwljqwporwpmrQplrAtsswtqsgtrsgtqsQxttAtvtQtttAxyuQxwtwxxtwxvtg10uw1zuQ1xuP8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACUALAAAAAAMAAwAAAY6wJKwJBoahyNQ6Dj0fDoZCpPEuWgqk4jxs8FQLI+Gg8Esm5kQydFQMC7IwkOAqUiUCAIzIjA4lwBlQQA7)}.tablesorter-ice .headerSortDown,.tablesorter-ice .tablesorter-headerDesc,.tablesorter-ice .tablesorter-headerSortDown{color:#333;background-color:#ebedee;background-position:center right;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMANUAAAE/iAJBigNFjgNEjQNFjQNDiwRHkQRHjwNHjwROlgRMlQRMlARJkgRKkgZQmAVPlgZWnQZSmgZRmAdXoAdXnwdUnAdbogdZoQhbowlhqAlepglkrAliqQtstAtqsQxyugxyuQxwuAxxuAxxtwxwtgxvtQ10vA12vA10u/8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACkALAAAAAAMAAwAAAY6wJQwdRoah6bP6DhEiVIdDxNEGm4yxlDpiJkwv2AmR2OhVCSJBsJ4gUQeCwOB6VAwBAXwYRAIpwBfQQA7)}.tablesorter-ice thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-ice tfoot .tablesorter-headerAsc,.tablesorter-ice tfoot .tablesorter-headerDesc,.tablesorter-ice tfoot .tablesorter-headerSortDown,.tablesorter-ice tfoot .tablesorter-headerSortUp{background-color:#ebedee}.tablesorter-ice td{color:#333}.tablesorter-ice tbody>tr.even:hover>td,.tablesorter-ice tbody>tr.hover>td,.tablesorter-ice tbody>tr.odd:hover>td,.tablesorter-ice tbody>tr:hover>td{background-color:#ebf2fa}.tablesorter-ice .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-ice tr.odd>td{background-color:#dfdfdf}.tablesorter-ice tr.even>td{background-color:#efefef}.tablesorter-ice td.primary,.tablesorter-ice tr.odd td.primary{background-color:#9ae5e5}.tablesorter-ice td.secondary,.tablesorter-ice tr.even td.primary,.tablesorter-ice tr.odd td.secondary{background-color:#c2f0f0}.tablesorter-ice td.tertiary,.tablesorter-ice tr.even td.secondary,.tablesorter-ice tr.odd td.tertiary{background-color:#d5f5f5}.tablesorter-ice tr.even td.tertiary{background-color:#ebfafa}.tablesorter-ice.containsStickyHeaders thead tr:nth-child(1) td,.tablesorter-ice.containsStickyHeaders thead tr:nth-child(1) th{border-top:#ccc 1px solid}caption{background-color:#fff}.tablesorter-ice .tablesorter-filter-row{background-color:#eee}.tablesorter-ice .tablesorter-filter-row td{background-color:#eee;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-ice .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-ice .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-ice .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-ice input.tablesorter-filter,.tablesorter-ice select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css new file mode 100644 index 000000000..8b24d87f9 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css @@ -0,0 +1 @@ +.tablesorter .filtered,.tablesorter-jui thead tr .sorter-false .ui-icon{display:none}.tablesorter-jui{width:100%;border-collapse:separate;border-spacing:2px;margin:10px 0 15px;padding:5px;font-size:.8em}.tablesorter-jui tfoot td,.tablesorter-jui tfoot th,.tablesorter-jui thead td,.tablesorter-jui thead th{position:relative;background-repeat:no-repeat;background-position:right center;font-weight:700!important;border-width:1px!important;text-align:left;padding:8px}.tablesorter-jui .header,.tablesorter-jui .tablesorter-header{cursor:pointer;white-space:normal}.tablesorter-jui .tablesorter-header-inner{padding-right:20px}.tablesorter-jui thead tr th .ui-icon{position:absolute;right:3px;top:50%;margin-top:-8px}.tablesorter-jui thead .sorter-false{cursor:default}.tablesorter-jui tfoot td,.tablesorter-jui tfoot th{font-weight:400!important;font-size:.9em;padding:2px}.tablesorter-jui td{padding:4px;vertical-align:top}.tablesorter-jui tbody>tr.hover>td,.tablesorter-jui tbody>tr:hover>td{opacity:.7;filter:alpha(opacity=70)}.tablesorter-jui .tablesorter-processing .tablesorter-header-inner{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-jui tr.ui-state-default{background-image:none;font-weight:400}.tablesorter-jui .tablesorter-processing{background-color:#ddd;background-color:rgba(255,255,255,.8)}.tablesorter-jui caption{border:0}.tablesorter-jui .tablesorter-filter-row{background-color:transparent}.tablesorter-jui .tablesorter-filter-row td{background-color:transparent;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-jui .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-jui .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-jui .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-jui input.tablesorter-filter,.tablesorter-jui select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css new file mode 100644 index 000000000..349f9d983 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css @@ -0,0 +1 @@ +.tablesorter-metro-dark{width:100%;font:12px/18px 'Segoe UI Semilight','Open Sans',Verdana,Arial,Helvetica,sans-serif;color:#000;background-color:#333;border-spacing:0;margin:10px 0 15px;text-align:left}.tablesorter-metro-dark caption.dark-row,.tablesorter-metro-dark tr.dark-row td,.tablesorter-metro-dark tr.dark-row th{background-color:#222;color:#fff;padding:2px;text-align:left;font-size:14px}.tablesorter-metro-dark caption,.tablesorter-metro-dark tfoot td,.tablesorter-metro-dark tfoot th,.tablesorter-metro-dark th,.tablesorter-metro-dark thead td{font-weight:300;font-size:15px;color:#ddd;background-color:#333;padding:4px}.tablesorter-metro-dark .header,.tablesorter-metro-dark .tablesorter-header{background-image:url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAGFBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u5jNePWAAAACHRSTlMAMxIHKwEgMWD59H4AAABSSURBVAjXY2BgYFJgAAHzYhDJ6igSAKTYBAUTgJSioKAQAwNzoaCguAFDiCAQuDIkgigxBgiA8cJAVCpQt6AgSL+JoKAzA0gjUBsQqBcBCYhFAAE/CV4zeSzxAAAAAElFTkSuQmCC);background-position:right 5px center;background-repeat:no-repeat;cursor:pointer;white-space:normal}.tablesorter-metro-dark .tablesorter-header-inner{padding:0 18px 0 4px}.tablesorter-metro-dark thead .headerSortUp,.tablesorter-metro-dark thead .tablesorter-headerAsc,.tablesorter-metro-dark thead .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u5meJAOAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC)}.tablesorter-metro-dark thead .headerSortDown,.tablesorter-metro-dark thead .tablesorter-headerDesc,.tablesorter-metro-dark thead .tablesorter-headerSortDown{background-image:url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAALVBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7i0NViAAAADnRSTlMAMiweCQITTvDctZZqaTlM310AAABcSURBVAjXY2BgYEtgAAFHERDJqigUAKSYBQUNgFSioKAYAwOLIBA4MASBKFUGQxAlzAAF+94BwWuGKBC1lIFl3rt3Lx0YGCzevWsGSjK9e6cAUlT3HKyW9wADAwDRrBiDy6bKzwAAAABJRU5ErkJggg==)}.tablesorter-metro-dark thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-metro-dark td{background-color:#fff;padding:4px;vertical-align:top}.tablesorter-metro-dark tbody>tr.even:hover>td,.tablesorter-metro-dark tbody>tr.hover>td,.tablesorter-metro-dark tbody>tr.odd:hover>td,.tablesorter-metro-dark tbody>tr:hover>td{background-color:#bbb;color:#000}.tablesorter-metro-dark .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-metro-dark .tablesorter-pager button{background-color:#444;color:#eee;border:1px solid #555;cursor:pointer}.tablesorter-metro-dark .tablesorter-pager button:hover{background-color:#555}.tablesorter-metro-dark tr.odd>td{background-color:#eee}.tablesorter-metro-dark tr.even>td{background-color:#fff}.tablesorter-metro-dark tr.odd td.primary{background-color:#bfbfbf}.tablesorter-metro-dark td.primary,.tablesorter-metro-dark tr.even td.primary,.tablesorter-metro-dark tr.odd td.secondary{background-color:#d9d9d9}.tablesorter-metro-dark td.secondary,.tablesorter-metro-dark tr.even td.secondary,.tablesorter-metro-dark tr.odd td.tertiary{background-color:#e6e6e6}.tablesorter-metro-dark td.tertiary,.tablesorter-metro-dark tr.even td.tertiary{background-color:#f2f2f2}.tablesorter-metro-dark .tablesorter-filter-row{background-color:#eee}.tablesorter-metro-dark .tablesorter-filter-row td{background-color:#eee;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-metro-dark .tablesorter-filter-row .disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}.tablesorter-metro-dark .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-metro-dark .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0;filter:alpha(opacity=0)}.tablesorter-metro-dark input.tablesorter-filter,.tablesorter-metro-dark select.tablesorter-filter{width:95%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99} \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js new file mode 100644 index 000000000..2bd8920dc --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js @@ -0,0 +1,3 @@ +/*! Dragtable Mod for TableSorter - updated 10/31/2015 (v2.24.0) */ +!function(a){"use strict";function b(){var b=a('');a(document.head).append(b),a(document.body).attr("onselectstart","return false;").attr("unselectable","on"),window.getSelection?window.getSelection().removeAllRanges():document.selection.empty()}function c(){a("#__dragtable_disable_text_selection__").remove(),f?a(document.body).attr("onselectstart",f):a(document.body).removeAttr("onselectstart"),g?a(document.body).attr("unselectable",g):a(document.body).removeAttr("unselectable")}var d,e=a.tablesorter;e.dragtable={create:function(b){var c,d=b.originalTable.el,e=b.options.dragHandle.replace(".","");d.children("thead").children().children("th,td").each(function(){var d=a(this);d.find(b.options.dragHandle+",."+e+"-disabled").length||(c=b.options.dragaccept?d.hasClass(b.options.dragaccept.replace(".","")):!0,d.wrapInner('
                                  ').prepend('
                                  '))})},start:function(b){b=a(b)[0],b&&b.config&&(b.config.widgetOptions.dragtableLast={search:a(b).data("lastSearch"),order:e.dragtable.getOrder(b)})},update:function(b){var c,d,f,g=b.originalTable,h=g.el[0],i=a(h),j=h.config,k=j&&j.widgetOptions,l=g.startIndex-1,m=g.endIndex-1,n=e.dragtable.getOrder(h)||[],o=e.hasWidget(i,"filter")||!1,p=k&&k.dragtableLast||{},q=[];(p.order||[]).join("")!==n.join("")&&(j.sortList.length&&(d=a.extend(!0,[],j.sortList),a.each(n,function(a,b){f=e.isValueInArray(parseInt(b,10),d),b!==p.order[a]&&f>=0&&(j.sortList[f][0]=a)})),o&&a.each(p.search||[],function(a){q[a]=p.search[n[a]]}),c=e.hasWidget(j.$table,"editable")?k.editable_columnsArray:!1,c&&(j.widgetOptions.editable_columnsArray=e.dragtable.reindexArrayItem(c,l,m)),c=e.hasWidget(j.$table,"math")?k.math_ignore:!1,c&&(j.widgetOptions.math_ignore=e.dragtable.reindexArrayItem(c,l,m)),c=e.hasWidget(j.$table,"resizable")?k.resizable_widths:!1,c&&(k.resizable_widths=e.dragtable.moveArrayItem(c,l,m)),e.updateAll(j,!1,function(){o&&setTimeout(function(){j.lastCombinedFilter=null,j.$table.data("lastSearch",q),e.setFilters(i,q),a.isFunction(b.options.tablesorterComplete)&&b.options.tablesorterComplete(j.table)},10)}))},getOrder:function(b){return a(b).children("thead").children("."+e.css.headerRow).children().map(function(){return a(this).attr("data-column")}).get()||[]},startColumnMove:function(b){var c,d=b.el[0].config,e=b.startIndex-1,f=b.endIndex-1,g=d.columns-1,h=f===g?!1:e>=f,i=d.$table.children().children("tr");d.debug&&console.log("Inserting column "+e+(h?" before":" after")+" column "+f),i.each(function(){c=a(this).children(),c.eq(e)[h?"insertBefore":"insertAfter"](c.eq(f))}),c=d.$table.children("colgroup").children(),c.eq(e)[h?"insertBefore":"insertAfter"](c.eq(f))},swapNodes:function(a,b){var c,d,e,f=a.length;for(c=0;f>c;c++)d=a[c].parentNode,e=a[c].nextSibling===b[c]?a[c]:a[c].nextSibling,b[c].parentNode.insertBefore(a[c],b[c]),d.insertBefore(b[c],e)},moveArrayItem:function(a,b,c){var e,f=a.length;if(c>=f)for(e=c-f;e--+1;)a.push(d);return a.splice(c,0,a.splice(b,1)[0]),a},reindexArrayItem:function(b,c,d){var e=a.inArray(d,b),f=a.inArray(c,b),g=(Math.max.apply(Math,b),[]);return e>=0&&f>=0?b:(a.each(b,function(a,b){c>d?b>=d?g.push(b+(c>b?1:0)):g.push(b):d>c&&(b===c?g.push(d):d>b&&b>=c?g.push(b-1):d>=b?g.push(b):b>c&&g.push(b+(d>b?0:1)))}),g.sort())}},/*! dragtable v2.0.14 Mod */ +a.widget("akottr.dragtable",{options:{revert:!1,dragHandle:".table-handle",maxMovingRows:40,excludeFooter:!1,onlyHeaderThreshold:100,dragaccept:null,persistState:null,restoreState:null,exact:!0,clickDelay:10,containment:null,cursor:"move",cursorAt:!1,distance:0,tolerance:"pointer",axis:"x",beforeStart:a.noop,beforeMoving:a.noop,beforeReorganize:a.noop,beforeStop:a.noop,tablesorterComplete:null,sortClass:".sorter"},originalTable:{el:null,selectedHandle:null,sortOrder:null,startIndex:0,endIndex:0},sortableTable:{el:a(),selectedHandle:a(),movingRow:a()},persistState:function(){var b=this;this.originalTable.el.find("th").each(function(a){""!==this.id&&(b.originalTable.sortOrder[this.id]=a)}),a.ajax({url:this.options.persistState,data:this.originalTable.sortOrder})},_restoreState:function(b){for(var c in b)c in b&&(this.originalTable.startIndex=a("#"+c).closest("th").prevAll().length+1,this.originalTable.endIndex=parseInt(b[c],10)+1,this._bubbleCols())},_bubbleCols:function(){e.dragtable.startColumnMove(this.originalTable)},_rearrangeTableBackroundProcessing:function(){var b=this;return function(){b._bubbleCols(),b.options.beforeStop(b.originalTable),b.sortableTable.el.remove(),c(),e.dragtable.update(b),a.isFunction(b.options.persistState)?b.options.persistState(b.originalTable):b.persistState()}},_rearrangeTable:function(){var a=this;return function(){a.originalTable.selectedHandle.removeClass("dragtable-handle-selected"),a.sortableTable.el.sortable("disable"),a.sortableTable.el.addClass("dragtable-disabled"),a.options.beforeReorganize(a.originalTable,a.sortableTable),a.originalTable.endIndex=a.sortableTable.movingRow.prevAll().length+1,setTimeout(a._rearrangeTableBackroundProcessing(),50)}},_generateSortable:function(c){c.cancelBubble?c.cancelBubble=!0:c.stopPropagation();for(var d=this,e=this.originalTable.el[0].attributes,f="",g=0;g',s=[],t=m.eq(0).children("th, td").length;for(g=0;t>g;g++){var u=m.children(":nth-child("+(g+1)+")");u.is(":visible")&&(q=0,s[g]='
                                • "+(p?'':"")+"",m.each(function(a){s[g]+=""+u[a].outerHTML+""}),s[g]+="",u=n.children(":nth-child("+(g+1)+")"),d.options.maxMovingRows>1&&(u=u.add(n.children(":nth-child("+(g+1)+")").slice(0,d.options.maxMovingRows-1))),u.each(function(a){s[g]+=""+this.outerHTML+""}),s[g]+="",d.options.excludeFooter||(s[g]+=""+l.filter("tfoot").children("tr:visible").children()[g].outerHTML+""),s[g]+="
                                • ")}r+=s.join("")+"",this.sortableTable.el=this.originalTable.el.before(r).prev(),this.sortableTable.el.find("> li > table").each(function(b){a(this).css("width",j[b]+"px")}),this.sortableTable.selectedHandle=this.sortableTable.el.find("th .dragtable-handle-selected");var v=this.options.dragaccept?"li:has("+this.options.dragaccept+")":"li";this.sortableTable.el.sortable({items:v,stop:this._rearrangeTable(),revert:this.options.revert,tolerance:this.options.tolerance,containment:this.options.containment,cursor:this.options.cursor,cursorAt:this.options.cursorAt,distance:this.options.distance,axis:this.options.axis}),this.originalTable.startIndex=a(c.target).closest("th,td").prevAll().length+1,this.options.beforeMoving(this.originalTable,this.sortableTable),this.sortableTable.movingRow=this.sortableTable.el.children("li:nth-child("+this.originalTable.startIndex+")"),b(),this.sortableTable.movingRow.trigger(a.extend(a.Event(c.type),{which:1,clientX:c.clientX,clientY:c.clientY,pageX:c.pageX,pageY:c.pageY,screenX:c.screenX,screenY:c.screenY}));var w=this.sortableTable.el.find(".ui-sortable-placeholder");w.height()>0&&w.css("height",this.sortableTable.el.find(".ui-sortable-helper").height()),w.html('
                                  ')},bindTo:{},_create:function(){var b=this;b.originalTable={el:b.element,selectedHandle:a(),sortOrder:{},startIndex:0,endIndex:0},e.dragtable.create(b),b.bindTo="> thead > tr > "+(b.options.dragaccept||"th, td"),b.element.find(b.bindTo).find(b.options.dragHandle).length&&(b.bindTo+=" "+b.options.dragHandle),a.isFunction(b.options.restoreState)?b.options.restoreState(b.originalTable):b._restoreState(b.options.restoreState),b.originalTable.el.on("mousedown.dragtable",b.bindTo,function(c){1===c.which&&(e.dragtable.start(b.originalTable.el),b.options.beforeStart(b.originalTable)!==!1&&(clearTimeout(b.downTimer),b.downTimer=setTimeout(function(){b.originalTable.selectedHandle=a(b),b.originalTable.selectedHandle.addClass("dragtable-handle-selected"),b._generateSortable(c)},b.options.clickDelay)))}).on("mouseup.dragtable",b.options.dragHandle,function(){clearTimeout(b.downTimer)})},redraw:function(){this.destroy(),this._create()},destroy:function(){this.originalTable.el.off("mousedown.dragtable mouseup.dragtable",this.bindTo),a.Widget.prototype.destroy.apply(this,arguments)}});var f=a(document.body).attr("onselectstart"),g=a(document.body).attr("unselectable")}(jQuery); \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js new file mode 100644 index 000000000..4a11db581 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js @@ -0,0 +1 @@ +!function($){$.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/(\{.*\})/,single:"metadata"},setType:function(a,b){this.defaults.type=a,this.defaults.name=b},get:function(elem,opts){var data,m,e,attr,settings=$.extend({},this.defaults,opts);if(settings.single.length||(settings.single="metadata"),data=$.data(elem,settings.single))return data;if(data="{}","class"===settings.type)m=settings.cre.exec(elem.className),m&&(data=m[1]);else if("elem"===settings.type){if(!elem.getElementsByTagName)return;e=elem.getElementsByTagName(settings.name),e.length&&(data=$.trim(e[0].innerHTML))}else void 0!==elem.getAttribute&&(attr=elem.getAttribute(settings.name),attr&&(data=attr));return data.indexOf("{")<0&&(data="{"+data+"}"),data=eval("("+data+")"),$.data(elem,settings.single,data),data}}}),$.fn.metadata=function(a){return $.metadata.get(this[0],a)}}(jQuery); \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js new file mode 100644 index 000000000..a7d0be284 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js @@ -0,0 +1,5 @@ +/*! + * tablesorter (FORK) pager plugin + * updated 11/22/2015 (v2.24.6) + */ +!function(a){"use strict";var b=a.tablesorter;a.extend({tablesorterPager:new function(){this.defaults={container:null,ajaxUrl:null,customAjaxUrl:function(a,b){return b},ajaxError:null,ajaxObject:{dataType:"json"},processAjaxOnInit:!0,ajaxProcessing:function(a){return[0,[],null]},output:"{startRow} to {endRow} of {totalRows} rows",updateArrows:!0,page:0,pageReset:0,size:10,maxOptionSize:20,savePages:!0,storageKey:"tablesorter-pager",fixedHeight:!1,countChildRows:!1,removeRows:!1,cssFirst:".first",cssPrev:".prev",cssNext:".next",cssLast:".last",cssGoto:".gotoPage",cssPageDisplay:".pagedisplay",cssPageSize:".pagesize",cssErrorRow:"tablesorter-errorRow",cssDisabled:"disabled",totalRows:0,totalPages:0,filteredRows:0,filteredPages:0,ajaxCounter:0,currentFilters:[],startRow:0,endRow:0,$size:null,last:{}};var c="filterInit filterStart filterEnd sortEnd disablePager enablePager destroyPager updateComplete pageSize pageSet pageAndSize pagerUpdate refreshComplete ",d=this,e=function(a,b,c){var d="addClass",e="removeClass",f=b.cssDisabled,g=!!c,h=g||0===b.page,i=t(a,b),j=g||b.page===i-1||0===i;b.updateArrows&&(b.$container.find(b.cssFirst+","+b.cssPrev)[h?d:e](f).attr("aria-disabled",h),b.$container.find(b.cssNext+","+b.cssLast)[j?d:e](f).attr("aria-disabled",j))},f=function(a,c){var d,e,f,g=a.config,h=g.$table.hasClass("hasFilters");if(h&&!c.ajaxUrl)if(b.isEmptyObject(g.cache))c.filteredRows=c.totalRows=g.$tbodies.eq(0).children("tr").not(c.countChildRows?"":"."+g.cssChildRow).length;else for(c.filteredRows=0,d=g.cache[0].normalized,f=d.length,e=0;f>e;e++)c.filteredRows+=c.regexRows.test(d[e][g.columns].$row[0].className)?0:1;else h||(c.filteredRows=c.totalRows)},g=function(c,d,g){if(!d.initializing){var j,k,l,m,n,o,p=c.config,q=p.namespace+"pager",r=u(d,d.size,"get");if(d.countChildRows&&k.push(p.cssChildRow),d.totalPages=Math.ceil(d.totalRows/r),p.totalRows=d.totalRows,v(c,d),f(c,d),p.filteredRows=d.filteredRows,d.filteredPages=Math.ceil(d.filteredRows/r)||0,t(c,d)>=0){if(k=d.size*d.page>d.filteredRows&&g,d.page=k?d.pageReset||0:d.page,d.startRow=k?d.size*d.page+1:0===d.filteredRows?0:d.size*d.page+1,d.endRow=Math.min(d.filteredRows,d.totalRows,d.size*(d.page+1)),l=d.$container.find(d.cssPageDisplay),j=(d.ajaxData&&d.ajaxData.output?d.ajaxData.output||d.output:d.output).replace(/\{page([\-+]\d+)?\}/gi,function(a,b){return d.totalPages?d.page+(b?parseInt(b,10):1):0}).replace(/\{\w+(\s*:\s*\w+)?\}/gi,function(a){var b,c,e=a.replace(/[{}\s]/g,""),f=e.split(":"),g=d.ajaxData,h=/(rows?|pages?)$/i.test(e)?0:"";return/(startRow|page)/.test(f[0])&&"input"===f[1]?(b=(""+("page"===f[0]?d.totalPages:d.totalRows)).length,c="page"===f[0]?d.page+1:d.startRow,''):f.length>1&&g&&g[f[0]]?g[f[0]][f[1]]:d[e]||(g?g[e]:h)||h}),d.$goto.length){for(k="",o=h(c,d),n=o.length,m=0;n>m;m++)k+='";d.$goto.html(k).val(d.page+1)}l.length&&(l["INPUT"===l[0].nodeName?"val":"html"](j),l.find(".ts-startRow, .ts-page").unbind("change"+q).bind("change"+q,function(){var b=a(this).val(),c=a(this).hasClass("ts-startRow")?Math.floor(b/d.size)+1:b;p.$table.trigger("pageSet"+q,[c])}))}e(c,d),i(c,d),d.initialized&&g!==!1&&(p.debug&&console.log("Pager: Triggering pagerComplete"),p.$table.trigger("pagerComplete",d),d.savePages&&b.storage&&b.storage(c,d.storageKey,{page:d.page,size:d.size}))}},h=function(b,c){var d,e,f,g,h,i,j=t(b,c)||1,k=5*Math.ceil(j/c.maxOptionSize/5),l=j>c.maxOptionSize,m=c.page+1,n=k,o=j-k,p=[1],q=l?k:1;for(d=q;j>=d;)p.push(d),d+=l?k:1;if(p.push(j),l){for(f=[],e=Math.max(Math.floor(c.maxOptionSize/k)-1,5),n=m-e,1>n&&(n=1),o=m+e,o>j&&(o=j),d=n;o>=d;d++)f.push(d);p=a.grep(p,function(b,c){return a.inArray(b,p)===c}),h=p.length,i=f.length,h-i>k/2&&h+i>c.maxOptionSize&&(g=Math.floor(h/2)-Math.floor(i/2),Array.prototype.splice.apply(p,[g,i])),p=p.concat(f)}return p=a.grep(p,function(b,c){return a.inArray(b,p)===c}).sort(function(a,b){return a-b})},i=function(b,c){var d,e,f=b.config,g=f.$tbodies.eq(0);g.find("tr.pagerSavedHeightSpacer").remove(),c.fixedHeight&&!c.isDisabled&&(e=a.data(b,"pagerSavedHeight"),e&&(d=e-g.height(),d>5&&a.data(b,"pagerLastSize")===c.size&&g.children("tr:visible").length')))},j=function(b,c){var d,e=b.config,f=e.$tbodies.eq(0);f.find("tr.pagerSavedHeightSpacer").remove(),f.children("tr:visible").length||f.append(' '),d=f.children("tr").eq(0).height()*c.size,a.data(b,"pagerSavedHeight",d),i(b,c),a.data(b,"pagerLastSize",c.size)},k=function(a,c){if(!c.ajaxUrl){var d,e=0,f=a.config,g=f.$tbodies.eq(0).children("tr"),h=g.length,i=c.page*c.size,j=i+c.size,k=f.widgetOptions&&f.widgetOptions.filter_filteredRow||"filtered",l=0,m=0;for(c.cacheIndex=[],d=0;h>d;d++)g[d].className.match(k)||(m===i&&g[d].className.match(f.cssChildRow)?g[d].style.display="none":(g[d].style.display=m>=i&&j>m?"":"none",l!==m&&m>=i&&j>m&&(c.cacheIndex.push(d),l=m),m+=g[d].className.match(f.cssChildRow+"|"+f.selectorRemove.slice(1))&&!c.countChildRows?0:1,m===j&&"none"!==g[d].style.display&&g[d].className.match(b.css.cssHasChild)&&(e=d)));if(e>0&&g[e].className.match(b.css.cssHasChild))for(;++e> Ajax Error",f,h,i),b.showError(d,f,h,i),y.$tbodies.eq(0).children("tr").detach(),e.totalRows=0;else{if(a.isArray(B)?(l=isNaN(B[0])&&!isNaN(B[1]),w=B[l?1:0],e.totalRows=isNaN(w)?e.totalRows||0:w,y.totalRows=y.filteredRows=e.filteredRows=e.totalRows,t=0===e.totalRows?[]:B[l?0:1]||[],s=B[2]):(e.ajaxData=B,y.totalRows=e.totalRows=B.total,y.filteredRows=e.filteredRows="undefined"!=typeof B.filteredRows?B.filteredRows:B.total,s=B.headers,t=B.rows||[]),v=t&&t.length,t instanceof jQuery)e.processAjaxOnInit&&(y.$tbodies.eq(0).empty(),y.$tbodies.eq(0).append(t));else if(v){for(j=0;v>j;j++){for(A+="",k=0;k"+t[j][k]+"";A+=""}e.processAjaxOnInit&&y.$tbodies.eq(0).html(A)}if(e.processAjaxOnInit=!0,s&&s.length===C)for(m=z.hasClass("hasStickyHeaders"),o=m?y.widgetOptions.$sticky.children("thead:first").children("tr").children():"",n=z.find("tfoot tr:first").children(),p=y.$headers.filter("th "),x=p.length,k=0;x>k;k++)q=p.eq(k),q.find("."+b.css.icon).length?(r=q.find("."+b.css.icon).clone(!0),q.find(".tablesorter-header-inner").html(s[k]).append(r),m&&o.length&&(r=o.eq(k).find("."+b.css.icon).clone(!0),o.eq(k).find(".tablesorter-header-inner").html(s[k]).append(r))):(q.find(".tablesorter-header-inner").html(s[k]),m&&o.length&&o.eq(k).find(".tablesorter-header-inner").html(s[k])),n.eq(k).html(s[k])}y.showProcessing&&b.isProcessing(d),e.totalPages=Math.ceil(e.totalRows/u(e,e.size,"get")),e.last.totalRows=e.totalRows,e.last.currentFilters=e.currentFilters,e.last.sortList=(y.sortList||[]).join(","),g(d,e,!1),b.updateCache(y,function(){e.initialized&&setTimeout(function(){y.debug&&console.log("Pager: Triggering pagerChange"),z.trigger("pagerChange",e),b.applyWidget(d),g(d,e,!0)},0)})}e.initialized||(e.initialized=!0,e.initializing=!1,d.config.debug&&console.log("Pager: Triggering pagerInitialized"),a(d).trigger("pagerInitialized",e),b.applyWidget(d),g(d,e))},n=function(c,d){var e,f=o(c,d),g=a(document),h=c.config,i=h.namespace+"pager";""!==f&&(h.showProcessing&&b.isProcessing(c,!0),g.bind("ajaxError"+i,function(a,b,e,f){m(null,c,d,b,e,f),g.unbind("ajaxError"+i)}),e=++d.ajaxCounter,d.last.ajaxUrl=f,d.ajaxObject.url=f,d.ajaxObject.success=function(a,b,f){ed;d++)l.push(j+"["+h[d][0]+"]="+h[d][1]);g=g.replace(/\{\s*sort(?:List)?\s*:\s*(\w*)\s*\}/g,l.length?l.join("&"):j),l=[]}if(k){for(k=k[1],e=i.length,d=0;e>d;d++)i[d]&&l.push(k+"["+d+"]="+encodeURIComponent(i[d]));g=g.replace(/\{\s*filter(?:List)?\s*:\s*(\w*)\s*\}/g,l.length?l.join("&"):k),c.currentFilters=i}return"function"==typeof c.customAjaxUrl&&(g=c.customAjaxUrl(b,g)),f.debug&&console.log("Pager: Ajax url = "+g),g},p=function(c,d,e){var f,h,i,j,l=a(c),m=c.config,n=m.$table.hasClass("hasFilters"),o=d&&d.length||0,p=e.page*e.size,q=e.size;if(1>o)return void(m.debug&&console.warn("Pager: >> No rows for pager to render"));if(e.page>=e.totalPages&&y(c,e),e.cacheIndex=[],e.isDisabled=!1,e.initialized&&(m.debug&&console.log("Pager: Triggering pagerChange"),l.trigger("pagerChange",e)),e.removeRows){for(b.clearTableBody(c),f=b.processTbody(c,m.$tbodies.eq(0),!0),h=n?0:p,i=n?0:p,j=0;q>j&&hp&&q>=j&&(j++,e.cacheIndex.push(h),f.append(d[h]))),h++;b.processTbody(c,f,!1)}else k(c,e);g(c,e),c.isUpdating&&(m.debug&&console.log("Pager: Triggering updateComplete"),l.trigger("updateComplete",[c,!0]))},q=function(c,d){var f,g,h;for(d.ajax?e(c,d,!0):(a.data(c,"pagerLastPage",d.page),a.data(c,"pagerLastSize",d.size),d.page=0,d.size=d.totalRows,d.totalPages=1,a(c).addClass("pagerDisabled").removeAttr("aria-describedby").find("tr.pagerSavedHeightSpacer").remove(),p(c,c.config.rowsCopy,d),d.isDisabled=!0,b.applyWidget(c),c.config.debug&&console.log("Pager: Disabled")),g=d.$size.add(d.$goto).add(d.$container.find(".ts-startRow, .ts-page")),h=g.length,f=0;h>f;f++)g.eq(f).attr("aria-disabled","true").addClass(d.cssDisabled)[0].disabled=!0},r=function(a){var c=a.config,d=c.pager;b.updateCache(c,function(){var b,e=[],f=a.config.cache[0].normalized;for(d.totalRows=f.length,b=0;bc&&c>=0&&(b.page=c),b.page},w=function(b,c,d){d.size=u(d,c,"get"),d.$size.val(u(d,d.size,"set")),a.data(b,"pagerLastPage",v(b,d)),a.data(b,"pagerLastSize",d.size),d.totalPages=Math.ceil(d.totalRows/d.size),d.filteredPages=Math.ceil(d.filteredRows/d.size),s(b,d)},x=function(a,b){b.page=0,s(a,b)},y=function(a,b){b.page=t(a,b)-1,s(a,b)},z=function(a,b){b.page++;var c=t(a,b)-1;b.page>=c&&(b.page=c),s(a,b)},A=function(a,b){b.page--,b.page<=0&&(b.page=0),s(a,b)},B=function(a,c){var d=a.config,e=d.namespace+"pager",f=[c.cssFirst,c.cssPrev,c.cssNext,c.cssLast,c.cssGoto,c.cssPageSize].join(",");q(a,c),c.$container.hide().find(f).unbind(e),d.appender=null,d.$table.unbind(e),b.storage&&b.storage(a,c.storageKey,""),delete d.pager,delete d.rowsCopy},C=function(c,d,e){var f,g,h=c.config;d.$size.add(d.$goto).add(d.$container.find(".ts-startRow, .ts-page")).removeClass(d.cssDisabled).removeAttr("disabled").attr("aria-disabled","false"),d.isDisabled=!1,d.page=a.data(c,"pagerLastPage")||d.page||0,g=d.$size.find("option[selected]").val(),d.size=a.data(c,"pagerLastSize")||u(d,d.size,"get"),d.$size.val(u(d,d.size,"set")),d.totalPages=Math.ceil(t(c,d)/d.size),c.id&&(f=c.id+"_pager_info",d.$container.find(d.cssPageDisplay).attr("id",f),h.$table.attr("aria-describedby",f)),j(c,d),e&&(b.update(h),w(c,d.size,d),l(c,d),h.debug&&console.log("Pager: Enabled"))};d.appender=function(b,c){var d=b.config,e=d.pager;e.ajax||(d.rowsCopy=c,e.totalRows=e.countChildRows?d.$tbodies.eq(0).children("tr").length:c.length,e.size=a.data(b,"pagerLastSize")||e.size||e.settings.size||10,e.totalPages=Math.ceil(e.totalRows/e.size),p(b,c,e),g(b,e,!1))},d.construct=function(e){return this.each(function(){if(this.config&&this.hasInitialized){var f,h,i,m=this,n=m.config,o=n.widgetOptions,p=n.pager=a.extend(!0,{},a.tablesorterPager.defaults,e),t=n.$table,v=n.namespace+"pager",D=p.$container=a(p.container).addClass("tablesorter-pager").show();p.settings=a.extend(!0,{},a.tablesorterPager.defaults,e),n.debug&&console.log("Pager: Initializing"),p.oldAjaxSuccess=p.oldAjaxSuccess||p.ajaxObject.success,n.appender=d.appender,p.initializing=!0,p.savePages&&b.storage&&(f=b.storage(m,p.storageKey)||{},p.page=isNaN(f.page)?p.page:f.page,p.size=(isNaN(f.size)?p.size:f.size)||p.settings.size||10,a.data(m,"pagerLastSize",p.size)),p.regexRows=new RegExp("("+(o.filter_filteredRow||"filtered")+"|"+n.selectorRemove.slice(1)+"|"+n.cssChildRow+")"),t.unbind(c.split(" ").join(v+" ").replace(/\s+/g," ")).bind("filterInit filterStart ".split(" ").join(v+" "),function(b,c){p.currentFilters=a.isArray(c)?c:n.$table.data("lastSearch"),"filterStart"===b.type&&p.pageReset!==!1&&(n.lastCombinedFilter||"")!==(p.currentFilters||[]).join("")&&(p.page=p.pageReset)}).bind("filterEnd sortEnd ".split(" ").join(v+" "),function(){p.currentFilters=n.$table.data("lastSearch"),(p.initialized||p.initializing)&&(n.delayInit&&n.rowsCopy&&0===n.rowsCopy.length&&r(m),g(m,p,!1),s(m,p,!1),b.applyWidget(m))}).bind("disablePager"+v,function(a){a.stopPropagation(),q(m,p)}).bind("enablePager"+v,function(a){a.stopPropagation(),C(m,p,!0)}).bind("destroyPager"+v,function(a){a.stopPropagation(),B(m,p)}).bind("updateComplete"+v,function(a,b,c){if(a.stopPropagation(),b&&!c&&!p.ajax){var d=n.$tbodies.eq(0).children("tr").not(n.selectorRemove);p.totalRows=d.length-(p.countChildRows?0:d.filter("."+n.cssChildRow).length),p.totalPages=Math.ceil(p.totalRows/p.size),d.length&&n.rowsCopy&&0===n.rowsCopy.length&&r(b),p.page>=p.totalPages&&y(b,p),k(b,p),j(b,p),g(b,p,!0)}}).bind("pageSize refreshComplete ".split(" ").join(v+" "),function(a,b){a.stopPropagation(),w(m,u(p,b,"get"),p),k(m,p),g(m,p,!1)}).bind("pageSet pagerUpdate ".split(" ").join(v+" "),function(a,b){a.stopPropagation(),"pagerUpdate"===a.type&&(b="undefined"==typeof b?p.page+1:b,p.last.page=!0),p.page=(parseInt(b,10)||1)-1,s(m,p,!0),g(m,p,!1)}).bind("pageAndSize"+v,function(a,b,c){a.stopPropagation(),p.page=(parseInt(b,10)||1)-1,w(m,u(p,c,"get"),p),s(m,p,!0),k(m,p),g(m,p,!1)}),h=[p.cssFirst,p.cssPrev,p.cssNext,p.cssLast],i=[x,A,z,y],n.debug&&!D.length&&console.warn("Pager: >> Container not found"),D.find(h.join(",")).attr("tabindex",0).unbind("click"+v).bind("click"+v,function(b){b.stopPropagation();var c,d=a(this),e=h.length;if(!d.hasClass(p.cssDisabled))for(c=0;e>c;c++)if(d.is(h[c])){i[c](m,p);break}}),p.$goto=D.find(p.cssGoto),p.$goto.length?p.$goto.unbind("change"+v).bind("change"+v,function(){p.page=a(this).val()-1,s(m,p,!0),g(m,p,!1)}):n.debug&&console.warn("Pager: >> Goto selector not found"),p.$size=D.find(p.cssPageSize),p.$size.length?(p.$size.find("option").removeAttr("selected"),p.$size.unbind("change"+v).bind("change"+v,function(){if(!a(this).hasClass(p.cssDisabled)){var b=a(this).val();p.$size.val(b),w(m,b,p),j(m,p)}return!1})):n.debug&&console.warn("Pager: >> Size selector not found"),p.initialized=!1,t.trigger("pagerBeforeInitialized",p),C(m,p,!1),"string"==typeof p.ajaxUrl?(p.ajax=!0,n.widgetOptions.filter_serversideFiltering=!0,n.serverSideSorting=!0,s(m,p)):(p.ajax=!1,b.appendCache(n,!0),l(m,p)),p.ajax||p.initialized||(p.initializing=!1,p.initialized=!0,s(m,p),n.debug&&console.log("Pager: Triggering pagerInitialized"),n.$table.trigger("pagerInitialized",p),n.widgetOptions.filter_initialized&&b.hasWidget(m,"filter")||g(m,p,!1)),n.widgetInit.pager=!0}})}}}),b.showError=function(b,c,d,e){var f,g=a(b),h=g[0].config,i=h&&h.widgetOptions,j=h.pager&&h.pager.cssErrorRow||i&&i.pager_css&&i.pager_css.errorRow||"tablesorter-errorRow",k=typeof c,l=!0,m="",n=function(){h.$table.find("thead").find("."+j).remove()};if(!g.length)return void console.error("tablesorter showError: no table parameter passed");if("function"==typeof h.pager.ajaxError){if(l=h.pager.ajaxError(h,c,d,e),l===!1)return n();m=l}else if("function"==typeof i.pager_ajaxError){if(l=i.pager_ajaxError(h,c,d,e),l===!1)return n();m=l}if(""===m)if("object"===k)m=0===c.status?"Not connected, verify Network":404===c.status?"Requested page not found [404]":500===c.status?"Internal Server Error [500]":"parsererror"===e?"Requested JSON parse failed":"timeout"===e?"Time out error":"abort"===e?"Ajax Request aborted":"Uncaught error: "+c.statusText+" ["+c.status+"]";else{if("string"!==k)return n();m=c}f=a(/tr\>/.test(m)?m:''+m+"").click(function(){a(this).remove()}).appendTo(h.$table.find("thead:first")).addClass(j+" "+h.selectorRemove.slice(1)).attr({role:"alert","aria-live":"assertive"})},a.fn.extend({tablesorterPager:a.tablesorterPager.construct})}(jQuery); \ No newline at end of file diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js new file mode 100644 index 000000000..733fe1149 --- /dev/null +++ b/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js @@ -0,0 +1,2 @@ +/*! Modified semver.js for node.js (v4.3.3, 3/27/2015) */ +!function(){function a(a,b){if(a instanceof d)return a;if("string"!=typeof a)return null;if(a.length>U)return null;var c=b?W[la]:W[ia];if(!c.test(a))return null;try{return new d(a,b)}catch(e){return null}}function b(b,c){var d=a(b,c);return d?d.version:null}function c(b,c){var d=a(b.trim().replace(/^[=v]+/,""),c);return d?d.version:null}function d(a,b){if(a instanceof d){if(a.loose===b)return a;a=a.version}else if("string"!=typeof a)throw new TypeError("Invalid Version: "+a);if(a.length>U)throw new TypeError("version is longer than "+U+" characters");if(!(this instanceof d))return new d(a,b);R("SemVer",a,b),this.loose=b;var c=a.trim().match(b?W[la]:W[ia]);if(!c)throw new TypeError("Invalid Version: "+a);if(this.raw=a,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>V||this.major<0)throw new TypeError("Invalid major version");if(this.minor>V||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>V||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map(function(a){if(/^[0-9]+$/.test(a)){var b=+a;if(b>=0&&V>b)return b}return a}):this.prerelease=[],this.build=c[5]?c[5].split("."):[],this.format()}function e(a,b,c,e){"string"==typeof c&&(e=c,c=void 0);try{return new d(a,c).inc(b,e).version}catch(f){return null}}function f(b,c){if(s(b,c))return null;var d=a(b),e=a(c);if(d.prerelease.length||e.prerelease.length){for(var f in d)if(("major"===f||"minor"===f||"patch"===f)&&d[f]!==e[f])return"pre"+f;return"prerelease"}for(var f in d)if(("major"===f||"minor"===f||"patch"===f)&&d[f]!==e[f])return f}function g(a,b){var c=La.test(a),d=La.test(b);return c&&d&&(a=+a,b=+b),c&&!d?-1:d&&!c?1:b>a?-1:a>b?1:0}function h(a,b){return g(b,a)}function i(a,b){return new d(a,b).major}function j(a,b){return new d(a,b).minor}function k(a,b){return new d(a,b).patch}function l(a,b,c){return new d(a,c).compare(b)}function m(a,b){return l(a,b,!0)}function n(a,b,c){return l(b,a,c)}function o(a,b){return a.sort(function(a,c){return T.compare(a,c,b)})}function p(a,b){return a.sort(function(a,c){return T.rcompare(a,c,b)})}function q(a,b,c){return l(a,b,c)>0}function r(a,b,c){return l(a,b,c)<0}function s(a,b,c){return 0===l(a,b,c)}function t(a,b,c){return 0!==l(a,b,c)}function u(a,b,c){return l(a,b,c)>=0}function v(a,b,c){return l(a,b,c)<=0}function w(a,b,c,d){var e;switch(b){case"===":"object"==typeof a&&(a=a.version),"object"==typeof c&&(c=c.version),e=a===c;break;case"!==":"object"==typeof a&&(a=a.version),"object"==typeof c&&(c=c.version),e=a!==c;break;case"":case"=":case"==":e=s(a,c,d);break;case"!=":e=t(a,c,d);break;case">":e=q(a,c,d);break;case">=":e=u(a,c,d);break;case"<":e=r(a,c,d);break;case"<=":e=v(a,c,d);break;default:throw new TypeError("Invalid operator: "+b)}return e}function x(a,b){if(a instanceof x){if(a.loose===b)return a;a=a.value}return this instanceof x?(R("comparator",a,b),this.loose=b,this.parse(a),this.semver===Ma?this.value="":this.value=this.operator+this.semver.version,void R("comp",this)):new x(a,b)}function y(a,b){if(a instanceof y&&a.loose===b)return a;if(!(this instanceof y))return new y(a,b);if(this.loose=b,this.raw=a,this.set=a.split(/\s*\|\|\s*/).map(function(a){return this.parseRange(a.trim())},this).filter(function(a){return a.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+a);this.format()}function z(a,b){return new y(a,b).set.map(function(a){return a.map(function(a){return a.value}).join(" ").trim().split(" ")})}function A(a,b){return R("comp",a),a=E(a,b),R("caret",a),a=C(a,b),R("tildes",a),a=G(a,b),R("xrange",a),a=I(a,b),R("stars",a),a}function B(a){return!a||"x"===a.toLowerCase()||"*"===a}function C(a,b){return a.trim().split(/\s+/).map(function(a){return D(a,b)}).join(" ")}function D(a,b){var c=b?W[xa]:W[wa];return a.replace(c,function(b,c,d,e,f){R("tilde",a,b,c,d,e,f);var g;return B(c)?g="":B(d)?g=">="+c+".0.0 <"+(+c+1)+".0.0":B(e)?g=">="+c+"."+d+".0 <"+c+"."+(+d+1)+".0":f?(R("replaceTilde pr",f),"-"!==f.charAt(0)&&(f="-"+f),g=">="+c+"."+d+"."+e+f+" <"+c+"."+(+d+1)+".0"):g=">="+c+"."+d+"."+e+" <"+c+"."+(+d+1)+".0",R("tilde return",g),g})}function E(a,b){return a.trim().split(/\s+/).map(function(a){return F(a,b)}).join(" ")}function F(a,b){R("caret",a,b);var c=b?W[Ca]:W[Ba];return a.replace(c,function(b,c,d,e,f){R("caret",a,b,c,d,e,f);var g;return B(c)?g="":B(d)?g=">="+c+".0.0 <"+(+c+1)+".0.0":B(e)?g="0"===c?">="+c+"."+d+".0 <"+c+"."+(+d+1)+".0":">="+c+"."+d+".0 <"+(+c+1)+".0.0":f?(R("replaceCaret pr",f),"-"!==f.charAt(0)&&(f="-"+f),g="0"===c?"0"===d?">="+c+"."+d+"."+e+f+" <"+c+"."+d+"."+(+e+1):">="+c+"."+d+"."+e+f+" <"+c+"."+(+d+1)+".0":">="+c+"."+d+"."+e+f+" <"+(+c+1)+".0.0"):(R("no pr"),g="0"===c?"0"===d?">="+c+"."+d+"."+e+" <"+c+"."+d+"."+(+e+1):">="+c+"."+d+"."+e+" <"+c+"."+(+d+1)+".0":">="+c+"."+d+"."+e+" <"+(+c+1)+".0.0"),R("caret return",g),g})}function G(a,b){return R("replaceXRanges",a,b),a.split(/\s+/).map(function(a){return H(a,b)}).join(" ")}function H(a,b){a=a.trim();var c=b?W[sa]:W[ra];return a.replace(c,function(b,c,d,e,f,g){R("xRange",a,b,c,d,e,f,g);var h=B(d),i=h||B(e),j=i||B(f),k=j;return"="===c&&k&&(c=""),h?b=">"===c||"<"===c?"<0.0.0":"*":c&&k?(i&&(e=0),j&&(f=0),">"===c?(c=">=",i?(d=+d+1,e=0,f=0):j&&(e=+e+1,f=0)):"<="===c&&(c="<",i?d=+d+1:e=+e+1),b=c+d+"."+e+"."+f):i?b=">="+d+".0.0 <"+(+d+1)+".0.0":j&&(b=">="+d+"."+e+".0 <"+d+"."+(+e+1)+".0"),R("xRange return",b),b})}function I(a,b){return R("replaceStars",a,b),a.trim().replace(W[Ja],"")}function J(a,b,c,d,e,f,g,h,i,j,k,l,m){return b=B(c)?"":B(d)?">="+c+".0.0":B(e)?">="+c+"."+d+".0":">="+b,h=B(i)?"":B(j)?"<"+(+i+1)+".0.0":B(k)?"<"+i+"."+(+j+1)+".0":l?"<="+i+"."+j+"."+k+"-"+l:"<="+h,(b+" "+h).trim()}function K(a,b){for(var c=0;c0){var d=a[c].semver;if(d.major===b.major&&d.minor===b.minor&&d.patch===b.patch)return!0}}return!1}return!0}function L(a,b,c){try{b=new y(b,c)}catch(d){return!1}return b.test(a)}function M(a,b,c){return a.filter(function(a){return L(a,b,c)}).sort(function(a,b){return n(a,b,c)})[0]||null}function N(a,b){try{return new y(a,b).range||"*"}catch(c){return null}}function O(a,b,c){return Q(a,b,"<",c)}function P(a,b,c){return Q(a,b,">",c)}function Q(a,b,c,e){a=new d(a,e),b=new y(b,e);var f,g,h,i,j;switch(c){case">":f=q,g=v,h=r,i=">",j=">=";break;case"<":f=r,g=u,h=q,i="<",j="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(L(a,b,e))return!1;for(var k=0;k)?=?)";var na=Y++;X[na]=X[$]+"|x|X|\\*";var oa=Y++;X[oa]=X[Z]+"|x|X|\\*";var pa=Y++;X[pa]="[v=\\s]*("+X[oa]+")(?:\\.("+X[oa]+")(?:\\.("+X[oa]+")(?:"+X[ea]+")?"+X[ha]+"?)?)?";var qa=Y++;X[qa]="[v=\\s]*("+X[na]+")(?:\\.("+X[na]+")(?:\\.("+X[na]+")(?:"+X[fa]+")?"+X[ha]+"?)?)?";var ra=Y++;X[ra]="^"+X[ma]+"\\s*"+X[pa]+"$";var sa=Y++;X[sa]="^"+X[ma]+"\\s*"+X[qa]+"$";var ta=Y++;X[ta]="(?:~>?)";var ua=Y++;X[ua]="(\\s*)"+X[ta]+"\\s+",W[ua]=new RegExp(X[ua],"g");var va="$1~",wa=Y++;X[wa]="^"+X[ta]+X[pa]+"$";var xa=Y++;X[xa]="^"+X[ta]+X[qa]+"$";var ya=Y++;X[ya]="(?:\\^)";var za=Y++;X[za]="(\\s*)"+X[ya]+"\\s+",W[za]=new RegExp(X[za],"g");var Aa="$1^",Ba=Y++;X[Ba]="^"+X[ya]+X[pa]+"$";var Ca=Y++;X[Ca]="^"+X[ya]+X[qa]+"$";var Da=Y++;X[Da]="^"+X[ma]+"\\s*("+ka+")$|^$";var Ea=Y++;X[Ea]="^"+X[ma]+"\\s*("+ja+")$|^$";var Fa=Y++;X[Fa]="(\\s*)"+X[ma]+"\\s*("+ka+"|"+X[pa]+")",W[Fa]=new RegExp(X[Fa],"g");var Ga="$1$2$3",Ha=Y++;X[Ha]="^\\s*("+X[pa]+")\\s+-\\s+("+X[pa]+")\\s*$";var Ia=Y++;X[Ia]="^\\s*("+X[qa]+")\\s+-\\s+("+X[qa]+")\\s*$";var Ja=Y++;X[Ja]="(<|>)?=?\\s*\\*";for(var Ka=0;Y>Ka;Ka++)R(Ka,X[Ka]),W[Ka]||(W[Ka]=new RegExp(X[Ka]));T.parse=a,T.valid=b,T.clean=c,window.semver=T.SemVer=d,d.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},d.prototype.inspect=function(){return''},d.prototype.toString=function(){return this.version},d.prototype.compare=function(a){return R("SemVer.compare",this.version,this.loose,a),a instanceof d||(a=new d(a,this.loose)),this.compareMain(a)||this.comparePre(a)},d.prototype.compareMain=function(a){return a instanceof d||(a=new d(a,this.loose)),g(this.major,a.major)||g(this.minor,a.minor)||g(this.patch,a.patch)},d.prototype.comparePre=function(a){if(a instanceof d||(a=new d(a,this.loose)),this.prerelease.length&&!a.prerelease.length)return-1;if(!this.prerelease.length&&a.prerelease.length)return 1;if(!this.prerelease.length&&!a.prerelease.length)return 0;var b=0;do{var c=this.prerelease[b],e=a.prerelease[b];if(R("prerelease compare",b,c,e),void 0===c&&void 0===e)return 0;if(void 0===e)return 1;if(void 0===c)return-1;if(c!==e)return g(c,e)}while(++b)},d.prototype.inc=function(a,b){switch(a){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",b);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",b);break;case"prepatch":this.prerelease.length=0,this.inc("patch",b),this.inc("pre",b);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",b),this.inc("pre",b);break;case"major":(0!==this.minor||0!==this.patch||0===this.prerelease.length)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(0!==this.patch||0===this.prerelease.length)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var c=this.prerelease.length;--c>=0;)"number"==typeof this.prerelease[c]&&(this.prerelease[c]++,c=-2);-1===c&&this.prerelease.push(0)}b&&(this.prerelease[0]===b?isNaN(this.prerelease[1])&&(this.prerelease=[b,0]):this.prerelease=[b,0]);break;default:throw new Error("invalid increment argument: "+a)}return this.format(),this},T.inc=e,T.diff=f,T.compareIdentifiers=g;var La=/^[0-9]+$/;T.rcompareIdentifiers=h,T.major=i,T.minor=j,T.patch=k,T.compare=l,T.compareLoose=m,T.rcompare=n,T.sort=o,T.rsort=p,T.gt=q,T.lt=r,T.eq=s,T.neq=t,T.gte=u,T.lte=v,T.cmp=w,T.Comparator=x;var Ma={};x.prototype.parse=function(a){var b=this.loose?W[Da]:W[Ea],c=a.match(b);if(!c)throw new TypeError("Invalid comparator: "+a);this.operator=c[1],"="===this.operator&&(this.operator=""),c[2]?this.semver=new d(c[2],this.loose):this.semver=Ma},x.prototype.inspect=function(){return''},x.prototype.toString=function(){return this.value},x.prototype.test=function(a){return R("Comparator.test",a,this.loose),this.semver===Ma?!0:("string"==typeof a&&(a=new d(a,this.loose)),w(a,this.operator,this.semver,this.loose))},T.Range=y,y.prototype.inspect=function(){return''},y.prototype.format=function(){return this.range=this.set.map(function(a){return a.join(" ").trim()}).join("||").trim(),this.range},y.prototype.toString=function(){return this.range},y.prototype.parseRange=function(a){var b=this.loose;a=a.trim(),R("range",a,b);var c=b?W[Ia]:W[Ha];a=a.replace(c,J),R("hyphen replace",a),a=a.replace(W[Fa],Ga),R("comparator trim",a,W[Fa]),a=a.replace(W[ua],va),a=a.replace(W[za],Aa),a=a.split(/\s+/).join(" ");var d=b?W[Da]:W[Ea],e=a.split(" ").map(function(a){return A(a,b)}).join(" ").split(/\s+/);return this.loose&&(e=e.filter(function(a){return!!a.match(d)})),e=e.map(function(a){return new x(a,b)})},T.toComparators=z,y.prototype.test=function(a){if(!a)return!1;"string"==typeof a&&(a=new d(a,this.loose));for(var b=0;b // class from cssIcon + onRenderTemplate : null, // function( index, template ){ return template; }, // template is a string + onRenderHeader : null, // function( index ){}, // nothing to return + + // *** functionality + cancelSelection : true, // prevent text selection in the header + tabIndex : true, // add tabindex to header for keyboard accessibility + dateFormat : 'mmddyyyy', // other options: 'ddmmyyy' or 'yyyymmdd' + sortMultiSortKey : 'shiftKey', // key used to select additional columns + sortResetKey : 'ctrlKey', // key used to remove sorting on a column + usNumberFormat : true, // false for German '1.234.567,89' or French '1 234 567,89' + delayInit : false, // if false, the parsed table contents will not update until the first sort + serverSideSorting: false, // if true, server-side sorting should be performed because client-side sorting will be disabled, but the ui and events will still be used. + resort : true, // default setting to trigger a resort after an 'update', 'addRows', 'updateCell', etc has completed + + // *** sort options + headers : {}, // set sorter, string, empty, locked order, sortInitialOrder, filter, etc. + ignoreCase : true, // ignore case while sorting + sortForce : null, // column(s) first sorted; always applied + sortList : [], // Initial sort order; applied initially; updated when manually sorted + sortAppend : null, // column(s) sorted last; always applied + sortStable : false, // when sorting two rows with exactly the same content, the original sort order is maintained + + sortInitialOrder : 'asc', // sort direction on first click + sortLocaleCompare: false, // replace equivalent character (accented characters) + sortReset : false, // third click on the header will reset column to default - unsorted + sortRestart : false, // restart sort to 'sortInitialOrder' when clicking on previously unsorted columns + + emptyTo : 'bottom', // sort empty cell to bottom, top, none, zero, emptyMax, emptyMin + stringTo : 'max', // sort strings in numerical column as max, min, top, bottom, zero + textExtraction : 'basic', // text extraction method/function - function( node, table, cellIndex ){} + textAttribute : 'data-text',// data-attribute that contains alternate cell text (used in default textExtraction function) + textSorter : null, // choose overall or specific column sorter function( a, b, direction, table, columnIndex ) [alt: ts.sortText] + numberSorter : null, // choose overall numeric sorter function( a, b, direction, maxColumnValue ) + + // *** widget options + widgets: [], // method to add widgets, e.g. widgets: ['zebra'] + widgetOptions : { + zebra : [ 'even', 'odd' ] // zebra widget alternating row class names + }, + initWidgets : true, // apply widgets on tablesorter initialization + widgetClass : 'widget-{name}', // table class name template to match to include a widget + + // *** callbacks + initialized : null, // function( table ){}, + + // *** extra css class names + tableClass : '', + cssAsc : '', + cssDesc : '', + cssNone : '', + cssHeader : '', + cssHeaderRow : '', + cssProcessing : '', // processing icon applied to header during sort/filter + + cssChildRow : 'tablesorter-childRow', // class name indiciating that a row is to be attached to the its parent + cssInfoBlock : 'tablesorter-infoOnly', // don't sort tbody with this class name (only one class name allowed here!) + cssNoSort : 'tablesorter-noSort', // class name added to element inside header; clicking on it won't cause a sort + cssIgnoreRow : 'tablesorter-ignoreRow', // header row to ignore; cells within this row will not be added to c.$headers + + cssIcon : 'tablesorter-icon', // if this class does not exist, the {icon} will not be added from the headerTemplate + cssIconNone : '', // class name added to the icon when there is no column sort + cssIconAsc : '', // class name added to the icon when the column has an ascending sort + cssIconDesc : '', // class name added to the icon when the column has a descending sort + + // *** events + pointerClick : 'click', + pointerDown : 'mousedown', + pointerUp : 'mouseup', + + // *** selectors + selectorHeaders : '> thead th, > thead td', + selectorSort : 'th, td', // jQuery selector of content within selectorHeaders that is clickable to trigger a sort + selectorRemove : '.remove-me', + + // *** advanced + debug : false, + + // *** Internal variables + headerList: [], + empties: {}, + strings: {}, + parsers: [] + + // removed: widgetZebra: { css: ['even', 'odd'] } + + }, + + // internal css classes - these will ALWAYS be added to + // the table and MUST only contain one class name - fixes #381 + css : { + table : 'tablesorter', + cssHasChild: 'tablesorter-hasChildRow', + childRow : 'tablesorter-childRow', + colgroup : 'tablesorter-colgroup', + header : 'tablesorter-header', + headerRow : 'tablesorter-headerRow', + headerIn : 'tablesorter-header-inner', + icon : 'tablesorter-icon', + processing : 'tablesorter-processing', + sortAsc : 'tablesorter-headerAsc', + sortDesc : 'tablesorter-headerDesc', + sortNone : 'tablesorter-headerUnSorted' + }, + + // labels applied to sortable headers for accessibility (aria) support + language : { + sortAsc : 'Ascending sort applied, ', + sortDesc : 'Descending sort applied, ', + sortNone : 'No sort applied, ', + sortDisabled : 'sorting is disabled', + nextAsc : 'activate to apply an ascending sort', + nextDesc : 'activate to apply a descending sort', + nextNone : 'activate to remove the sort' + }, + + regex : { + templateContent : /\{content\}/g, + templateIcon : /\{icon\}/g, + templateName : /\{name\}/i, + spaces : /\s+/g, + nonWord : /\W/g, + formElements : /(input|select|button|textarea)/i, + + // *** sort functions *** + // regex used in natural sort + // chunk/tokenize numbers & letters + chunk : /(^([+\-]?(?:\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi, + // replace chunks @ ends + chunks : /(^\\0|\\0$)/, + hex : /^0x[0-9a-f]+$/i, + + // *** formatFloat *** + comma : /,/g, + digitNonUS : /[\s|\.]/g, + digitNegativeTest : /^\s*\([.\d]+\)/, + digitNegativeReplace : /^\s*\(([.\d]+)\)/, + + // *** isDigit *** + digitTest : /^[\-+(]?\d+[)]?$/, + digitReplace : /[,.'"\s]/g + + }, + + // digit sort text location; keeping max+/- for backwards compatibility + string : { + max : 1, + min : -1, + emptymin : 1, + emptymax : -1, + zero : 0, + none : 0, + 'null' : 0, + top : true, + bottom : false + }, + + // placeholder date parser data (globalize) + dates : {}, + + // These methods can be applied on table.config instance + instanceMethods : {}, + + /* + ▄█████ ██████ ██████ ██ ██ █████▄ + ▀█▄ ██▄▄ ██ ██ ██ ██▄▄██ + ▀█▄ ██▀▀ ██ ██ ██ ██▀▀▀ + █████▀ ██████ ██ ▀████▀ ██ + */ + + setup : function( table, c ) { + // if no thead or tbody, or tablesorter is already present, quit + if ( !table || !table.tHead || table.tBodies.length === 0 || table.hasInitialized === true ) { + if ( c.debug ) { + if ( table.hasInitialized ) { + console.warn( 'Stopping initialization. Tablesorter has already been initialized' ); + } else { + console.error( 'Stopping initialization! No table, thead or tbody' ); + } + } + return; + } + + var tmp = '', + $table = $( table ), + meta = $.metadata; + // initialization flag + table.hasInitialized = false; + // table is being processed flag + table.isProcessing = true; + // make sure to store the config object + table.config = c; + // save the settings where they read + $.data( table, 'tablesorter', c ); + if ( c.debug ) { + console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter' ); + $.data( table, 'startoveralltimer', new Date() ); + } + + // removing this in version 3 (only supports jQuery 1.7+) + c.supportsDataObject = ( function( version ) { + version[ 0 ] = parseInt( version[ 0 ], 10 ); + return ( version[ 0 ] > 1 ) || ( version[ 0 ] === 1 && parseInt( version[ 1 ], 10 ) >= 4 ); + })( $.fn.jquery.split( '.' ) ); + // ensure case insensitivity + c.emptyTo = c.emptyTo.toLowerCase(); + c.stringTo = c.stringTo.toLowerCase(); + c.last = { sortList : [], clickedIndex : -1 }; + // add table theme class only if there isn't already one there + if ( !/tablesorter\-/.test( $table.attr( 'class' ) ) ) { + tmp = ( c.theme !== '' ? ' tablesorter-' + c.theme : '' ); + } + c.table = table; + c.$table = $table + .addClass( ts.css.table + ' ' + c.tableClass + tmp ) + .attr( 'role', 'grid' ); + c.$headers = $table.find( c.selectorHeaders ); + + // give the table a unique id, which will be used in namespace binding + if ( !c.namespace ) { + c.namespace = '.tablesorter' + Math.random().toString( 16 ).slice( 2 ); + } else { + // make sure namespace starts with a period & doesn't have weird characters + c.namespace = '.' + c.namespace.replace( ts.regex.nonWord, '' ); + } + + c.$table.children().children( 'tr' ).attr( 'role', 'row' ); + c.$tbodies = $table.children( 'tbody:not(.' + c.cssInfoBlock + ')' ).attr({ + 'aria-live' : 'polite', + 'aria-relevant' : 'all' + }); + if ( c.$table.children( 'caption' ).length ) { + tmp = c.$table.children( 'caption' )[ 0 ]; + if ( !tmp.id ) { tmp.id = c.namespace.slice( 1 ) + 'caption'; } + c.$table.attr( 'aria-labelledby', tmp.id ); + } + c.widgetInit = {}; // keep a list of initialized widgets + // change textExtraction via data-attribute + c.textExtraction = c.$table.attr( 'data-text-extraction' ) || c.textExtraction || 'basic'; + // build headers + ts.buildHeaders( c ); + // fixate columns if the users supplies the fixedWidth option + // do this after theme has been applied + ts.fixColumnWidth( table ); + // add widgets from class name + ts.addWidgetFromClass( table ); + // add widget options before parsing (e.g. grouping widget has parser settings) + ts.applyWidgetOptions( table ); + // try to auto detect column type, and store in tables config + ts.setupParsers( c ); + // start total row count at zero + c.totalRows = 0; + // build the cache for the tbody cells + // delayInit will delay building the cache until the user starts a sort + if ( !c.delayInit ) { ts.buildCache( c ); } + // bind all header events and methods + ts.bindEvents( table, c.$headers, true ); + ts.bindMethods( c ); + // get sort list from jQuery data or metadata + // in jQuery < 1.4, an error occurs when calling $table.data() + if ( c.supportsDataObject && typeof $table.data().sortlist !== 'undefined' ) { + c.sortList = $table.data().sortlist; + } else if ( meta && ( $table.metadata() && $table.metadata().sortlist ) ) { + c.sortList = $table.metadata().sortlist; + } + // apply widget init code + ts.applyWidget( table, true ); + // if user has supplied a sort list to constructor + if ( c.sortList.length > 0 ) { + ts.sortOn( c, c.sortList, {}, !c.initWidgets ); + } else { + ts.setHeadersCss( c ); + if ( c.initWidgets ) { + // apply widget format + ts.applyWidget( table, false ); + } + } + + // show processesing icon + if ( c.showProcessing ) { + $table + .unbind( 'sortBegin' + c.namespace + ' sortEnd' + c.namespace ) + .bind( 'sortBegin' + c.namespace + ' sortEnd' + c.namespace, function( e ) { + clearTimeout( c.timerProcessing ); + ts.isProcessing( table ); + if ( e.type === 'sortBegin' ) { + c.timerProcessing = setTimeout( function() { + ts.isProcessing( table, true ); + }, 500 ); + } + }); + } + + // initialized + table.hasInitialized = true; + table.isProcessing = false; + if ( c.debug ) { + console.log( 'Overall initialization time: ' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) ); + if ( c.debug && console.groupEnd ) { console.groupEnd(); } + } + $table.trigger( 'tablesorter-initialized', table ); + if ( typeof c.initialized === 'function' ) { + c.initialized( table ); + } + }, + + bindMethods : function( c ) { + var $table = c.$table, + namespace = c.namespace, + events = ( 'sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete ' + + 'sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup ' + + 'mouseleave ' ).split( ' ' ) + .join( namespace + ' ' ); + // apply easy methods that trigger bound events + $table + .unbind( events.replace( ts.regex.spaces, ' ' ) ) + .bind( 'sortReset' + namespace, function( e, callback ) { + e.stopPropagation(); + // using this.config to ensure functions are getting a non-cached version of the config + ts.sortReset( this.config, callback ); + }) + .bind( 'updateAll' + namespace, function( e, resort, callback ) { + e.stopPropagation(); + ts.updateAll( this.config, resort, callback ); + }) + .bind( 'update' + namespace + ' updateRows' + namespace, function( e, resort, callback ) { + e.stopPropagation(); + ts.update( this.config, resort, callback ); + }) + .bind( 'updateHeaders' + namespace, function( e, callback ) { + e.stopPropagation(); + ts.updateHeaders( this.config, callback ); + }) + .bind( 'updateCell' + namespace, function( e, cell, resort, callback ) { + e.stopPropagation(); + ts.updateCell( this.config, cell, resort, callback ); + }) + .bind( 'addRows' + namespace, function( e, $row, resort, callback ) { + e.stopPropagation(); + ts.addRows( this.config, $row, resort, callback ); + }) + .bind( 'updateComplete' + namespace, function() { + this.isUpdating = false; + }) + .bind( 'sorton' + namespace, function( e, list, callback, init ) { + e.stopPropagation(); + ts.sortOn( this.config, list, callback, init ); + }) + .bind( 'appendCache' + namespace, function( e, callback, init ) { + e.stopPropagation(); + ts.appendCache( this.config, init ); + if ( $.isFunction( callback ) ) { + callback( this ); + } + }) + // $tbodies variable is used by the tbody sorting widget + .bind( 'updateCache' + namespace, function( e, callback, $tbodies ) { + e.stopPropagation(); + ts.updateCache( this.config, callback, $tbodies ); + }) + .bind( 'applyWidgetId' + namespace, function( e, id ) { + e.stopPropagation(); + ts.getWidgetById( id ).format( this, this.config, this.config.widgetOptions ); + }) + .bind( 'applyWidgets' + namespace, function( e, init ) { + e.stopPropagation(); + // apply widgets + ts.applyWidget( this, init ); + }) + .bind( 'refreshWidgets' + namespace, function( e, all, dontapply ) { + e.stopPropagation(); + ts.refreshWidgets( this, all, dontapply ); + }) + .bind( 'destroy' + namespace, function( e, removeClasses, callback ) { + e.stopPropagation(); + ts.destroy( this, removeClasses, callback ); + }) + .bind( 'resetToLoadState' + namespace, function( e ) { + e.stopPropagation(); + // remove all widgets + ts.removeWidget( this, true, false ); + // restore original settings; this clears out current settings, but does not clear + // values saved to storage. + c = $.extend( true, ts.defaults, c.originalSettings ); + this.hasInitialized = false; + // setup the entire table again + ts.setup( this, c ); + }); + }, + + bindEvents : function( table, $headers, core ) { + table = $( table )[ 0 ]; + var tmp, + c = table.config, + namespace = c.namespace, + downTarget = null; + if ( core !== true ) { + $headers.addClass( namespace.slice( 1 ) + '_extra_headers' ); + tmp = $.fn.closest ? $headers.closest( 'table' )[ 0 ] : $headers.parents( 'table' )[ 0 ]; + if ( tmp && tmp.nodeName === 'TABLE' && tmp !== table ) { + $( tmp ).addClass( namespace.slice( 1 ) + '_extra_table' ); + } + } + tmp = ( c.pointerDown + ' ' + c.pointerUp + ' ' + c.pointerClick + ' sort keyup ' ) + .replace( ts.regex.spaces, ' ' ) + .split( ' ' ) + .join( namespace + ' ' ); + // apply event handling to headers and/or additional headers (stickyheaders, scroller, etc) + $headers + // http://stackoverflow.com/questions/5312849/jquery-find-self; + .find( c.selectorSort ) + .add( $headers.filter( c.selectorSort ) ) + .unbind( tmp ) + .bind( tmp, function( e, external ) { + var $cell, cell, temp, + $target = $( e.target ), + // wrap event type in spaces, so the match doesn't trigger on inner words + type = ' ' + e.type + ' '; + // only recognize left clicks + if ( ( ( e.which || e.button ) !== 1 && !type.match( ' ' + c.pointerClick + ' | sort | keyup ' ) ) || + // allow pressing enter + ( type === ' keyup ' && e.which !== 13 ) || + // allow triggering a click event (e.which is undefined) & ignore physical clicks + ( type.match( ' ' + c.pointerClick + ' ' ) && typeof e.which !== 'undefined' ) ) { + return; + } + // ignore mouseup if mousedown wasn't on the same target + if ( type.match( ' ' + c.pointerUp + ' ' ) && downTarget !== e.target && external !== true ) { + return; + } + // set target on mousedown + if ( type.match( ' ' + c.pointerDown + ' ' ) ) { + downTarget = e.target; + // preventDefault needed or jQuery v1.3.2 and older throws an + // "Uncaught TypeError: handler.apply is not a function" error + temp = $target.jquery.split( '.' ); + if ( temp[ 0 ] === '1' && temp[ 1 ] < 4 ) { e.preventDefault(); } + return; + } + downTarget = null; + // prevent sort being triggered on form elements + if ( ts.regex.formElements.test( e.target.nodeName ) || + // nosort class name, or elements within a nosort container + $target.hasClass( c.cssNoSort ) || $target.parents( '.' + c.cssNoSort ).length > 0 || + // elements within a button + $target.parents( 'button' ).length > 0 ) { + return !c.cancelSelection; + } + if ( c.delayInit && ts.isEmptyObject( c.cache ) ) { + ts.buildCache( c ); + } + // jQuery v1.2.6 doesn't have closest() + $cell = $.fn.closest ? $( this ).closest( 'th, td' ) : + /TH|TD/.test( this.nodeName ) ? $( this ) : $( this ).parents( 'th, td' ); + // reference original table headers and find the same cell + // don't use $headers or IE8 throws an error - see #987 + temp = $headers.index( $cell ); + c.last.clickedIndex = ( temp < 0 ) ? $cell.attr( 'data-column' ) : temp; + // use column index if $headers is undefined + cell = c.$headers[ c.last.clickedIndex ]; + if ( cell && !cell.sortDisabled ) { + ts.initSort( c, cell, e ); + } + }); + if ( c.cancelSelection ) { + // cancel selection + $headers + .attr( 'unselectable', 'on' ) + .bind( 'selectstart', false ) + .css({ + 'user-select' : 'none', + 'MozUserSelect' : 'none' // not needed for jQuery 1.8+ + }); + } + }, + + buildHeaders : function( c ) { + var $temp, icon, timer, indx; + c.headerList = []; + c.headerContent = []; + c.sortVars = []; + if ( c.debug ) { + timer = new Date(); + } + // children tr in tfoot - see issue #196 & #547 + c.columns = ts.computeColumnIndex( c.$table.children( 'thead, tfoot' ).children( 'tr' ) ); + // add icon if cssIcon option exists + icon = c.cssIcon ? + '' : + ''; + // redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683 + c.$headers = $( $.map( c.$table.find( c.selectorHeaders ), function( elem, index ) { + var configHeaders, header, column, template, tmp, + $elem = $( elem ); + // ignore cell (don't add it to c.$headers) if row has ignoreRow class + if ( $elem.parent().hasClass( c.cssIgnoreRow ) ) { return; } + // make sure to get header cell & not column indexed cell + configHeaders = ts.getColumnData( c.table, c.headers, index, true ); + // save original header content + c.headerContent[ index ] = $elem.html(); + // if headerTemplate is empty, don't reformat the header cell + if ( c.headerTemplate !== '' && !$elem.find( '.' + ts.css.headerIn ).length ) { + // set up header template + template = c.headerTemplate + .replace( ts.regex.templateContent, $elem.html() ) + .replace( ts.regex.templateIcon, $elem.find( '.' + ts.css.icon ).length ? '' : icon ); + if ( c.onRenderTemplate ) { + header = c.onRenderTemplate.apply( $elem, [ index, template ] ); + // only change t if something is returned + if ( header && typeof header === 'string' ) { + template = header; + } + } + $elem.html( '
                                  ' + template + '
                                  ' ); // faster than wrapInner + } + if ( c.onRenderHeader ) { + c.onRenderHeader.apply( $elem, [ index, c, c.$table ] ); + } + column = parseInt( $elem.attr( 'data-column' ), 10 ); + elem.column = column; + tmp = ts.getData( $elem, configHeaders, 'sortInitialOrder' ) || c.sortInitialOrder; + // this may get updated numerous times if there are multiple rows + c.sortVars[ column ] = { + count : -1, // set to -1 because clicking on the header automatically adds one + order: ts.formatSortingOrder( tmp ) ? + [ 1, 0, 2 ] : // desc, asc, unsorted + [ 0, 1, 2 ], // asc, desc, unsorted + lockedOrder : false + }; + tmp = ts.getData( $elem, configHeaders, 'lockedOrder' ) || false; + if ( typeof tmp !== 'undefined' && tmp !== false ) { + c.sortVars[ column ].lockedOrder = true; + c.sortVars[ column ].order = ts.formatSortingOrder( tmp ) ? [ 1, 1, 1 ] : [ 0, 0, 0 ]; + } + // add cell to headerList + c.headerList[ index ] = elem; + // add to parent in case there are multiple rows + $elem + .addClass( ts.css.header + ' ' + c.cssHeader ) + .parent() + .addClass( ts.css.headerRow + ' ' + c.cssHeaderRow ) + .attr( 'role', 'row' ); + // allow keyboard cursor to focus on element + if ( c.tabIndex ) { + $elem.attr( 'tabindex', 0 ); + } + return elem; + }) ); + // cache headers per column + c.$headerIndexed = []; + for ( indx = 0; indx < c.columns; indx++ ) { + // colspan in header making a column undefined + if ( ts.isEmptyObject( c.sortVars[ indx ] ) ) { + c.sortVars[ indx ] = {}; + } + $temp = c.$headers.filter( '[data-column="' + indx + '"]' ); + // target sortable column cells, unless there are none, then use non-sortable cells + // .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6 + c.$headerIndexed[ indx ] = $temp.length ? + $temp.not( '.sorter-false' ).length ? + $temp.not( '.sorter-false' ).filter( ':last' ) : + $temp.filter( ':last' ) : + $(); + } + c.$table.find( c.selectorHeaders ).attr({ + scope: 'col', + role : 'columnheader' + }); + // enable/disable sorting + ts.updateHeader( c ); + if ( c.debug ) { + console.log( 'Built headers:' + ts.benchmark( timer ) ); + console.log( c.$headers ); + } + }, + + // Use it to add a set of methods to table.config which will be available for all tables. + // This should be done before table initialization + addInstanceMethods : function( methods ) { + $.extend( ts.instanceMethods, methods ); + }, + + /* + █████▄ ▄████▄ █████▄ ▄█████ ██████ █████▄ ▄█████ + ██▄▄██ ██▄▄██ ██▄▄██ ▀█▄ ██▄▄ ██▄▄██ ▀█▄ + ██▀▀▀ ██▀▀██ ██▀██ ▀█▄ ██▀▀ ██▀██ ▀█▄ + ██ ██ ██ ██ ██ █████▀ ██████ ██ ██ █████▀ + */ + setupParsers : function( c, $tbodies ) { + var rows, list, span, max, colIndex, indx, header, configHeaders, + noParser, parser, extractor, time, tbody, len, + table = c.table, + tbodyIndex = 0, + debug = {}; + // update table bodies in case we start with an empty table + c.$tbodies = c.$table.children( 'tbody:not(.' + c.cssInfoBlock + ')' ); + tbody = typeof $tbodies === 'undefined' ? c.$tbodies : $tbodies; + len = tbody.length; + if ( len === 0 ) { + return c.debug ? console.warn( 'Warning: *Empty table!* Not building a parser cache' ) : ''; + } else if ( c.debug ) { + time = new Date(); + console[ console.group ? 'group' : 'log' ]( 'Detecting parsers for each column' ); + } + list = { + extractors: [], + parsers: [] + }; + while ( tbodyIndex < len ) { + rows = tbody[ tbodyIndex ].rows; + if ( rows.length ) { + colIndex = 0; + max = c.columns; + for ( indx = 0; indx < max; indx++ ) { + header = c.$headerIndexed[ colIndex ]; + if ( header && header.length ) { + // get column indexed table cell + configHeaders = ts.getColumnData( table, c.headers, colIndex ); + // get column parser/extractor + extractor = ts.getParserById( ts.getData( header, configHeaders, 'extractor' ) ); + parser = ts.getParserById( ts.getData( header, configHeaders, 'sorter' ) ); + noParser = ts.getData( header, configHeaders, 'parser' ) === 'false'; + // empty cells behaviour - keeping emptyToBottom for backwards compatibility + c.empties[colIndex] = ( + ts.getData( header, configHeaders, 'empty' ) || + c.emptyTo || ( c.emptyToBottom ? 'bottom' : 'top' ) ).toLowerCase(); + // text strings behaviour in numerical sorts + c.strings[colIndex] = ( + ts.getData( header, configHeaders, 'string' ) || + c.stringTo || + 'max' ).toLowerCase(); + if ( noParser ) { + parser = ts.getParserById( 'no-parser' ); + } + if ( !extractor ) { + // For now, maybe detect someday + extractor = false; + } + if ( !parser ) { + parser = ts.detectParserForColumn( c, rows, -1, colIndex ); + } + if ( c.debug ) { + debug[ '(' + colIndex + ') ' + header.text() ] = { + parser : parser.id, + extractor : extractor ? extractor.id : 'none', + string : c.strings[ colIndex ], + empty : c.empties[ colIndex ] + }; + } + list.parsers[ colIndex ] = parser; + list.extractors[ colIndex ] = extractor; + span = header[ 0 ].colSpan - 1; + if ( span > 0 ) { + colIndex += span; + max += span; + } + } + colIndex++; + } + } + tbodyIndex += ( list.parsers.length ) ? len : 1; + } + if ( c.debug ) { + if ( !ts.isEmptyObject( debug ) ) { + console[ console.table ? 'table' : 'log' ]( debug ); + } else { + console.warn( ' No parsers detected!' ); + } + console.log( 'Completed detecting parsers' + ts.benchmark( time ) ); + if ( console.groupEnd ) { console.groupEnd(); } + } + c.parsers = list.parsers; + c.extractors = list.extractors; + }, + + addParser : function( parser ) { + var indx, + len = ts.parsers.length, + add = true; + for ( indx = 0; indx < len; indx++ ) { + if ( ts.parsers[ indx ].id.toLowerCase() === parser.id.toLowerCase() ) { + add = false; + } + } + if ( add ) { + ts.parsers.push( parser ); + } + }, + + getParserById : function( name ) { + /*jshint eqeqeq:false */ + if ( name == 'false' ) { return false; } + var indx, + len = ts.parsers.length; + for ( indx = 0; indx < len; indx++ ) { + if ( ts.parsers[ indx ].id.toLowerCase() === ( name.toString() ).toLowerCase() ) { + return ts.parsers[ indx ]; + } + } + return false; + }, + + detectParserForColumn : function( c, rows, rowIndex, cellIndex ) { + var cur, $node, row, + indx = ts.parsers.length, + node = false, + nodeValue = '', + keepLooking = true; + while ( nodeValue === '' && keepLooking ) { + rowIndex++; + row = rows[ rowIndex ]; + // stop looking after 50 empty rows + if ( row && rowIndex < 50 ) { + if ( row.className.indexOf( ts.cssIgnoreRow ) < 0 ) { + node = rows[ rowIndex ].cells[ cellIndex ]; + nodeValue = ts.getElementText( c, node, cellIndex ); + $node = $( node ); + if ( c.debug ) { + console.log( 'Checking if value was empty on row ' + rowIndex + ', column: ' + + cellIndex + ': "' + nodeValue + '"' ); + } + } + } else { + keepLooking = false; + } + } + while ( --indx >= 0 ) { + cur = ts.parsers[ indx ]; + // ignore the default text parser because it will always be true + if ( cur && cur.id !== 'text' && cur.is && cur.is( nodeValue, c.table, node, $node ) ) { + return cur; + } + } + // nothing found, return the generic parser (text) + return ts.getParserById( 'text' ); + }, + + getElementText : function( c, node, cellIndex ) { + if ( !node ) { return ''; } + var tmp, + extract = c.textExtraction || '', + // node could be a jquery object + // http://jsperf.com/jquery-vs-instanceof-jquery/2 + $node = node.jquery ? node : $( node ); + if ( typeof extract === 'string' ) { + // check data-attribute first when set to 'basic'; don't use node.innerText - it's really slow! + // http://www.kellegous.com/j/2013/02/27/innertext-vs-textcontent/ + if ( extract === 'basic' && typeof ( tmp = $node.attr( c.textAttribute ) ) !== 'undefined' ) { + return $.trim( tmp ); + } + return $.trim( node.textContent || $node.text() ); + } else { + if ( typeof extract === 'function' ) { + return $.trim( extract( $node[ 0 ], c.table, cellIndex ) ); + } else if ( typeof ( tmp = ts.getColumnData( c.table, extract, cellIndex ) ) === 'function' ) { + return $.trim( tmp( $node[ 0 ], c.table, cellIndex ) ); + } + } + // fallback + return $.trim( $node[ 0 ].textContent || $node.text() ); + }, + + // centralized function to extract/parse cell contents + getParsedText : function( c, cell, colIndex, txt ) { + if ( typeof txt === 'undefined' ) { + txt = ts.getElementText( c, cell, colIndex ); + } + // if no parser, make sure to return the txt + var val = '' + txt, + parser = c.parsers[ colIndex ], + extractor = c.extractors[ colIndex ]; + if ( parser ) { + // do extract before parsing, if there is one + if ( extractor && typeof extractor.format === 'function' ) { + txt = extractor.format( txt, c.table, cell, colIndex ); + } + // allow parsing if the string is empty, previously parsing would change it to zero, + // in case the parser needs to extract data from the table cell attributes + val = parser.id === 'no-parser' ? '' : + // make sure txt is a string (extractor may have converted it) + parser.format( '' + txt, c.table, cell, colIndex ); + if ( c.ignoreCase && typeof val === 'string' ) { + val = val.toLowerCase(); + } + } + return val; + }, + + /* + ▄████▄ ▄████▄ ▄████▄ ██ ██ ██████ + ██ ▀▀ ██▄▄██ ██ ▀▀ ██▄▄██ ██▄▄ + ██ ▄▄ ██▀▀██ ██ ▄▄ ██▀▀██ ██▀▀ + ▀████▀ ██ ██ ▀████▀ ██ ██ ██████ + */ + buildCache : function( c, callback, $tbodies ) { + var cache, val, txt, rowIndex, colIndex, tbodyIndex, $tbody, $row, + cols, $cells, cell, cacheTime, totalRows, rowData, prevRowData, + colMax, span, cacheIndex, max, len, + table = c.table, + parsers = c.parsers; + // update tbody variable + c.$tbodies = c.$table.children( 'tbody:not(.' + c.cssInfoBlock + ')' ); + $tbody = typeof $tbodies === 'undefined' ? c.$tbodies : $tbodies, + c.cache = {}; + c.totalRows = 0; + // if no parsers found, return - it's an empty table. + if ( !parsers ) { + return c.debug ? console.warn( 'Warning: *Empty table!* Not building a cache' ) : ''; + } + if ( c.debug ) { + cacheTime = new Date(); + } + // processing icon + if ( c.showProcessing ) { + ts.isProcessing( table, true ); + } + for ( tbodyIndex = 0; tbodyIndex < $tbody.length; tbodyIndex++ ) { + colMax = []; // column max value per tbody + cache = c.cache[ tbodyIndex ] = { + normalized: [] // array of normalized row data; last entry contains 'rowData' above + // colMax: # // added at the end + }; + + totalRows = ( $tbody[ tbodyIndex ] && $tbody[ tbodyIndex ].rows.length ) || 0; + for ( rowIndex = 0; rowIndex < totalRows; ++rowIndex ) { + rowData = { + // order: original row order # + // $row : jQuery Object[] + child: [], // child row text (filter widget) + raw: [] // original row text + }; + /** Add the table data to main data array */ + $row = $( $tbody[ tbodyIndex ].rows[ rowIndex ] ); + cols = []; + // if this is a child row, add it to the last row's children and continue to the next row + // ignore child row class, if it is the first row + if ( $row.hasClass( c.cssChildRow ) && rowIndex !== 0 ) { + len = cache.normalized.length - 1; + prevRowData = cache.normalized[ len ][ c.columns ]; + prevRowData.$row = prevRowData.$row.add( $row ); + // add 'hasChild' class name to parent row + if ( !$row.prev().hasClass( c.cssChildRow ) ) { + $row.prev().addClass( ts.css.cssHasChild ); + } + // save child row content (un-parsed!) + $cells = $row.children( 'th, td' ); + len = prevRowData.child.length; + prevRowData.child[ len ] = []; + // child row content does not account for colspans/rowspans; so indexing may be off + cacheIndex = 0; + max = c.columns; + for ( colIndex = 0; colIndex < max; colIndex++ ) { + cell = $cells[ colIndex ]; + if ( cell ) { + prevRowData.child[ len ][ colIndex ] = ts.getParsedText( c, cell, colIndex ); + span = $cells[ colIndex ].colSpan - 1; + if ( span > 0 ) { + cacheIndex += span; + max += span; + } + } + cacheIndex++; + } + // go to the next for loop + continue; + } + rowData.$row = $row; + rowData.order = rowIndex; // add original row position to rowCache + cacheIndex = 0; + max = c.columns; + for ( colIndex = 0; colIndex < max; ++colIndex ) { + cell = $row[ 0 ].cells[ colIndex ]; + if ( typeof parsers[ cacheIndex ] === 'undefined' ) { + if ( c.debug ) { + console.warn( 'No parser found for column ' + colIndex + '; cell:', cell, 'does it have a header?' ); + } + } else if ( cell ) { + val = ts.getElementText( c, cell, cacheIndex ); + rowData.raw[ cacheIndex ] = val; // save original row text + txt = ts.getParsedText( c, cell, cacheIndex, val ); + cols[ cacheIndex ] = txt; + if ( ( parsers[ cacheIndex ].type || '' ).toLowerCase() === 'numeric' ) { + // determine column max value (ignore sign) + colMax[ cacheIndex ] = Math.max( Math.abs( txt ) || 0, colMax[ cacheIndex ] || 0 ); + } + // allow colSpan in tbody + span = cell.colSpan - 1; + if ( span > 0 ) { + cacheIndex += span; + max += span; + } + } + cacheIndex++; + } + // ensure rowData is always in the same location (after the last column) + cols[ c.columns ] = rowData; + cache.normalized.push( cols ); + } + cache.colMax = colMax; + // total up rows, not including child rows + c.totalRows += cache.normalized.length; + + } + if ( c.showProcessing ) { + ts.isProcessing( table ); // remove processing icon + } + if ( c.debug ) { + console.log( 'Building cache for ' + totalRows + ' rows' + ts.benchmark( cacheTime ) ); + } + if ( $.isFunction( callback ) ) { + callback( table ); + } + }, + + getColumnText : function( table, column, callback, rowFilter ) { + table = $( table )[0]; + var tbodyIndex, rowIndex, cache, row, tbodyLen, rowLen, raw, parsed, $cell, result, + hasCallback = typeof callback === 'function', + allColumns = column === 'all', + data = { raw : [], parsed: [], $cell: [] }, + c = table.config; + if ( ts.isEmptyObject( c ) ) { + if ( c.debug ) { + console.warn( 'No cache found - aborting getColumnText function!' ); + } + } else { + tbodyLen = c.$tbodies.length; + for ( tbodyIndex = 0; tbodyIndex < tbodyLen; tbodyIndex++ ) { + cache = c.cache[ tbodyIndex ].normalized; + rowLen = cache.length; + for ( rowIndex = 0; rowIndex < rowLen; rowIndex++ ) { + row = cache[ rowIndex ]; + if ( rowFilter && !row[ c.columns ].$row.is( rowFilter ) ) { + continue; + } + result = true; + parsed = ( allColumns ) ? row.slice( 0, c.columns ) : row[ column ]; + row = row[ c.columns ]; + raw = ( allColumns ) ? row.raw : row.raw[ column ]; + $cell = ( allColumns ) ? row.$row.children() : row.$row.children().eq( column ); + if ( hasCallback ) { + result = callback({ + tbodyIndex : tbodyIndex, + rowIndex : rowIndex, + parsed : parsed, + raw : raw, + $row : row.$row, + $cell : $cell + }); + } + if ( result !== false ) { + data.parsed.push( parsed ); + data.raw.push( raw ); + data.$cell.push( $cell ); + } + } + } + // return everything + return data; + } + }, + + /* + ██ ██ █████▄ █████▄ ▄████▄ ██████ ██████ + ██ ██ ██▄▄██ ██ ██ ██▄▄██ ██ ██▄▄ + ██ ██ ██▀▀▀ ██ ██ ██▀▀██ ██ ██▀▀ + ▀████▀ ██ █████▀ ██ ██ ██ ██████ + */ + setHeadersCss : function( c ) { + var $sorted, indx, column, + list = c.sortList, + len = list.length, + none = ts.css.sortNone + ' ' + c.cssNone, + css = [ ts.css.sortAsc + ' ' + c.cssAsc, ts.css.sortDesc + ' ' + c.cssDesc ], + cssIcon = [ c.cssIconAsc, c.cssIconDesc, c.cssIconNone ], + aria = [ 'ascending', 'descending' ], + // find the footer + $headers = c.$table + .find( 'tfoot tr' ) + .children() + .add( $( c.namespace + '_extra_headers' ) ) + .removeClass( css.join( ' ' ) ); + // remove all header information + c.$headers + .removeClass( css.join( ' ' ) ) + .addClass( none ) + .attr( 'aria-sort', 'none' ) + .find( '.' + ts.css.icon ) + .removeClass( cssIcon.join( ' ' ) ) + .addClass( cssIcon[ 2 ] ); + for ( indx = 0; indx < len; indx++ ) { + // direction = 2 means reset! + if ( list[ indx ][ 1 ] !== 2 ) { + // multicolumn sorting updating - see #1005 + // .not(function(){}) needs jQuery 1.4 + // filter(function(i, el){}) <- el is undefined in jQuery v1.2.6 + $sorted = c.$headers.filter( function( i ) { + // only include headers that are in the sortList (this includes colspans) + var include = true, + $el = c.$headers.eq( i ), + col = parseInt( $el.attr( 'data-column' ), 10 ), + end = col + c.$headers[ i ].colSpan; + for ( ; col < end; col++ ) { + include = include ? ts.isValueInArray( col, c.sortList ) > -1 : false; + } + return include; + }); + + // choose the :last in case there are nested columns + $sorted = $sorted + .not( '.sorter-false' ) + .filter( '[data-column="' + list[ indx ][ 0 ] + '"]' + ( len === 1 ? ':last' : '' ) ); + if ( $sorted.length ) { + for ( column = 0; column < $sorted.length; column++ ) { + if ( !$sorted[ column ].sortDisabled ) { + $sorted + .eq( column ) + .removeClass( none ) + .addClass( css[ list[ indx ][ 1 ] ] ) + .attr( 'aria-sort', aria[ list[ indx ][ 1 ] ] ) + .find( '.' + ts.css.icon ) + .removeClass( cssIcon[ 2 ] ) + .addClass( cssIcon[ list[ indx ][ 1 ] ] ); + } + } + // add sorted class to footer & extra headers, if they exist + if ( $headers.length ) { + $headers + .filter( '[data-column="' + list[ indx ][ 0 ] + '"]' ) + .removeClass( none ) + .addClass( css[ list[ indx ][ 1 ] ] ); + } + } + } + } + // add verbose aria labels + len = c.$headers.length; + for ( indx = 0; indx < len; indx++ ) { + ts.setColumnAriaLabel( c, c.$headers.eq( indx ) ); + } + }, + + // nextSort (optional), lets you disable next sort text + setColumnAriaLabel : function( c, $header, nextSort ) { + if ( $header.length ) { + var column = parseInt( $header.attr( 'data-column' ), 10 ), + tmp = $header.hasClass( ts.css.sortAsc ) ? + 'sortAsc' : + $header.hasClass( ts.css.sortDesc ) ? 'sortDesc' : 'sortNone', + txt = $.trim( $header.text() ) + ': ' + ts.language[ tmp ]; + if ( $header.hasClass( 'sorter-false' ) || nextSort === false ) { + txt += ts.language.sortDisabled; + } else { + nextSort = c.sortVars[ column ].order[ ( c.sortVars[ column ].count + 1 ) % ( c.sortReset ? 3 : 2 ) ]; + // if nextSort + txt += ts.language[ nextSort === 0 ? 'nextAsc' : nextSort === 1 ? 'nextDesc' : 'nextNone' ]; + } + $header.attr( 'aria-label', txt ); + } + }, + + updateHeader : function( c ) { + var index, isDisabled, $header, col, + table = c.table, + len = c.$headers.length; + for ( index = 0; index < len; index++ ) { + $header = c.$headers.eq( index ); + col = ts.getColumnData( table, c.headers, index, true ); + // add 'sorter-false' class if 'parser-false' is set + isDisabled = ts.getData( $header, col, 'sorter' ) === 'false' || ts.getData( $header, col, 'parser' ) === 'false'; + ts.setColumnSort( c, $header, isDisabled ); + } + }, + + setColumnSort : function( c, $header, isDisabled ) { + var id = c.table.id; + $header[ 0 ].sortDisabled = isDisabled; + $header[ isDisabled ? 'addClass' : 'removeClass' ]( 'sorter-false' ) + .attr( 'aria-disabled', '' + isDisabled ); + // disable tab index on disabled cells + if ( c.tabIndex ) { + if ( isDisabled ) { + $header.removeAttr( 'tabindex' ); + } else { + $header.attr( 'tabindex', '0' ); + } + } + // aria-controls - requires table ID + if ( id ) { + if ( isDisabled ) { + $header.removeAttr( 'aria-controls' ); + } else { + $header.attr( 'aria-controls', id ); + } + } + }, + + updateHeaderSortCount : function( c, list ) { + var col, dir, group, indx, primary, temp, val, order, + sortList = list || c.sortList, + len = sortList.length; + c.sortList = []; + for ( indx = 0; indx < len; indx++ ) { + val = sortList[ indx ]; + // ensure all sortList values are numeric - fixes #127 + col = parseInt( val[ 0 ], 10 ); + // prevents error if sorton array is wrong + if ( col < c.columns ) { + order = c.sortVars[ col ].order; + dir = ( '' + val[ 1 ] ).match( /^(1|d|s|o|n)/ ); + dir = dir ? dir[ 0 ] : ''; + // 0/(a)sc (default), 1/(d)esc, (s)ame, (o)pposite, (n)ext + switch ( dir ) { + case '1' : case 'd' : // descending + dir = 1; + break; + case 's' : // same direction (as primary column) + // if primary sort is set to 's', make it ascending + dir = primary || 0; + break; + case 'o' : + temp = order[ ( primary || 0 ) % ( c.sortReset ? 3 : 2 ) ]; + // opposite of primary column; but resets if primary resets + dir = temp === 0 ? 1 : temp === 1 ? 0 : 2; + break; + case 'n' : + dir = order[ ( ++c.sortVars[ col ].count ) % ( c.sortReset ? 3 : 2 ) ]; + break; + default : // ascending + dir = 0; + break; + } + primary = indx === 0 ? dir : primary; + group = [ col, parseInt( dir, 10 ) || 0 ]; + c.sortList.push( group ); + dir = $.inArray( group[ 1 ], order ); // fixes issue #167 + c.sortVars[ col ].count = dir >= 0 ? dir : group[ 1 ] % ( c.sortReset ? 3 : 2 ); + } + } + }, + + updateAll : function( c, resort, callback ) { + var table = c.table; + table.isUpdating = true; + ts.refreshWidgets( table, true, true ); + ts.buildHeaders( c ); + ts.bindEvents( table, c.$headers, true ); + ts.bindMethods( c ); + ts.commonUpdate( c, resort, callback ); + }, + + update : function( c, resort, callback ) { + var table = c.table; + table.isUpdating = true; + // update sorting (if enabled/disabled) + ts.updateHeader( c ); + ts.commonUpdate( c, resort, callback ); + }, + + // simple header update - see #989 + updateHeaders : function( c, callback ) { + c.table.isUpdating = true; + ts.buildHeaders( c ); + ts.bindEvents( c.table, c.$headers, true ); + ts.resortComplete( c, callback ); + }, + + updateCell : function( c, cell, resort, callback ) { + c.table.isUpdating = true; + c.$table.find( c.selectorRemove ).remove(); + // get position from the dom + var tmp, indx, row, icell, cache, len, + $tbodies = c.$tbodies, + $cell = $( cell ), + // update cache - format: function( s, table, cell, cellIndex ) + // no closest in jQuery v1.2.6 + tbodyIndex = $tbodies + .index( $.fn.closest ? $cell.closest( 'tbody' ) : $cell.parents( 'tbody' ).filter( ':first' ) ), + tbcache = c.cache[ tbodyIndex ], + $row = $.fn.closest ? $cell.closest( 'tr' ) : $cell.parents( 'tr' ).filter( ':first' ); + cell = $cell[ 0 ]; // in case cell is a jQuery object + // tbody may not exist if update is initialized while tbody is removed for processing + if ( $tbodies.length && tbodyIndex >= 0 ) { + row = $tbodies.eq( tbodyIndex ).find( 'tr' ).index( $row ); + cache = tbcache.normalized[ row ]; + len = $row[ 0 ].cells.length; + if ( len !== c.columns ) { + // colspan in here somewhere! + icell = 0; + tmp = false; + for ( indx = 0; indx < len; indx++ ) { + if ( !tmp && $row[ 0 ].cells[ indx ] !== cell ) { + icell += $row[ 0 ].cells[ indx ].colSpan; + } else { + tmp = true; + } + } + } else { + icell = $cell.index(); + } + tmp = ts.getElementText( c, cell, icell ); // raw + cache[ c.columns ].raw[ icell ] = tmp; + tmp = ts.getParsedText( c, cell, icell, tmp ); + cache[ icell ] = tmp; // parsed + cache[ c.columns ].$row = $row; + if ( ( c.parsers[ icell ].type || '' ).toLowerCase() === 'numeric' ) { + // update column max value (ignore sign) + tbcache.colMax[ icell ] = Math.max( Math.abs( tmp ) || 0, tbcache.colMax[ icell ] || 0 ); + } + tmp = resort !== 'undefined' ? resort : c.resort; + if ( tmp !== false ) { + // widgets will be reapplied + ts.checkResort( c, tmp, callback ); + } else { + // don't reapply widgets is resort is false, just in case it causes + // problems with element focus + ts.resortComplete( c, callback ); + } + } + }, + + addRows : function( c, $row, resort, callback ) { + var txt, val, tbodyIndex, rowIndex, rows, cellIndex, len, + cacheIndex, rowData, cells, cell, span, + // allow passing a row string if only one non-info tbody exists in the table + valid = typeof $row === 'string' && c.$tbodies.length === 1 && / 0 ) { + cacheIndex += span; + } + cacheIndex++; + } + // add the row data to the end + cells[ c.columns ] = rowData; + // update cache + c.cache[ tbodyIndex ].normalized.push( cells ); + } + // resort using current settings + ts.checkResort( c, resort, callback ); + } + }, + + updateCache : function( c, callback, $tbodies ) { + // rebuild parsers + if ( !( c.parsers && c.parsers.length ) ) { + ts.setupParsers( c, $tbodies ); + } + // rebuild the cache map + ts.buildCache( c, callback, $tbodies ); + }, + + // init flag (true) used by pager plugin to prevent widget application + // renamed from appendToTable + appendCache : function( c, init ) { + var parsed, totalRows, $tbody, $curTbody, rowIndex, tbodyIndex, appendTime, + table = c.table, + wo = c.widgetOptions, + $tbodies = c.$tbodies, + rows = [], + cache = c.cache; + // empty table - fixes #206/#346 + if ( ts.isEmptyObject( cache ) ) { + // run pager appender in case the table was just emptied + return c.appender ? c.appender( table, rows ) : + table.isUpdating ? c.$table.trigger( 'updateComplete', table ) : ''; // Fixes #532 + } + if ( c.debug ) { + appendTime = new Date(); + } + for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) { + $tbody = $tbodies.eq( tbodyIndex ); + if ( $tbody.length ) { + // detach tbody for manipulation + $curTbody = ts.processTbody( table, $tbody, true ); + parsed = cache[ tbodyIndex ].normalized; + totalRows = parsed.length; + for ( rowIndex = 0; rowIndex < totalRows; rowIndex++ ) { + rows.push( parsed[ rowIndex ][ c.columns ].$row ); + // removeRows used by the pager plugin; don't render if using ajax - fixes #411 + if ( !c.appender || ( c.pager && ( !c.pager.removeRows || !wo.pager_removeRows ) && !c.pager.ajax ) ) { + $curTbody.append( parsed[ rowIndex ][ c.columns ].$row ); + } + } + // restore tbody + ts.processTbody( table, $curTbody, false ); + } + } + if ( c.appender ) { + c.appender( table, rows ); + } + if ( c.debug ) { + console.log( 'Rebuilt table' + ts.benchmark( appendTime ) ); + } + // apply table widgets; but not before ajax completes + if ( !init && !c.appender ) { + ts.applyWidget( table ); + } + if ( table.isUpdating ) { + c.$table.trigger( 'updateComplete', table ); + } + }, + + commonUpdate : function( c, resort, callback ) { + // remove rows/elements before update + c.$table.find( c.selectorRemove ).remove(); + // rebuild parsers + ts.setupParsers( c ); + // rebuild the cache map + ts.buildCache( c ); + ts.checkResort( c, resort, callback ); + }, + + /* + ▄█████ ▄████▄ █████▄ ██████ ██ █████▄ ▄████▄ + ▀█▄ ██ ██ ██▄▄██ ██ ██ ██ ██ ██ ▄▄▄ + ▀█▄ ██ ██ ██▀██ ██ ██ ██ ██ ██ ▀██ + █████▀ ▀████▀ ██ ██ ██ ██ ██ ██ ▀████▀ + */ + initSort : function( c, cell, event ) { + if ( c.table.isUpdating ) { + // let any updates complete before initializing a sort + return setTimeout( function(){ + ts.initSort( c, cell, event ); + }, 50 ); + } + var arry, indx, headerIndx, dir, temp, tmp, $header, + notMultiSort = !event[ c.sortMultiSortKey ], + table = c.table, + len = c.$headers.length, + // get current column index + col = parseInt( $( cell ).attr( 'data-column' ), 10 ), + order = c.sortVars[ col ].order; + + // Only call sortStart if sorting is enabled + c.$table.trigger( 'sortStart', table ); + // get current column sort order + c.sortVars[ col ].count = + event[ c.sortResetKey ] ? 2 : ( c.sortVars[ col ].count + 1 ) % ( c.sortReset ? 3 : 2 ); + // reset all sorts on non-current column - issue #30 + if ( c.sortRestart ) { + for ( headerIndx = 0; headerIndx < len; headerIndx++ ) { + $header = c.$headers.eq( headerIndx ); + tmp = parseInt( $header.attr( 'data-column' ), 10 ); + // only reset counts on columns that weren't just clicked on and if not included in a multisort + if ( col !== tmp && ( notMultiSort || $header.hasClass( ts.css.sortNone ) ) ) { + c.sortVars[ tmp ].count = -1; + } + } + } + // user only wants to sort on one column + if ( notMultiSort ) { + // flush the sort list + c.sortList = []; + c.last.sortList = []; + if ( c.sortForce !== null ) { + arry = c.sortForce; + for ( indx = 0; indx < arry.length; indx++ ) { + if ( arry[ indx ][ 0 ] !== col ) { + c.sortList.push( arry[ indx ] ); + } + } + } + // add column to sort list + dir = order[ c.sortVars[ col ].count ]; + if ( dir < 2 ) { + c.sortList.push( [ col, dir ] ); + // add other columns if header spans across multiple + if ( cell.colSpan > 1 ) { + for ( indx = 1; indx < cell.colSpan; indx++ ) { + c.sortList.push( [ col + indx, dir ] ); + // update count on columns in colSpan + c.sortVars[ col + indx ].count = $.inArray( dir, order ); + } + } + } + // multi column sorting + } else { + // get rid of the sortAppend before adding more - fixes issue #115 & #523 + c.sortList = $.extend( [], c.last.sortList ); + + // the user has clicked on an already sorted column + if ( ts.isValueInArray( col, c.sortList ) >= 0 ) { + // reverse the sorting direction + for ( indx = 0; indx < c.sortList.length; indx++ ) { + tmp = c.sortList[ indx ]; + if ( tmp[ 0 ] === col ) { + // order.count seems to be incorrect when compared to cell.count + tmp[ 1 ] = order[ c.sortVars[ col ].count ]; + if ( tmp[1] === 2 ) { + c.sortList.splice( indx, 1 ); + c.sortVars[ col ].count = -1; + } + } + } + } else { + // add column to sort list array + dir = order[ c.sortVars[ col ].count ]; + if ( dir < 2 ) { + c.sortList.push( [ col, dir ] ); + // add other columns if header spans across multiple + if ( cell.colSpan > 1 ) { + for ( indx = 1; indx < cell.colSpan; indx++ ) { + c.sortList.push( [ col + indx, dir ] ); + // update count on columns in colSpan + c.sortVars[ col + indx ].count = $.inArray( dir, order ); + } + } + } + } + } + // save sort before applying sortAppend + c.last.sortList = $.extend( [], c.sortList ); + if ( c.sortList.length && c.sortAppend ) { + arry = $.isArray( c.sortAppend ) ? c.sortAppend : c.sortAppend[ c.sortList[ 0 ][ 0 ] ]; + if ( !ts.isEmptyObject( arry ) ) { + for ( indx = 0; indx < arry.length; indx++ ) { + if ( arry[ indx ][ 0 ] !== col && ts.isValueInArray( arry[ indx ][ 0 ], c.sortList ) < 0 ) { + dir = arry[ indx ][ 1 ]; + temp = ( '' + dir ).match( /^(a|d|s|o|n)/ ); + if ( temp ) { + tmp = c.sortList[ 0 ][ 1 ]; + switch ( temp[ 0 ] ) { + case 'd' : + dir = 1; + break; + case 's' : + dir = tmp; + break; + case 'o' : + dir = tmp === 0 ? 1 : 0; + break; + case 'n' : + dir = ( tmp + 1 ) % ( c.sortReset ? 3 : 2 ); + break; + default: + dir = 0; + break; + } + } + c.sortList.push( [ arry[ indx ][ 0 ], dir ] ); + } + } + } + } + // sortBegin event triggered immediately before the sort + c.$table.trigger( 'sortBegin', table ); + // setTimeout needed so the processing icon shows up + setTimeout( function() { + // set css for headers + ts.setHeadersCss( c ); + ts.multisort( c ); + ts.appendCache( c ); + c.$table.trigger( 'sortEnd', table ); + }, 1 ); + }, + + // sort multiple columns + multisort : function( c ) { /*jshint loopfunc:true */ + var tbodyIndex, sortTime, colMax, rows, + table = c.table, + dir = 0, + textSorter = c.textSorter || '', + sortList = c.sortList, + sortLen = sortList.length, + len = c.$tbodies.length; + if ( c.serverSideSorting || ts.isEmptyObject( c.cache ) ) { + // empty table - fixes #206/#346 + return; + } + if ( c.debug ) { sortTime = new Date(); } + for ( tbodyIndex = 0; tbodyIndex < len; tbodyIndex++ ) { + colMax = c.cache[ tbodyIndex ].colMax; + rows = c.cache[ tbodyIndex ].normalized; + + rows.sort( function( a, b ) { + var sortIndex, num, col, order, sort, x, y; + // rows is undefined here in IE, so don't use it! + for ( sortIndex = 0; sortIndex < sortLen; sortIndex++ ) { + col = sortList[ sortIndex ][ 0 ]; + order = sortList[ sortIndex ][ 1 ]; + // sort direction, true = asc, false = desc + dir = order === 0; + + if ( c.sortStable && a[ col ] === b[ col ] && sortLen === 1 ) { + return a[ c.columns ].order - b[ c.columns ].order; + } + + // fallback to natural sort since it is more robust + num = /n/i.test( ts.getSortType( c.parsers, col ) ); + if ( num && c.strings[ col ] ) { + // sort strings in numerical columns + if ( typeof ( ts.string[ c.strings[ col ] ] ) === 'boolean' ) { + num = ( dir ? 1 : -1 ) * ( ts.string[ c.strings[ col ] ] ? -1 : 1 ); + } else { + num = ( c.strings[ col ] ) ? ts.string[ c.strings[ col ] ] || 0 : 0; + } + // fall back to built-in numeric sort + // var sort = $.tablesorter['sort' + s]( a[col], b[col], dir, colMax[col], table ); + sort = c.numberSorter ? c.numberSorter( a[ col ], b[ col ], dir, colMax[ col ], table ) : + ts[ 'sortNumeric' + ( dir ? 'Asc' : 'Desc' ) ]( a[ col ], b[ col ], num, colMax[ col ], col, c ); + } else { + // set a & b depending on sort direction + x = dir ? a : b; + y = dir ? b : a; + // text sort function + if ( typeof textSorter === 'function' ) { + // custom OVERALL text sorter + sort = textSorter( x[ col ], y[ col ], dir, col, table ); + } else if ( typeof textSorter === 'object' && textSorter.hasOwnProperty( col ) ) { + // custom text sorter for a SPECIFIC COLUMN + sort = textSorter[ col ]( x[ col ], y[ col ], dir, col, table ); + } else { + // fall back to natural sort + sort = ts[ 'sortNatural' + ( dir ? 'Asc' : 'Desc' ) ]( a[ col ], b[ col ], col, c ); + } + } + if ( sort ) { return sort; } + } + return a[ c.columns ].order - b[ c.columns ].order; + }); + } + if ( c.debug ) { + console.log( 'Applying sort ' + sortList.toString() + ts.benchmark( sortTime ) ); + } + }, + + resortComplete : function( c, callback ) { + if ( c.table.isUpdating ) { + c.$table.trigger( 'updateComplete', c.table ); + } + if ( $.isFunction( callback ) ) { + callback( c.table ); + } + }, + + checkResort : function( c, resort, callback ) { + var sortList = $.isArray( resort ) ? resort : c.sortList, + // if no resort parameter is passed, fallback to config.resort (true by default) + resrt = typeof resort === 'undefined' ? c.resort : resort; + // don't try to resort if the table is still processing + // this will catch spamming of the updateCell method + if ( resrt !== false && !c.serverSideSorting && !c.table.isProcessing ) { + if ( sortList.length ) { + ts.sortOn( c, sortList, function() { + ts.resortComplete( c, callback ); + }, true ); + } else { + ts.sortReset( c, function() { + ts.resortComplete( c, callback ); + ts.applyWidget( c.table, false ); + } ); + } + } else { + ts.resortComplete( c, callback ); + ts.applyWidget( c.table, false ); + } + }, + + sortOn : function( c, list, callback, init ) { + var table = c.table; + c.$table.trigger( 'sortStart', table ); + // update header count index + ts.updateHeaderSortCount( c, list ); + // set css for headers + ts.setHeadersCss( c ); + // fixes #346 + if ( c.delayInit && ts.isEmptyObject( c.cache ) ) { + ts.buildCache( c ); + } + c.$table.trigger( 'sortBegin', table ); + // sort the table and append it to the dom + ts.multisort( c ); + ts.appendCache( c, init ); + c.$table.trigger( 'sortEnd', table ); + ts.applyWidget( table ); + if ( $.isFunction( callback ) ) { + callback( table ); + } + }, + + sortReset : function( c, callback ) { + c.sortList = []; + ts.setHeadersCss( c ); + ts.multisort( c ); + ts.appendCache( c ); + if ( $.isFunction( callback ) ) { + callback( c.table ); + } + }, + + getSortType : function( parsers, column ) { + return ( parsers && parsers[ column ] ) ? parsers[ column ].type || '' : ''; + }, + + formatSortingOrder : function( val ) { + // look for 'd' in 'desc' order; return true + return ( /^d/i.test( val ) || val === 1 ); + }, + + // Natural sort - https://github.com/overset/javascript-natural-sort (date sorting removed) + // this function will only accept strings, or you'll see 'TypeError: undefined is not a function' + // I could add a = a.toString(); b = b.toString(); but it'll slow down the sort overall + sortNatural : function( a, b ) { + if ( a === b ) { return 0; } + var aNum, bNum, aFloat, bFloat, indx, max, + regex = ts.regex; + // first try and sort Hex codes + if ( regex.hex.test( b ) ) { + aNum = parseInt( a.match( regex.hex ), 16 ); + bNum = parseInt( b.match( regex.hex ), 16 ); + if ( aNum < bNum ) { return -1; } + if ( aNum > bNum ) { return 1; } + } + // chunk/tokenize + aNum = a.replace( regex.chunk, '\\0$1\\0' ).replace( regex.chunks, '' ).split( '\\0' ); + bNum = b.replace( regex.chunk, '\\0$1\\0' ).replace( regex.chunks, '' ).split( '\\0' ); + max = Math.max( aNum.length, bNum.length ); + // natural sorting through split numeric strings and default strings + for ( indx = 0; indx < max; indx++ ) { + // find floats not starting with '0', string or 0 if not defined + aFloat = isNaN( aNum[ indx ] ) ? aNum[ indx ] || 0 : parseFloat( aNum[ indx ] ) || 0; + bFloat = isNaN( bNum[ indx ] ) ? bNum[ indx ] || 0 : parseFloat( bNum[ indx ] ) || 0; + // handle numeric vs string comparison - number < string - (Kyle Adams) + if ( isNaN( aFloat ) !== isNaN( bFloat ) ) { return isNaN( aFloat ) ? 1 : -1; } + // rely on string comparison if different types - i.e. '02' < 2 != '02' < '2' + if ( typeof aFloat !== typeof bFloat ) { + aFloat += ''; + bFloat += ''; + } + if ( aFloat < bFloat ) { return -1; } + if ( aFloat > bFloat ) { return 1; } + } + return 0; + }, + + sortNaturalAsc : function( a, b, col, c ) { + if ( a === b ) { return 0; } + var empty = ts.string[ ( c.empties[ col ] || c.emptyTo ) ]; + if ( a === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? -1 : 1 ) : -empty || -1; } + if ( b === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? 1 : -1 ) : empty || 1; } + return ts.sortNatural( a, b ); + }, + + sortNaturalDesc : function( a, b, col, c ) { + if ( a === b ) { return 0; } + var empty = ts.string[ ( c.empties[ col ] || c.emptyTo ) ]; + if ( a === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? -1 : 1 ) : empty || 1; } + if ( b === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? 1 : -1 ) : -empty || -1; } + return ts.sortNatural( b, a ); + }, + + // basic alphabetical sort + sortText : function( a, b ) { + return a > b ? 1 : ( a < b ? -1 : 0 ); + }, + + // return text string value by adding up ascii value + // so the text is somewhat sorted when using a digital sort + // this is NOT an alphanumeric sort + getTextValue : function( val, num, max ) { + if ( max ) { + // make sure the text value is greater than the max numerical value (max) + var indx, + len = val ? val.length : 0, + n = max + num; + for ( indx = 0; indx < len; indx++ ) { + n += val.charCodeAt( indx ); + } + return num * n; + } + return 0; + }, + + sortNumericAsc : function( a, b, num, max, col, c ) { + if ( a === b ) { return 0; } + var empty = ts.string[ ( c.empties[ col ] || c.emptyTo ) ]; + if ( a === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? -1 : 1 ) : -empty || -1; } + if ( b === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? 1 : -1 ) : empty || 1; } + if ( isNaN( a ) ) { a = ts.getTextValue( a, num, max ); } + if ( isNaN( b ) ) { b = ts.getTextValue( b, num, max ); } + return a - b; + }, + + sortNumericDesc : function( a, b, num, max, col, c ) { + if ( a === b ) { return 0; } + var empty = ts.string[ ( c.empties[ col ] || c.emptyTo ) ]; + if ( a === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? -1 : 1 ) : empty || 1; } + if ( b === '' && empty !== 0 ) { return typeof empty === 'boolean' ? ( empty ? 1 : -1 ) : -empty || -1; } + if ( isNaN( a ) ) { a = ts.getTextValue( a, num, max ); } + if ( isNaN( b ) ) { b = ts.getTextValue( b, num, max ); } + return b - a; + }, + + sortNumeric : function( a, b ) { + return a - b; + }, + + /* + ██ ██ ██ ██ █████▄ ▄████▄ ██████ ██████ ▄█████ + ██ ██ ██ ██ ██ ██ ██ ▄▄▄ ██▄▄ ██ ▀█▄ + ██ ██ ██ ██ ██ ██ ██ ▀██ ██▀▀ ██ ▀█▄ + ███████▀ ██ █████▀ ▀████▀ ██████ ██ █████▀ + */ + addWidget : function( widget ) { + ts.widgets.push( widget ); + }, + + hasWidget : function( $table, name ) { + $table = $( $table ); + return $table.length && $table[ 0 ].config && $table[ 0 ].config.widgetInit[ name ] || false; + }, + + getWidgetById : function( name ) { + var indx, widget, + len = ts.widgets.length; + for ( indx = 0; indx < len; indx++ ) { + widget = ts.widgets[ indx ]; + if ( widget && widget.id && widget.id.toLowerCase() === name.toLowerCase() ) { + return widget; + } + } + }, + + applyWidgetOptions : function( table ) { + var indx, widget, + c = table.config, + len = c.widgets.length; + if ( len ) { + for ( indx = 0; indx < len; indx++ ) { + widget = ts.getWidgetById( c.widgets[ indx ] ); + if ( widget && widget.options ) { + c.widgetOptions = $.extend( true, {}, widget.options, c.widgetOptions ); + } + } + } + }, + + addWidgetFromClass : function( table ) { + var len, indx, + c = table.config, + // look for widgets to apply from table class + // stop using \b otherwise this matches 'ui-widget-content' & adds 'content' widget + regex = '\\s' + c.widgetClass.replace( ts.regex.templateName, '([\\w-]+)' ) + '\\s', + widgetClass = new RegExp( regex, 'g' ), + // extract out the widget id from the table class (widget id's can include dashes) + widget = ( ' ' + c.table.className + ' ' ).match( widgetClass ); + if ( widget ) { + len = widget.length; + for ( indx = 0; indx < len; indx++ ) { + c.widgets.push( widget[ indx ].replace( widgetClass, '$1' ) ); + } + } + }, + + applyWidget : function( table, init, callback ) { + table = $( table )[ 0 ]; // in case this is called externally + var indx, len, names, widget, name, applied, time, time2, + c = table.config, + widgets = []; + // prevent numerous consecutive widget applications + if ( init !== false && table.hasInitialized && ( table.isApplyingWidgets || table.isUpdating ) ) { + return; + } + if ( c.debug ) { time = new Date(); } + ts.addWidgetFromClass( table ); + // prevent "tablesorter-ready" from firing multiple times in a row + clearTimeout( c.timerReady ); + if ( c.widgets.length ) { + table.isApplyingWidgets = true; + // ensure unique widget ids + c.widgets = $.grep( c.widgets, function( val, index ) { + return $.inArray( val, c.widgets ) === index; + }); + names = c.widgets || []; + len = names.length; + // build widget array & add priority as needed + for ( indx = 0; indx < len; indx++ ) { + widget = ts.getWidgetById( names[ indx ] ); + if ( widget && widget.id ) { + // set priority to 10 if not defined + if ( !widget.priority ) { widget.priority = 10; } + widgets[ indx ] = widget; + } + } + // sort widgets by priority + widgets.sort( function( a, b ) { + return a.priority < b.priority ? -1 : a.priority === b.priority ? 0 : 1; + }); + // add/update selected widgets + len = widgets.length; + if ( c.debug ) { + console[ console.group ? 'group' : 'log' ]( 'Start ' + ( init ? 'initializing' : 'applying' ) + ' widgets' ); + } + for ( indx = 0; indx < len; indx++ ) { + widget = widgets[ indx ]; + if ( widget ) { + name = widget.id; + applied = false; + if ( c.debug ) { time2 = new Date(); } + + if ( init || !( c.widgetInit[ name ] ) ) { + // set init flag first to prevent calling init more than once (e.g. pager) + c.widgetInit[ name ] = true; + if ( table.hasInitialized ) { + // don't reapply widget options on tablesorter init + ts.applyWidgetOptions( table ); + } + if ( typeof widget.init === 'function' ) { + applied = true; + if ( c.debug ) { + console[ console.group ? 'group' : 'log' ]( 'Initializing ' + name + ' widget' ); + } + widget.init( table, widget, table.config, table.config.widgetOptions ); + } + } + if ( !init && typeof widget.format === 'function' ) { + applied = true; + if ( c.debug ) { + console[ console.group ? 'group' : 'log' ]( 'Updating ' + name + ' widget' ); + } + widget.format( table, table.config, table.config.widgetOptions, false ); + } + if ( c.debug ) { + if ( applied ) { + console.log( 'Completed ' + ( init ? 'initializing ' : 'applying ' ) + name + ' widget' + ts.benchmark( time2 ) ); + if ( console.groupEnd ) { console.groupEnd(); } + } + } + } + } + if ( c.debug && console.groupEnd ) { console.groupEnd(); } + // callback executed on init only + if ( !init && typeof callback === 'function' ) { + callback( table ); + } + } + c.timerReady = setTimeout( function() { + table.isApplyingWidgets = false; + $.data( table, 'lastWidgetApplication', new Date() ); + c.$table.trigger( 'tablesorter-ready' ); + }, 10 ); + if ( c.debug ) { + widget = c.widgets.length; + console.log( 'Completed ' + + ( init === true ? 'initializing ' : 'applying ' ) + widget + + ' widget' + ( widget !== 1 ? 's' : '' ) + ts.benchmark( time ) ); + } + }, + + removeWidget : function( table, name, refreshing ) { + table = $( table )[ 0 ]; + var index, widget, indx, len, + c = table.config; + // if name === true, add all widgets from $.tablesorter.widgets + if ( name === true ) { + name = []; + len = ts.widgets.length; + for ( indx = 0; indx < len; indx++ ) { + widget = ts.widgets[ indx ]; + if ( widget && widget.id ) { + name.push( widget.id ); + } + } + } else { + // name can be either an array of widgets names, + // or a space/comma separated list of widget names + name = ( $.isArray( name ) ? name.join( ',' ) : name || '' ).toLowerCase().split( /[\s,]+/ ); + } + len = name.length; + for ( index = 0; index < len; index++ ) { + widget = ts.getWidgetById( name[ index ] ); + indx = $.inArray( name[ index ], c.widgets ); + if ( widget && widget.remove ) { + if ( c.debug ) { + console.log( ( refreshing ? 'Refreshing' : 'Removing' ) + ' "' + name[ index ] + '" widget' ); + } + widget.remove( table, c, c.widgetOptions, refreshing ); + c.widgetInit[ name[ index ] ] = false; + } + // don't remove the widget from config.widget if refreshing + if ( indx >= 0 && refreshing !== true ) { + c.widgets.splice( indx, 1 ); + } + } + }, + + refreshWidgets : function( table, doAll, dontapply ) { + table = $( table )[ 0 ]; // see issue #243 + var indx, widget, + c = table.config, + curWidgets = c.widgets, + widgets = ts.widgets, + len = widgets.length, + list = [], + callback = function( table ) { + $( table ).trigger( 'refreshComplete' ); + }; + // remove widgets not defined in config.widgets, unless doAll is true + for ( indx = 0; indx < len; indx++ ) { + widget = widgets[ indx ]; + if ( widget && widget.id && ( doAll || $.inArray( widget.id, curWidgets ) < 0 ) ) { + list.push( widget.id ); + } + } + ts.removeWidget( table, list.join( ',' ), true ); + if ( dontapply !== true ) { + // call widget init if + ts.applyWidget( table, doAll || false, callback ); + if ( doAll ) { + // apply widget format + ts.applyWidget( table, false, callback ); + } + } else { + callback( table ); + } + }, + + /* + ██ ██ ██████ ██ ██ ██ ██████ ██ ██████ ▄█████ + ██ ██ ██ ██ ██ ██ ██ ██ ██▄▄ ▀█▄ + ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀█▄ + ▀████▀ ██ ██ ██████ ██ ██ ██ ██████ █████▀ + */ + benchmark : function( diff ) { + return ( ' ( ' + ( new Date().getTime() - diff.getTime() ) + 'ms )' ); + }, + // deprecated ts.log + log : function() { + console.log( arguments ); + }, + + // $.isEmptyObject from jQuery v1.4 + isEmptyObject : function( obj ) { + /*jshint forin: false */ + for ( var name in obj ) { + return false; + } + return true; + }, + + isValueInArray : function( column, arry ) { + var indx, + len = arry && arry.length || 0; + for ( indx = 0; indx < len; indx++ ) { + if ( arry[ indx ][ 0 ] === column ) { + return indx; + } + } + return -1; + }, + + formatFloat : function( str, table ) { + if ( typeof str !== 'string' || str === '' ) { return str; } + // allow using formatFloat without a table; defaults to US number format + var num, + usFormat = table && table.config ? table.config.usNumberFormat !== false : + typeof table !== 'undefined' ? table : true; + if ( usFormat ) { + // US Format - 1,234,567.89 -> 1234567.89 + str = str.replace( ts.regex.comma, '' ); + } else { + // German Format = 1.234.567,89 -> 1234567.89 + // French Format = 1 234 567,89 -> 1234567.89 + str = str.replace( ts.regex.digitNonUS, '' ).replace( ts.regex.comma, '.' ); + } + if ( ts.regex.digitNegativeTest.test( str ) ) { + // make (#) into a negative number -> (10) = -10 + str = str.replace( ts.regex.digitNegativeReplace, '-$1' ); + } + num = parseFloat( str ); + // return the text instead of zero + return isNaN( num ) ? $.trim( str ) : num; + }, + + isDigit : function( str ) { + // replace all unwanted chars and match + return isNaN( str ) ? + ts.regex.digitTest.test( str.toString().replace( ts.regex.digitReplace, '' ) ) : + str !== ''; + }, + + // computeTableHeaderCellIndexes from: + // http://www.javascripttoolbox.com/lib/table/examples.php + // http://www.javascripttoolbox.com/temp/table_cellindex.html + computeColumnIndex : function( $rows ) { + var i, j, k, l, $cell, cell, cells, rowIndex, cellId, rowSpan, colSpan, firstAvailCol, + matrix = [], + matrixrow = []; + for ( i = 0; i < $rows.length; i++ ) { + cells = $rows[ i ].cells; + for ( j = 0; j < cells.length; j++ ) { + cell = cells[ j ]; + $cell = $( cell ); + rowIndex = cell.parentNode.rowIndex; + cellId = rowIndex + '-' + $cell.index(); + rowSpan = cell.rowSpan || 1; + colSpan = cell.colSpan || 1; + if ( typeof matrix[ rowIndex ] === 'undefined' ) { + matrix[ rowIndex ] = []; + } + // Find first available column in the first row + for ( k = 0; k < matrix[ rowIndex ].length + 1; k++ ) { + if ( typeof matrix[ rowIndex ][ k ] === 'undefined' ) { + firstAvailCol = k; + break; + } + } + // add data-column (setAttribute = IE8+) + if ( cell.setAttribute ) { + cell.setAttribute( 'data-column', firstAvailCol ); + } else { + $cell.attr( 'data-column', firstAvailCol ); + } + for ( k = rowIndex; k < rowIndex + rowSpan; k++ ) { + if ( typeof matrix[ k ] === 'undefined' ) { + matrix[ k ] = []; + } + matrixrow = matrix[ k ]; + for ( l = firstAvailCol; l < firstAvailCol + colSpan; l++ ) { + matrixrow[ l ] = 'x'; + } + } + } + } + return matrixrow.length; + }, + + // automatically add a colgroup with col elements set to a percentage width + fixColumnWidth : function( table ) { + table = $( table )[ 0 ]; + var overallWidth, percent, $tbodies, len, index, + c = table.config, + $colgroup = c.$table.children( 'colgroup' ); + // remove plugin-added colgroup, in case we need to refresh the widths + if ( $colgroup.length && $colgroup.hasClass( ts.css.colgroup ) ) { + $colgroup.remove(); + } + if ( c.widthFixed && c.$table.children( 'colgroup' ).length === 0 ) { + $colgroup = $( '' ); + overallWidth = c.$table.width(); + // only add col for visible columns - fixes #371 + $tbodies = c.$tbodies.find( 'tr:first' ).children( ':visible' ); + len = $tbodies.length; + for ( index = 0; index < len; index++ ) { + percent = parseInt( ( $tbodies.eq( index ).width() / overallWidth ) * 1000, 10 ) / 10 + '%'; + $colgroup.append( $( '' ).css( 'width', percent ) ); + } + c.$table.prepend( $colgroup ); + } + }, + + // get sorter, string, empty, etc options for each column from + // jQuery data, metadata, header option or header class name ('sorter-false') + // priority = jQuery data > meta > headers option > header class name + getData : function( header, configHeader, key ) { + var meta, cl4ss, + val = '', + $header = $( header ); + if ( !$header.length ) { return ''; } + meta = $.metadata ? $header.metadata() : false; + cl4ss = ' ' + ( $header.attr( 'class' ) || '' ); + if ( typeof $header.data( key ) !== 'undefined' || + typeof $header.data( key.toLowerCase() ) !== 'undefined' ) { + // 'data-lockedOrder' is assigned to 'lockedorder'; but 'data-locked-order' is assigned to 'lockedOrder' + // 'data-sort-initial-order' is assigned to 'sortInitialOrder' + val += $header.data( key ) || $header.data( key.toLowerCase() ); + } else if ( meta && typeof meta[ key ] !== 'undefined' ) { + val += meta[ key ]; + } else if ( configHeader && typeof configHeader[ key ] !== 'undefined' ) { + val += configHeader[ key ]; + } else if ( cl4ss !== ' ' && cl4ss.match( ' ' + key + '-' ) ) { + // include sorter class name 'sorter-text', etc; now works with 'sorter-my-custom-parser' + val = cl4ss.match( new RegExp( '\\s' + key + '-([\\w-]+)' ) )[ 1 ] || ''; + } + return $.trim( val ); + }, + + getColumnData : function( table, obj, indx, getCell, $headers ) { + if ( typeof obj === 'undefined' || obj === null ) { return; } + table = $( table )[ 0 ]; + var $header, key, + c = table.config, + $cells = ( $headers || c.$headers ), + // c.$headerIndexed is not defined initially + $cell = c.$headerIndexed && c.$headerIndexed[ indx ] || + $cells.filter( '[data-column="' + indx + '"]:last' ); + if ( obj[ indx ] ) { + return getCell ? obj[ indx ] : obj[ $cells.index( $cell ) ]; + } + for ( key in obj ) { + if ( typeof key === 'string' ) { + $header = $cell + // header cell with class/id + .filter( key ) + // find elements within the header cell with cell/id + .add( $cell.find( key ) ); + if ( $header.length ) { + return obj[ key ]; + } + } + } + return; + }, + + // *** Process table *** + // add processing indicator + isProcessing : function( $table, toggle, $headers ) { + $table = $( $table ); + var c = $table[ 0 ].config, + // default to all headers + $header = $headers || $table.find( '.' + ts.css.header ); + if ( toggle ) { + // don't use sortList if custom $headers used + if ( typeof $headers !== 'undefined' && c.sortList.length > 0 ) { + // get headers from the sortList + $header = $header.filter( function() { + // get data-column from attr to keep compatibility with jQuery 1.2.6 + return this.sortDisabled ? + false : + ts.isValueInArray( parseFloat( $( this ).attr( 'data-column' ) ), c.sortList ) >= 0; + }); + } + $table.add( $header ).addClass( ts.css.processing + ' ' + c.cssProcessing ); + } else { + $table.add( $header ).removeClass( ts.css.processing + ' ' + c.cssProcessing ); + } + }, + + // detach tbody but save the position + // don't use tbody because there are portions that look for a tbody index (updateCell) + processTbody : function( table, $tb, getIt ) { + table = $( table )[ 0 ]; + if ( getIt ) { + table.isProcessing = true; + $tb.before( '' ); + return $.fn.detach ? $tb.detach() : $tb.remove(); + } + var holdr = $( table ).find( 'colgroup.tablesorter-savemyplace' ); + $tb.insertAfter( holdr ); + holdr.remove(); + table.isProcessing = false; + }, + + clearTableBody : function( table ) { + $( table )[ 0 ].config.$tbodies.children().detach(); + }, + + // used when replacing accented characters during sorting + characterEquivalents : { + 'a' : '\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5', // áàâãäąå + 'A' : '\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5', // ÁÀÂÃÄĄÅ + 'c' : '\u00e7\u0107\u010d', // çćč + 'C' : '\u00c7\u0106\u010c', // ÇĆČ + 'e' : '\u00e9\u00e8\u00ea\u00eb\u011b\u0119', // éèêëěę + 'E' : '\u00c9\u00c8\u00ca\u00cb\u011a\u0118', // ÉÈÊËĚĘ + 'i' : '\u00ed\u00ec\u0130\u00ee\u00ef\u0131', // íìİîïı + 'I' : '\u00cd\u00cc\u0130\u00ce\u00cf', // ÍÌİÎÏ + 'o' : '\u00f3\u00f2\u00f4\u00f5\u00f6\u014d', // óòôõöō + 'O' : '\u00d3\u00d2\u00d4\u00d5\u00d6\u014c', // ÓÒÔÕÖŌ + 'ss': '\u00df', // ß (s sharp) + 'SS': '\u1e9e', // ẞ (Capital sharp s) + 'u' : '\u00fa\u00f9\u00fb\u00fc\u016f', // úùûüů + 'U' : '\u00da\u00d9\u00db\u00dc\u016e' // ÚÙÛÜŮ + }, + + replaceAccents : function( str ) { + var chr, + acc = '[', + eq = ts.characterEquivalents; + if ( !ts.characterRegex ) { + ts.characterRegexArray = {}; + for ( chr in eq ) { + if ( typeof chr === 'string' ) { + acc += eq[ chr ]; + ts.characterRegexArray[ chr ] = new RegExp( '[' + eq[ chr ] + ']', 'g' ); + } + } + ts.characterRegex = new RegExp( acc + ']' ); + } + if ( ts.characterRegex.test( str ) ) { + for ( chr in eq ) { + if ( typeof chr === 'string' ) { + str = str.replace( ts.characterRegexArray[ chr ], chr ); + } + } + } + return str; + }, + + // restore headers + restoreHeaders : function( table ) { + var index, $cell, + c = $( table )[ 0 ].config, + $headers = c.$table.find( c.selectorHeaders ), + len = $headers.length; + // don't use c.$headers here in case header cells were swapped + for ( index = 0; index < len; index++ ) { + $cell = $headers.eq( index ); + // only restore header cells if it is wrapped + // because this is also used by the updateAll method + if ( $cell.find( '.' + ts.css.headerIn ).length ) { + $cell.html( c.headerContent[ index ] ); + } + } + }, + + destroy : function( table, removeClasses, callback ) { + table = $( table )[ 0 ]; + if ( !table.hasInitialized ) { return; } + // remove all widgets + ts.removeWidget( table, true, false ); + var events, + $t = $( table ), + c = table.config, + debug = c.debug, + $h = $t.find( 'thead:first' ), + $r = $h.find( 'tr.' + ts.css.headerRow ).removeClass( ts.css.headerRow + ' ' + c.cssHeaderRow ), + $f = $t.find( 'tfoot:first > tr' ).children( 'th, td' ); + if ( removeClasses === false && $.inArray( 'uitheme', c.widgets ) >= 0 ) { + // reapply uitheme classes, in case we want to maintain appearance + $t.trigger( 'applyWidgetId', [ 'uitheme' ] ); + $t.trigger( 'applyWidgetId', [ 'zebra' ] ); + } + // remove widget added rows, just in case + $h.find( 'tr' ).not( $r ).remove(); + // disable tablesorter + events = 'sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton ' + + 'appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress ' + + 'sortBegin sortEnd resetToLoadState '.split( ' ' ) + .join( c.namespace + ' ' ); + $t + .removeData( 'tablesorter' ) + .unbind( events.replace( ts.regex.spaces, ' ' ) ); + c.$headers + .add( $f ) + .removeClass( [ ts.css.header, c.cssHeader, c.cssAsc, c.cssDesc, ts.css.sortAsc, ts.css.sortDesc, ts.css.sortNone ].join( ' ' ) ) + .removeAttr( 'data-column' ) + .removeAttr( 'aria-label' ) + .attr( 'aria-disabled', 'true' ); + $r + .find( c.selectorSort ) + .unbind( ( 'mousedown mouseup keypress '.split( ' ' ).join( c.namespace + ' ' ) ).replace( ts.regex.spaces, ' ' ) ); + ts.restoreHeaders( table ); + $t.toggleClass( ts.css.table + ' ' + c.tableClass + ' tablesorter-' + c.theme, removeClasses === false ); + // clear flag in case the plugin is initialized again + table.hasInitialized = false; + delete table.config.cache; + if ( typeof callback === 'function' ) { + callback( table ); + } + if ( debug ) { + console.log( 'tablesorter has been removed' ); + } + } + + }; + + $.fn.tablesorter = function( settings ) { + return this.each( function() { + var table = this, + // merge & extend config options + c = $.extend( true, {}, ts.defaults, settings, ts.instanceMethods ); + // save initial settings + c.originalSettings = settings; + // create a table from data (build table widget) + if ( !table.hasInitialized && ts.buildTable && this.nodeName !== 'TABLE' ) { + // return the table (in case the original target is the table's container) + ts.buildTable( table, c ); + } else { + ts.setup( table, c ); + } + }); + }; + + // set up debug logs + if ( !( window.console && window.console.log ) ) { + // access $.tablesorter.logs for browsers that don't have a console... + ts.logs = []; + /*jshint -W020 */ + console = {}; + console.log = console.warn = console.error = console.table = function() { + var arg = arguments.length > 1 ? arguments : arguments[0]; + ts.logs.push({ date: Date.now(), log: arg }); + }; + } + + // add default parsers + ts.addParser({ + id : 'no-parser', + is : function() { + return false; + }, + format : function() { + return ''; + }, + type : 'text' + }); + + ts.addParser({ + id : 'text', + is : function() { + return true; + }, + format : function( str, table ) { + var c = table.config; + if ( str ) { + str = $.trim( c.ignoreCase ? str.toLocaleLowerCase() : str ); + str = c.sortLocaleCompare ? ts.replaceAccents( str ) : str; + } + return str; + }, + type : 'text' + }); + + ts.regex.nondigit = /[^\w,. \-()]/g; + ts.addParser({ + id : 'digit', + is : function( str ) { + return ts.isDigit( str ); + }, + format : function( str, table ) { + var num = ts.formatFloat( ( str || '' ).replace( ts.regex.nondigit, '' ), table ); + return str && typeof num === 'number' ? num : + str ? $.trim( str && table.config.ignoreCase ? str.toLocaleLowerCase() : str ) : str; + }, + type : 'numeric' + }); + + ts.regex.currencyReplace = /[+\-,. ]/g; + ts.regex.currencyTest = /^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/; + ts.addParser({ + id : 'currency', + is : function( str ) { + str = ( str || '' ).replace( ts.regex.currencyReplace, '' ); + // test for £$€¤¥¢ + return ts.regex.currencyTest.test( str ); + }, + format : function( str, table ) { + var num = ts.formatFloat( ( str || '' ).replace( ts.regex.nondigit, '' ), table ); + return str && typeof num === 'number' ? num : + str ? $.trim( str && table.config.ignoreCase ? str.toLocaleLowerCase() : str ) : str; + }, + type : 'numeric' + }); + + // too many protocols to add them all https://en.wikipedia.org/wiki/URI_scheme + // now, this regex can be updated before initialization + ts.regex.urlProtocolTest = /^(https?|ftp|file):\/\//; + ts.regex.urlProtocolReplace = /(https?|ftp|file):\/\//; + ts.addParser({ + id : 'url', + is : function( str ) { + return ts.regex.urlProtocolTest.test( str ); + }, + format : function( str ) { + return str ? $.trim( str.replace( ts.regex.urlProtocolReplace, '' ) ) : str; + }, + parsed : true, // filter widget flag + type : 'text' + }); + + ts.regex.dash = /-/g; + ts.regex.isoDate = /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/; + ts.addParser({ + id : 'isoDate', + is : function( str ) { + return ts.regex.isoDate.test( str ); + }, + format : function( str, table ) { + var date = str ? new Date( str.replace( ts.regex.dash, '/' ) ) : str; + return date instanceof Date && isFinite( date ) ? date.getTime() : str; + }, + type : 'numeric' + }); + + ts.regex.percent = /%/g; + ts.regex.percentTest = /(\d\s*?%|%\s*?\d)/; + ts.addParser({ + id : 'percent', + is : function( str ) { + return ts.regex.percentTest.test( str ) && str.length < 15; + }, + format : function( str, table ) { + return str ? ts.formatFloat( str.replace( ts.regex.percent, '' ), table ) : str; + }, + type : 'numeric' + }); + + // added image parser to core v2.17.9 + ts.addParser({ + id : 'image', + is : function( str, table, node, $node ) { + return $node.find( 'img' ).length > 0; + }, + format : function( str, table, cell ) { + return $( cell ).find( 'img' ).attr( table.config.imgAttr || 'alt' ) || str; + }, + parsed : true, // filter widget flag + type : 'text' + }); + + ts.regex.dateReplace = /(\S)([AP]M)$/i; // used by usLongDate & time parser + ts.regex.usLongDateTest1 = /^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i; + ts.regex.usLongDateTest2 = /^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i; + ts.addParser({ + id : 'usLongDate', + is : function( str ) { + // two digit years are not allowed cross-browser + // Jan 01, 2013 12:34:56 PM or 01 Jan 2013 + return ts.regex.usLongDateTest1.test( str ) || ts.regex.usLongDateTest2.test( str ); + }, + format : function( str, table ) { + var date = str ? new Date( str.replace( ts.regex.dateReplace, '$1 $2' ) ) : str; + return date instanceof Date && isFinite( date ) ? date.getTime() : str; + }, + type : 'numeric' + }); + + // testing for ##-##-#### or ####-##-##, so it's not perfect; time can be included + ts.regex.shortDateTest = /(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/; + // escaped "-" because JSHint in Firefox was showing it as an error + ts.regex.shortDateReplace = /[\-.,]/g; + // XXY covers MDY & DMY formats + ts.regex.shortDateXXY = /(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/; + ts.regex.shortDateYMD = /(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/; + ts.convertFormat = function( dateString, format ) { + dateString = ( dateString || '' ) + .replace( ts.regex.spaces, ' ' ) + .replace( ts.regex.shortDateReplace, '/' ); + if ( format === 'mmddyyyy' ) { + dateString = dateString.replace( ts.regex.shortDateXXY, '$3/$1/$2' ); + } else if ( format === 'ddmmyyyy' ) { + dateString = dateString.replace( ts.regex.shortDateXXY, '$3/$2/$1' ); + } else if ( format === 'yyyymmdd' ) { + dateString = dateString.replace( ts.regex.shortDateYMD, '$1/$2/$3' ); + } + var date = new Date( dateString ); + return date instanceof Date && isFinite( date ) ? date.getTime() : ''; + }; + + ts.addParser({ + id : 'shortDate', // 'mmddyyyy', 'ddmmyyyy' or 'yyyymmdd' + is : function( str ) { + str = ( str || '' ).replace( ts.regex.spaces, ' ' ).replace( ts.regex.shortDateReplace, '/' ); + return ts.regex.shortDateTest.test( str ); + }, + format : function( str, table, cell, cellIndex ) { + if ( str ) { + var c = table.config, + $header = c.$headerIndexed[ cellIndex ], + format = $header.length && $header.data( 'dateFormat' ) || + ts.getData( $header, ts.getColumnData( table, c.headers, cellIndex ), 'dateFormat' ) || + c.dateFormat; + // save format because getData can be slow... + if ( $header.length ) { + $header.data( 'dateFormat', format ); + } + return ts.convertFormat( str, format ) || str; + } + return str; + }, + type : 'numeric' + }); + + // match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk + ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)$/i; + ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i; + ts.addParser({ + id : 'time', + is : function( str ) { + return ts.regex.timeTest.test( str ); + }, + format : function( str, table ) { + // isolate time... ignore month, day and year + var temp, + timePart = ( str || '' ).match( ts.regex.timeMatch ), + orig = new Date( str ), + // no time component? default to 00:00 by leaving it out, but only if str is defined + time = str && ( timePart !== null ? timePart[ 0 ] : '00:00 AM' ), + date = time ? new Date( '2000/01/01 ' + time.replace( ts.regex.dateReplace, '$1 $2' ) ) : time; + if ( date instanceof Date && isFinite( date ) ) { + temp = orig instanceof Date && isFinite( orig ) ? orig.getTime() : 0; + // if original string was a valid date, add it to the decimal so the column sorts in some kind of order + // luckily new Date() ignores the decimals + return temp ? parseFloat( date.getTime() + '.' + orig.getTime() ) : date.getTime(); + } + return str; + }, + type : 'numeric' + }); + + ts.addParser({ + id : 'metadata', + is : function() { + return false; + }, + format : function( str, table, cell ) { + var c = table.config, + p = ( !c.parserMetadataName ) ? 'sortValue' : c.parserMetadataName; + return $( cell ).metadata()[ p ]; + }, + type : 'numeric' + }); + + /* + ██████ ██████ █████▄ █████▄ ▄████▄ + ▄█▀ ██▄▄ ██▄▄██ ██▄▄██ ██▄▄██ + ▄█▀ ██▀▀ ██▀▀██ ██▀▀█ ██▀▀██ + ██████ ██████ █████▀ ██ ██ ██ ██ + */ + // add default widgets + ts.addWidget({ + id : 'zebra', + priority : 90, + format : function( table, c, wo ) { + var $visibleRows, $row, count, isEven, tbodyIndex, rowIndex, len, + child = new RegExp( c.cssChildRow, 'i' ), + $tbodies = c.$tbodies.add( $( c.namespace + '_extra_table' ).children( 'tbody:not(.' + c.cssInfoBlock + ')' ) ); + for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) { + // loop through the visible rows + count = 0; + $visibleRows = $tbodies.eq( tbodyIndex ).children( 'tr:visible' ).not( c.selectorRemove ); + len = $visibleRows.length; + for ( rowIndex = 0; rowIndex < len; rowIndex++ ) { + $row = $visibleRows.eq( rowIndex ); + // style child rows the same way the parent row was styled + if ( !child.test( $row[ 0 ].className ) ) { count++; } + isEven = ( count % 2 === 0 ); + $row + .removeClass( wo.zebra[ isEven ? 1 : 0 ] ) + .addClass( wo.zebra[ isEven ? 0 : 1 ] ); + } + } + }, + remove : function( table, c, wo, refreshing ) { + if ( refreshing ) { return; } + var tbodyIndex, $tbody, + $tbodies = c.$tbodies, + toRemove = ( wo.zebra || [ 'even', 'odd' ] ).join( ' ' ); + for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ){ + $tbody = ts.processTbody( table, $tbodies.eq( tbodyIndex ), true ); // remove tbody + $tbody.children().removeClass( toRemove ); + ts.processTbody( table, $tbody, false ); // restore tbody + } + } + }); + +})( jQuery ); + +/*! Widget: storage - updated 3/26/2015 (v2.21.3) */ +/*global JSON:false */ +;(function ($, window, document) { + 'use strict'; + + var ts = $.tablesorter || {}; + // *** Store data in local storage, with a cookie fallback *** + /* IE7 needs JSON library for JSON.stringify - (http://caniuse.com/#search=json) + if you need it, then include https://github.com/douglascrockford/JSON-js + + $.parseJSON is not available is jQuery versions older than 1.4.1, using older + versions will only allow storing information for one page at a time + + // *** Save data (JSON format only) *** + // val must be valid JSON... use http://jsonlint.com/ to ensure it is valid + var val = { "mywidget" : "data1" }; // valid JSON uses double quotes + // $.tablesorter.storage(table, key, val); + $.tablesorter.storage(table, 'tablesorter-mywidget', val); + + // *** Get data: $.tablesorter.storage(table, key); *** + v = $.tablesorter.storage(table, 'tablesorter-mywidget'); + // val may be empty, so also check for your data + val = (v && v.hasOwnProperty('mywidget')) ? v.mywidget : ''; + alert(val); // 'data1' if saved, or '' if not + */ + ts.storage = function(table, key, value, options) { + table = $(table)[0]; + var cookieIndex, cookies, date, + hasStorage = false, + values = {}, + c = table.config, + wo = c && c.widgetOptions, + storageType = ( options && options.useSessionStorage ) || ( wo && wo.storage_useSessionStorage ) ? + 'sessionStorage' : 'localStorage', + $table = $(table), + // id from (1) options ID, (2) table 'data-table-group' attribute, (3) widgetOptions.storage_tableId, + // (4) table ID, then (5) table index + id = options && options.id || + $table.attr( options && options.group || wo && wo.storage_group || 'data-table-group') || + wo && wo.storage_tableId || table.id || $('.tablesorter').index( $table ), + // url from (1) options url, (2) table 'data-table-page' attribute, (3) widgetOptions.storage_fixedUrl, + // (4) table.config.fixedUrl (deprecated), then (5) window location path + url = options && options.url || + $table.attr(options && options.page || wo && wo.storage_page || 'data-table-page') || + wo && wo.storage_fixedUrl || c && c.fixedUrl || window.location.pathname; + // https://gist.github.com/paulirish/5558557 + if (storageType in window) { + try { + window[storageType].setItem('_tmptest', 'temp'); + hasStorage = true; + window[storageType].removeItem('_tmptest'); + } catch (error) { + if (c && c.debug) { + console.warn( storageType + ' is not supported in this browser' ); + } + } + } + // *** get value *** + if ($.parseJSON) { + if (hasStorage) { + values = $.parseJSON( window[storageType][key] || 'null' ) || {}; + } else { + // old browser, using cookies + cookies = document.cookie.split(/[;\s|=]/); + // add one to get from the key to the value + cookieIndex = $.inArray(key, cookies) + 1; + values = (cookieIndex !== 0) ? $.parseJSON(cookies[cookieIndex] || 'null') || {} : {}; + } + } + // allow value to be an empty string too + if ((value || value === '') && window.JSON && JSON.hasOwnProperty('stringify')) { + // add unique identifiers = url pathname > table ID/index on page > data + if (!values[url]) { + values[url] = {}; + } + values[url][id] = value; + // *** set value *** + if (hasStorage) { + window[storageType][key] = JSON.stringify(values); + } else { + date = new Date(); + date.setTime(date.getTime() + (31536e+6)); // 365 days + document.cookie = key + '=' + (JSON.stringify(values)).replace(/\"/g, '\"') + '; expires=' + date.toGMTString() + '; path=/'; + } + } else { + return values && values[url] ? values[url][id] : ''; + } + }; + +})(jQuery, window, document); + +/*! Widget: uitheme - updated 3/26/2015 (v2.21.3) */ +;(function ($) { + 'use strict'; + var ts = $.tablesorter || {}; + + ts.themes = { + 'bootstrap' : { + table : 'table table-bordered table-striped', + caption : 'caption', + // header class names + header : 'bootstrap-header', // give the header a gradient background (theme.bootstrap_2.css) + sortNone : '', + sortAsc : '', + sortDesc : '', + active : '', // applied when column is sorted + hover : '', // custom css required - a defined bootstrap style may not override other classes + // icon class names + icons : '', // add 'icon-white' to make them white; this icon class is added to the in the header + iconSortNone : 'bootstrap-icon-unsorted', // class name added to icon when column is not sorted + iconSortAsc : 'icon-chevron-up glyphicon glyphicon-chevron-up', // class name added to icon when column has ascending sort + iconSortDesc : 'icon-chevron-down glyphicon glyphicon-chevron-down', // class name added to icon when column has descending sort + filterRow : '', // filter row class + footerRow : '', + footerCells : '', + even : '', // even row zebra striping + odd : '' // odd row zebra striping + }, + 'jui' : { + table : 'ui-widget ui-widget-content ui-corner-all', // table classes + caption : 'ui-widget-content', + // header class names + header : 'ui-widget-header ui-corner-all ui-state-default', // header classes + sortNone : '', + sortAsc : '', + sortDesc : '', + active : 'ui-state-active', // applied when column is sorted + hover : 'ui-state-hover', // hover class + // icon class names + icons : 'ui-icon', // icon class added to the in the header + iconSortNone : 'ui-icon-carat-2-n-s', // class name added to icon when column is not sorted + iconSortAsc : 'ui-icon-carat-1-n', // class name added to icon when column has ascending sort + iconSortDesc : 'ui-icon-carat-1-s', // class name added to icon when column has descending sort + filterRow : '', + footerRow : '', + footerCells : '', + even : 'ui-widget-content', // even row zebra striping + odd : 'ui-state-default' // odd row zebra striping + } + }; + + $.extend(ts.css, { + wrapper : 'tablesorter-wrapper' // ui theme & resizable + }); + + ts.addWidget({ + id: 'uitheme', + priority: 10, + format: function(table, c, wo) { + var i, hdr, icon, time, $header, $icon, $tfoot, $h, oldtheme, oldremove, oldIconRmv, hasOldTheme, + themesAll = ts.themes, + $table = c.$table.add( $( c.namespace + '_extra_table' ) ), + $headers = c.$headers.add( $( c.namespace + '_extra_headers' ) ), + theme = c.theme || 'jui', + themes = themesAll[theme] || {}, + remove = $.trim( [ themes.sortNone, themes.sortDesc, themes.sortAsc, themes.active ].join( ' ' ) ), + iconRmv = $.trim( [ themes.iconSortNone, themes.iconSortDesc, themes.iconSortAsc ].join( ' ' ) ); + if (c.debug) { time = new Date(); } + // initialization code - run once + if (!$table.hasClass('tablesorter-' + theme) || c.theme !== c.appliedTheme || !wo.uitheme_applied) { + wo.uitheme_applied = true; + oldtheme = themesAll[c.appliedTheme] || {}; + hasOldTheme = !$.isEmptyObject(oldtheme); + oldremove = hasOldTheme ? [ oldtheme.sortNone, oldtheme.sortDesc, oldtheme.sortAsc, oldtheme.active ].join( ' ' ) : ''; + oldIconRmv = hasOldTheme ? [ oldtheme.iconSortNone, oldtheme.iconSortDesc, oldtheme.iconSortAsc ].join( ' ' ) : ''; + if (hasOldTheme) { + wo.zebra[0] = $.trim( ' ' + wo.zebra[0].replace(' ' + oldtheme.even, '') ); + wo.zebra[1] = $.trim( ' ' + wo.zebra[1].replace(' ' + oldtheme.odd, '') ); + c.$tbodies.children().removeClass( [ oldtheme.even, oldtheme.odd ].join(' ') ); + } + // update zebra stripes + if (themes.even) { wo.zebra[0] += ' ' + themes.even; } + if (themes.odd) { wo.zebra[1] += ' ' + themes.odd; } + // add caption style + $table.children('caption') + .removeClass(oldtheme.caption || '') + .addClass(themes.caption); + // add table/footer class names + $tfoot = $table + // remove other selected themes + .removeClass( (c.appliedTheme ? 'tablesorter-' + (c.appliedTheme || '') : '') + ' ' + (oldtheme.table || '') ) + .addClass('tablesorter-' + theme + ' ' + (themes.table || '')) // add theme widget class name + .children('tfoot'); + c.appliedTheme = c.theme; + + if ($tfoot.length) { + $tfoot + // if oldtheme.footerRow or oldtheme.footerCells are undefined, all class names are removed + .children('tr').removeClass(oldtheme.footerRow || '').addClass(themes.footerRow) + .children('th, td').removeClass(oldtheme.footerCells || '').addClass(themes.footerCells); + } + // update header classes + $headers + .removeClass( (hasOldTheme ? [ oldtheme.header, oldtheme.hover, oldremove ].join(' ') : '') || '' ) + .addClass(themes.header) + .not('.sorter-false') + .unbind('mouseenter.tsuitheme mouseleave.tsuitheme') + .bind('mouseenter.tsuitheme mouseleave.tsuitheme', function(event) { + // toggleClass with switch added in jQuery 1.3 + $(this)[ event.type === 'mouseenter' ? 'addClass' : 'removeClass' ](themes.hover || ''); + }); + + $headers.each(function(){ + var $this = $(this); + if (!$this.find('.' + ts.css.wrapper).length) { + // Firefox needs this inner div to position the icon & resizer correctly + $this.wrapInner('
                                  '); + } + }); + if (c.cssIcon) { + // if c.cssIcon is '', then no is added to the header + $headers + .find('.' + ts.css.icon) + .removeClass(hasOldTheme ? [ oldtheme.icons, oldIconRmv ].join(' ') : '') + .addClass(themes.icons || ''); + } + if ($table.hasClass('hasFilters')) { + $table.children('thead').children('.' + ts.css.filterRow) + .removeClass(hasOldTheme ? oldtheme.filterRow || '' : '') + .addClass(themes.filterRow || ''); + } + } + for (i = 0; i < c.columns; i++) { + $header = c.$headers + .add($(c.namespace + '_extra_headers')) + .not('.sorter-false') + .filter('[data-column="' + i + '"]'); + $icon = (ts.css.icon) ? $header.find('.' + ts.css.icon) : $(); + $h = $headers.not('.sorter-false').filter('[data-column="' + i + '"]:last'); + if ($h.length) { + $header.removeClass(remove); + $icon.removeClass(iconRmv); + if ($h[0].sortDisabled) { + // no sort arrows for disabled columns! + $icon.removeClass(themes.icons || ''); + } else { + hdr = themes.sortNone; + icon = themes.iconSortNone; + if ($h.hasClass(ts.css.sortAsc)) { + hdr = [ themes.sortAsc, themes.active ].join(' '); + icon = themes.iconSortAsc; + } else if ($h.hasClass(ts.css.sortDesc)) { + hdr = [ themes.sortDesc, themes.active ].join(' '); + icon = themes.iconSortDesc; + } + $header.addClass(hdr); + $icon.addClass(icon || ''); + } + } + } + if (c.debug) { + console.log('Applying ' + theme + ' theme' + ts.benchmark(time)); + } + }, + remove: function(table, c, wo, refreshing) { + if (!wo.uitheme_applied) { return; } + var $table = c.$table, + theme = c.appliedTheme || 'jui', + themes = ts.themes[ theme ] || ts.themes.jui, + $headers = $table.children('thead').children(), + remove = themes.sortNone + ' ' + themes.sortDesc + ' ' + themes.sortAsc, + iconRmv = themes.iconSortNone + ' ' + themes.iconSortDesc + ' ' + themes.iconSortAsc; + $table.removeClass('tablesorter-' + theme + ' ' + themes.table); + wo.uitheme_applied = false; + if (refreshing) { return; } + $table.find(ts.css.header).removeClass(themes.header); + $headers + .unbind('mouseenter.tsuitheme mouseleave.tsuitheme') // remove hover + .removeClass(themes.hover + ' ' + remove + ' ' + themes.active) + .filter('.' + ts.css.filterRow) + .removeClass(themes.filterRow); + $headers.find('.' + ts.css.icon).removeClass(themes.icons + ' ' + iconRmv); + } + }); + +})(jQuery); + +/*! Widget: columns */ +;(function ($) { + 'use strict'; + var ts = $.tablesorter || {}; + + ts.addWidget({ + id: 'columns', + priority: 30, + options : { + columns : [ 'primary', 'secondary', 'tertiary' ] + }, + format: function(table, c, wo) { + var $tbody, tbodyIndex, $rows, rows, $row, $cells, remove, indx, + $table = c.$table, + $tbodies = c.$tbodies, + sortList = c.sortList, + len = sortList.length, + // removed c.widgetColumns support + css = wo && wo.columns || [ 'primary', 'secondary', 'tertiary' ], + last = css.length - 1; + remove = css.join(' '); + // check if there is a sort (on initialization there may not be one) + for (tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) { + $tbody = ts.processTbody(table, $tbodies.eq(tbodyIndex), true); // detach tbody + $rows = $tbody.children('tr'); + // loop through the visible rows + $rows.each(function() { + $row = $(this); + if (this.style.display !== 'none') { + // remove all columns class names + $cells = $row.children().removeClass(remove); + // add appropriate column class names + if (sortList && sortList[0]) { + // primary sort column class + $cells.eq(sortList[0][0]).addClass(css[0]); + if (len > 1) { + for (indx = 1; indx < len; indx++) { + // secondary, tertiary, etc sort column classes + $cells.eq(sortList[indx][0]).addClass( css[indx] || css[last] ); + } + } + } + } + }); + ts.processTbody(table, $tbody, false); + } + // add classes to thead and tfoot + rows = wo.columns_thead !== false ? [ 'thead tr' ] : []; + if (wo.columns_tfoot !== false) { + rows.push('tfoot tr'); + } + if (rows.length) { + $rows = $table.find( rows.join(',') ).children().removeClass(remove); + if (len) { + for (indx = 0; indx < len; indx++) { + // add primary. secondary, tertiary, etc sort column classes + $rows.filter('[data-column="' + sortList[indx][0] + '"]').addClass(css[indx] || css[last]); + } + } + } + }, + remove: function(table, c, wo) { + var tbodyIndex, $tbody, + $tbodies = c.$tbodies, + remove = (wo.columns || [ 'primary', 'secondary', 'tertiary' ]).join(' '); + c.$headers.removeClass(remove); + c.$table.children('tfoot').children('tr').children('th, td').removeClass(remove); + for (tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) { + $tbody = ts.processTbody(table, $tbodies.eq(tbodyIndex), true); // remove tbody + $tbody.children('tr').each(function() { + $(this).children().removeClass(remove); + }); + ts.processTbody(table, $tbody, false); // restore tbody + } + } + }); + +})(jQuery); + +/*! Widget: filter - updated 11/10/2015 (v2.24.4) *//* + * Requires tablesorter v2.8+ and jQuery 1.7+ + * by Rob Garrison + */ +;( function ( $ ) { + 'use strict'; + var tsf, tsfRegex, + ts = $.tablesorter || {}, + tscss = ts.css; + + $.extend( tscss, { + filterRow : 'tablesorter-filter-row', + filter : 'tablesorter-filter', + filterDisabled : 'disabled', + filterRowHide : 'hideme' + }); + + ts.addWidget({ + id: 'filter', + priority: 50, + options : { + filter_childRows : false, // if true, filter includes child row content in the search + filter_childByColumn : false, // ( filter_childRows must be true ) if true = search child rows by column; false = search all child row text grouped + filter_childWithSibs : true, // if true, include matching child row siblings + filter_columnFilters : true, // if true, a filter will be added to the top of each table column + filter_columnAnyMatch: true, // if true, allows using '#:{query}' in AnyMatch searches ( column:query ) + filter_cellFilter : '', // css class name added to the filter cell ( string or array ) + filter_cssFilter : '', // css class name added to the filter row & each input in the row ( tablesorter-filter is ALWAYS added ) + filter_defaultFilter : {}, // add a default column filter type '~{query}' to make fuzzy searches default; '{q1} AND {q2}' to make all searches use a logical AND. + filter_excludeFilter : {}, // filters to exclude, per column + filter_external : '', // jQuery selector string ( or jQuery object ) of external filters + filter_filteredRow : 'filtered', // class added to filtered rows; needed by pager plugin + filter_formatter : null, // add custom filter elements to the filter row + filter_functions : null, // add custom filter functions using this option + filter_hideEmpty : true, // hide filter row when table is empty + filter_hideFilters : false, // collapse filter row when mouse leaves the area + filter_ignoreCase : true, // if true, make all searches case-insensitive + filter_liveSearch : true, // if true, search column content while the user types ( with a delay ) + filter_onlyAvail : 'filter-onlyAvail', // a header with a select dropdown & this class name will only show available ( visible ) options within the drop down + filter_placeholder : { search : '', select : '' }, // default placeholder text ( overridden by any header 'data-placeholder' setting ) + filter_reset : null, // jQuery selector string of an element used to reset the filters + filter_saveFilters : false, // Use the $.tablesorter.storage utility to save the most recent filters + filter_searchDelay : 300, // typing delay in milliseconds before starting a search + filter_searchFiltered: true, // allow searching through already filtered rows in special circumstances; will speed up searching in large tables if true + filter_selectSource : null, // include a function to return an array of values to be added to the column filter select + filter_startsWith : false, // if true, filter start from the beginning of the cell contents + filter_useParsedData : false, // filter all data using parsed content + filter_serversideFiltering : false, // if true, must perform server-side filtering b/c client-side filtering is disabled, but the ui and events will still be used. + filter_defaultAttrib : 'data-value', // data attribute in the header cell that contains the default filter value + filter_selectSourceSeparator : '|' // filter_selectSource array text left of the separator is added to the option value, right into the option text + }, + format: function( table, c, wo ) { + if ( !c.$table.hasClass( 'hasFilters' ) ) { + tsf.init( table, c, wo ); + } + }, + remove: function( table, c, wo, refreshing ) { + var tbodyIndex, $tbody, + $table = c.$table, + $tbodies = c.$tbodies, + events = 'addRows updateCell update updateRows updateComplete appendCache filterReset filterEnd search ' + .split( ' ' ).join( c.namespace + 'filter ' ); + $table + .removeClass( 'hasFilters' ) + // add filter namespace to all BUT search + .unbind( events.replace( ts.regex.spaces, ' ' ) ) + // remove the filter row even if refreshing, because the column might have been moved + .find( '.' + tscss.filterRow ).remove(); + if ( refreshing ) { return; } + for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) { + $tbody = ts.processTbody( table, $tbodies.eq( tbodyIndex ), true ); // remove tbody + $tbody.children().removeClass( wo.filter_filteredRow ).show(); + ts.processTbody( table, $tbody, false ); // restore tbody + } + if ( wo.filter_reset ) { + $( document ).undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' ); + } + } + }); + + tsf = ts.filter = { + + // regex used in filter 'check' functions - not for general use and not documented + regex: { + regex : /^\/((?:\\\/|[^\/])+)\/([mig]{0,3})?$/, // regex to test for regex + child : /tablesorter-childRow/, // child row class name; this gets updated in the script + filtered : /filtered/, // filtered (hidden) row class name; updated in the script + type : /undefined|number/, // check type + exact : /(^[\"\'=]+)|([\"\'=]+$)/g, // exact match (allow '==') + operators : /[<>=]/g, // replace operators + query : '(q|query)', // replace filter queries + wild01 : /\?/g, // wild card match 0 or 1 + wild0More : /\*/g, // wild care match 0 or more + quote : /\"/g, + isNeg1 : /(>=?\s*-\d)/, + isNeg2 : /(<=?\s*\d)/ + }, + // function( c, data ) { } + // c = table.config + // data.$row = jQuery object of the row currently being processed + // data.$cells = jQuery object of all cells within the current row + // data.filters = array of filters for all columns ( some may be undefined ) + // data.filter = filter for the current column + // data.iFilter = same as data.filter, except lowercase ( if wo.filter_ignoreCase is true ) + // data.exact = table cell text ( or parsed data if column parser enabled; may be a number & not a string ) + // data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true; may be a number & not a string ) + // data.cache = table cell text from cache, so it has been parsed ( & in all lower case if c.ignoreCase is true ) + // data.cacheArray = An array of parsed content from each table cell in the row being processed + // data.index = column index; table = table element ( DOM ) + // data.parsed = array ( by column ) of boolean values ( from filter_useParsedData or 'filter-parsed' class ) + types: { + or : function( c, data, vars ) { + // look for "|", but not if it is inside of a regular expression + if ( ( tsfRegex.orTest.test( data.iFilter ) || tsfRegex.orSplit.test( data.filter ) ) && + // this test for regex has potential to slow down the overall search + !tsfRegex.regex.test( data.filter ) ) { + var indx, filterMatched, query, regex, + // duplicate data but split filter + data2 = $.extend( {}, data ), + filter = data.filter.split( tsfRegex.orSplit ), + iFilter = data.iFilter.split( tsfRegex.orSplit ), + len = filter.length; + for ( indx = 0; indx < len; indx++ ) { + data2.nestedFilters = true; + data2.filter = '' + ( tsf.parseFilter( c, filter[ indx ], data ) || '' ); + data2.iFilter = '' + ( tsf.parseFilter( c, iFilter[ indx ], data ) || '' ); + query = '(' + ( tsf.parseFilter( c, data2.filter, data ) || '' ) + ')'; + try { + // use try/catch, because query may not be a valid regex if "|" is contained within a partial regex search, + // e.g "/(Alex|Aar" -> Uncaught SyntaxError: Invalid regular expression: /(/(Alex)/: Unterminated group + regex = new RegExp( data.isMatch ? query : '^' + query + '$', c.widgetOptions.filter_ignoreCase ? 'i' : '' ); + // filterMatched = data2.filter === '' && indx > 0 ? true + // look for an exact match with the 'or' unless the 'filter-match' class is found + filterMatched = regex.test( data2.exact ) || tsf.processTypes( c, data2, vars ); + if ( filterMatched ) { + return filterMatched; + } + } catch ( error ) { + return null; + } + } + // may be null from processing types + return filterMatched || false; + } + return null; + }, + // Look for an AND or && operator ( logical and ) + and : function( c, data, vars ) { + if ( tsfRegex.andTest.test( data.filter ) ) { + var indx, filterMatched, result, query, regex, + // duplicate data but split filter + data2 = $.extend( {}, data ), + filter = data.filter.split( tsfRegex.andSplit ), + iFilter = data.iFilter.split( tsfRegex.andSplit ), + len = filter.length; + for ( indx = 0; indx < len; indx++ ) { + data2.nestedFilters = true; + data2.filter = '' + ( tsf.parseFilter( c, filter[ indx ], data ) || '' ); + data2.iFilter = '' + ( tsf.parseFilter( c, iFilter[ indx ], data ) || '' ); + query = ( '(' + ( tsf.parseFilter( c, data2.filter, data ) || '' ) + ')' ) + // replace wild cards since /(a*)/i will match anything + .replace( tsfRegex.wild01, '\\S{1}' ).replace( tsfRegex.wild0More, '\\S*' ); + try { + // use try/catch just in case RegExp is invalid + regex = new RegExp( data.isMatch ? query : '^' + query + '$', c.widgetOptions.filter_ignoreCase ? 'i' : '' ); + // look for an exact match with the 'and' unless the 'filter-match' class is found + result = ( regex.test( data2.exact ) || tsf.processTypes( c, data2, vars ) ); + if ( indx === 0 ) { + filterMatched = result; + } else { + filterMatched = filterMatched && result; + } + } catch ( error ) { + return null; + } + } + // may be null from processing types + return filterMatched || false; + } + return null; + }, + // Look for regex + regex: function( c, data ) { + if ( tsfRegex.regex.test( data.filter ) ) { + var matches, + // cache regex per column for optimal speed + regex = data.filter_regexCache[ data.index ] || tsfRegex.regex.exec( data.filter ), + isRegex = regex instanceof RegExp; + try { + if ( !isRegex ) { + // force case insensitive search if ignoreCase option set? + // if ( c.ignoreCase && !regex[2] ) { regex[2] = 'i'; } + data.filter_regexCache[ data.index ] = regex = new RegExp( regex[1], regex[2] ); + } + matches = regex.test( data.exact ); + } catch ( error ) { + matches = false; + } + return matches; + } + return null; + }, + // Look for operators >, >=, < or <= + operators: function( c, data ) { + // ignore empty strings... because '' < 10 is true + if ( tsfRegex.operTest.test( data.iFilter ) && data.iExact !== '' ) { + var cachedValue, result, txt, + table = c.table, + parsed = data.parsed[ data.index ], + query = ts.formatFloat( data.iFilter.replace( tsfRegex.operators, '' ), table ), + parser = c.parsers[ data.index ], + savedSearch = query; + // parse filter value in case we're comparing numbers ( dates ) + if ( parsed || parser.type === 'numeric' ) { + txt = $.trim( '' + data.iFilter.replace( tsfRegex.operators, '' ) ); + result = tsf.parseFilter( c, txt, data, true ); + query = ( typeof result === 'number' && result !== '' && !isNaN( result ) ) ? result : query; + } + // iExact may be numeric - see issue #149; + // check if cached is defined, because sometimes j goes out of range? ( numeric columns ) + if ( ( parsed || parser.type === 'numeric' ) && !isNaN( query ) && + typeof data.cache !== 'undefined' ) { + cachedValue = data.cache; + } else { + txt = isNaN( data.iExact ) ? data.iExact.replace( ts.regex.nondigit, '' ) : data.iExact; + cachedValue = ts.formatFloat( txt, table ); + } + if ( tsfRegex.gtTest.test( data.iFilter ) ) { + result = tsfRegex.gteTest.test( data.iFilter ) ? cachedValue >= query : cachedValue > query; + } else if ( tsfRegex.ltTest.test( data.iFilter ) ) { + result = tsfRegex.lteTest.test( data.iFilter ) ? cachedValue <= query : cachedValue < query; + } + // keep showing all rows if nothing follows the operator + if ( !result && savedSearch === '' ) { + result = true; + } + return result; + } + return null; + }, + // Look for a not match + notMatch: function( c, data ) { + if ( tsfRegex.notTest.test( data.iFilter ) ) { + var indx, + txt = data.iFilter.replace( '!', '' ), + filter = tsf.parseFilter( c, txt, data ) || ''; + if ( tsfRegex.exact.test( filter ) ) { + // look for exact not matches - see #628 + filter = filter.replace( tsfRegex.exact, '' ); + return filter === '' ? true : $.trim( filter ) !== data.iExact; + } else { + indx = data.iExact.search( $.trim( filter ) ); + return filter === '' ? true : !( c.widgetOptions.filter_startsWith ? indx === 0 : indx >= 0 ); + } + } + return null; + }, + // Look for quotes or equals to get an exact match; ignore type since iExact could be numeric + exact: function( c, data ) { + /*jshint eqeqeq:false */ + if ( tsfRegex.exact.test( data.iFilter ) ) { + var txt = data.iFilter.replace( tsfRegex.exact, '' ), + filter = tsf.parseFilter( c, txt, data ) || ''; + return data.anyMatch ? $.inArray( filter, data.rowArray ) >= 0 : filter == data.iExact; + } + return null; + }, + // Look for a range ( using ' to ' or ' - ' ) - see issue #166; thanks matzhu! + range : function( c, data ) { + if ( tsfRegex.toTest.test( data.iFilter ) ) { + var result, tmp, range1, range2, + table = c.table, + index = data.index, + parsed = data.parsed[index], + // make sure the dash is for a range and not indicating a negative number + query = data.iFilter.split( tsfRegex.toSplit ); + + tmp = query[0].replace( ts.regex.nondigit, '' ) || ''; + range1 = ts.formatFloat( tsf.parseFilter( c, tmp, data ), table ); + tmp = query[1].replace( ts.regex.nondigit, '' ) || ''; + range2 = ts.formatFloat( tsf.parseFilter( c, tmp, data ), table ); + // parse filter value in case we're comparing numbers ( dates ) + if ( parsed || c.parsers[ index ].type === 'numeric' ) { + result = c.parsers[ index ].format( '' + query[0], table, c.$headers.eq( index ), index ); + range1 = ( result !== '' && !isNaN( result ) ) ? result : range1; + result = c.parsers[ index ].format( '' + query[1], table, c.$headers.eq( index ), index ); + range2 = ( result !== '' && !isNaN( result ) ) ? result : range2; + } + if ( ( parsed || c.parsers[ index ].type === 'numeric' ) && !isNaN( range1 ) && !isNaN( range2 ) ) { + result = data.cache; + } else { + tmp = isNaN( data.iExact ) ? data.iExact.replace( ts.regex.nondigit, '' ) : data.iExact; + result = ts.formatFloat( tmp, table ); + } + if ( range1 > range2 ) { + tmp = range1; range1 = range2; range2 = tmp; // swap + } + return ( result >= range1 && result <= range2 ) || ( range1 === '' || range2 === '' ); + } + return null; + }, + // Look for wild card: ? = single, * = multiple, or | = logical OR + wild : function( c, data ) { + if ( tsfRegex.wildOrTest.test( data.iFilter ) ) { + var query = '' + ( tsf.parseFilter( c, data.iFilter, data ) || '' ); + // look for an exact match with the 'or' unless the 'filter-match' class is found + if ( !tsfRegex.wildTest.test( query ) && data.nestedFilters ) { + query = data.isMatch ? query : '^(' + query + ')$'; + } + // parsing the filter may not work properly when using wildcards =/ + try { + return new RegExp( + query.replace( tsfRegex.wild01, '\\S{1}' ).replace( tsfRegex.wild0More, '\\S*' ), + c.widgetOptions.filter_ignoreCase ? 'i' : '' + ) + .test( data.exact ); + } catch ( error ) { + return null; + } + } + return null; + }, + // fuzzy text search; modified from https://github.com/mattyork/fuzzy ( MIT license ) + fuzzy: function( c, data ) { + if ( tsfRegex.fuzzyTest.test( data.iFilter ) ) { + var indx, + patternIndx = 0, + len = data.iExact.length, + txt = data.iFilter.slice( 1 ), + pattern = tsf.parseFilter( c, txt, data ) || ''; + for ( indx = 0; indx < len; indx++ ) { + if ( data.iExact[ indx ] === pattern[ patternIndx ] ) { + patternIndx += 1; + } + } + return patternIndx === pattern.length; + } + return null; + } + }, + init: function( table, c, wo ) { + // filter language options + ts.language = $.extend( true, {}, { + to : 'to', + or : 'or', + and : 'and' + }, ts.language ); + + var options, string, txt, $header, column, filters, val, fxn, noSelect; + c.$table.addClass( 'hasFilters' ); + + // define timers so using clearTimeout won't cause an undefined error + wo.filter_searchTimer = null; + wo.filter_initTimer = null; + wo.filter_formatterCount = 0; + wo.filter_formatterInit = []; + wo.filter_anyColumnSelector = '[data-column="all"],[data-column="any"]'; + wo.filter_multipleColumnSelector = '[data-column*="-"],[data-column*=","]'; + + val = '\\{' + tsfRegex.query + '\\}'; + $.extend( tsfRegex, { + child : new RegExp( c.cssChildRow ), + filtered : new RegExp( wo.filter_filteredRow ), + alreadyFiltered : new RegExp( '(\\s+(' + ts.language.or + '|-|' + ts.language.to + ')\\s+)', 'i' ), + toTest : new RegExp( '\\s+(-|' + ts.language.to + ')\\s+', 'i' ), + toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ), + andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ), + andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ), + orTest : /\|/, + orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ), + iQuery : new RegExp( val, 'i' ), + igQuery : new RegExp( val, 'ig' ), + operTest : /^[<>]=?/, + gtTest : />/, + gteTest : />=/, + ltTest : /' + + ( $header.data( 'placeholder' ) || + $header.attr( 'data-placeholder' ) || + wo.filter_placeholder.select || + '' + ) + + '' : ''; + val = string; + txt = string; + if ( string.indexOf( wo.filter_selectSourceSeparator ) >= 0 ) { + val = string.split( wo.filter_selectSourceSeparator ); + txt = val[1]; + val = val[0]; + } + options += ''; + } + } + c.$table + .find( 'thead' ) + .find( 'select.' + tscss.filter + '[data-column="' + column + '"]' ) + .append( options ); + txt = wo.filter_selectSource; + fxn = typeof txt === 'function' ? true : ts.getColumnData( table, txt, column ); + if ( fxn ) { + // updating so the extra options are appended + tsf.buildSelect( c.table, column, '', true, $header.hasClass( wo.filter_onlyAvail ) ); + } + } + } + } + } + // not really updating, but if the column has both the 'filter-select' class & + // filter_functions set to true, it would append the same options twice. + tsf.buildDefault( table, true ); + + tsf.bindSearch( table, c.$table.find( '.' + tscss.filter ), true ); + if ( wo.filter_external ) { + tsf.bindSearch( table, wo.filter_external ); + } + + if ( wo.filter_hideFilters ) { + tsf.hideFilters( c ); + } + + // show processing icon + if ( c.showProcessing ) { + txt = 'filterStart filterEnd '.split( ' ' ).join( c.namespace + 'filter ' ); + c.$table + .unbind( txt.replace( ts.regex.spaces, ' ' ) ) + .bind( txt, function( event, columns ) { + // only add processing to certain columns to all columns + $header = ( columns ) ? + c.$table + .find( '.' + tscss.header ) + .filter( '[data-column]' ) + .filter( function() { + return columns[ $( this ).data( 'column' ) ] !== ''; + }) : ''; + ts.isProcessing( table, event.type === 'filterStart', columns ? $header : '' ); + }); + } + + // set filtered rows count ( intially unfiltered ) + c.filteredRows = c.totalRows; + + // add default values + txt = 'tablesorter-initialized pagerBeforeInitialized '.split( ' ' ).join( c.namespace + 'filter ' ); + c.$table + .unbind( txt.replace( ts.regex.spaces, ' ' ) ) + .bind( txt, function() { + // redefine 'wo' as it does not update properly inside this callback + var wo = this.config.widgetOptions; + filters = tsf.setDefaults( table, c, wo ) || []; + if ( filters.length ) { + // prevent delayInit from triggering a cache build if filters are empty + if ( !( c.delayInit && filters.join( '' ) === '' ) ) { + ts.setFilters( table, filters, true ); + } + } + c.$table.trigger( 'filterFomatterUpdate' ); + // trigger init after setTimeout to prevent multiple filterStart/End/Init triggers + setTimeout( function() { + if ( !wo.filter_initialized ) { + tsf.filterInitComplete( c ); + } + }, 100 ); + }); + // if filter widget is added after pager has initialized; then set filter init flag + if ( c.pager && c.pager.initialized && !wo.filter_initialized ) { + c.$table.trigger( 'filterFomatterUpdate' ); + setTimeout( function() { + tsf.filterInitComplete( c ); + }, 100 ); + } + }, + // $cell parameter, but not the config, is passed to the filter_formatters, + // so we have to work with it instead + formatterUpdated: function( $cell, column ) { + // prevent error if $cell is undefined - see #1056 + var wo = $cell && $cell.closest( 'table' )[0].config.widgetOptions; + if ( wo && !wo.filter_initialized ) { + // add updates by column since this function + // may be called numerous times before initialization + wo.filter_formatterInit[ column ] = 1; + } + }, + filterInitComplete: function( c ) { + var indx, len, + wo = c.widgetOptions, + count = 0, + completed = function() { + wo.filter_initialized = true; + c.$table.trigger( 'filterInit', c ); + tsf.findRows( c.table, c.$table.data( 'lastSearch' ) || [] ); + }; + if ( $.isEmptyObject( wo.filter_formatter ) ) { + completed(); + } else { + len = wo.filter_formatterInit.length; + for ( indx = 0; indx < len; indx++ ) { + if ( wo.filter_formatterInit[ indx ] === 1 ) { + count++; + } + } + clearTimeout( wo.filter_initTimer ); + if ( !wo.filter_initialized && count === wo.filter_formatterCount ) { + // filter widget initialized + completed(); + } else if ( !wo.filter_initialized ) { + // fall back in case a filter_formatter doesn't call + // $.tablesorter.filter.formatterUpdated( $cell, column ), and the count is off + wo.filter_initTimer = setTimeout( function() { + completed(); + }, 500 ); + } + } + }, + // encode or decode filters for storage; see #1026 + processFilters: function( filters, encode ) { + var indx, + mode = encode ? encodeURIComponent : decodeURIComponent, + len = filters.length; + for ( indx = 0; indx < len; indx++ ) { + filters[ indx ] = mode( filters[ indx ] ); + } + return filters; + }, + setDefaults: function( table, c, wo ) { + var isArray, saved, indx, col, $filters, + // get current ( default ) filters + filters = ts.getFilters( table ) || []; + if ( wo.filter_saveFilters && ts.storage ) { + saved = ts.storage( table, 'tablesorter-filters' ) || []; + isArray = $.isArray( saved ); + // make sure we're not just getting an empty array + if ( !( isArray && saved.join( '' ) === '' || !isArray ) ) { + filters = tsf.processFilters( saved ); + } + } + // if no filters saved, then check default settings + if ( filters.join( '' ) === '' ) { + // allow adding default setting to external filters + $filters = c.$headers.add( wo.filter_$externalFilters ) + .filter( '[' + wo.filter_defaultAttrib + ']' ); + for ( indx = 0; indx <= c.columns; indx++ ) { + // include data-column='all' external filters + col = indx === c.columns ? 'all' : indx; + filters[indx] = $filters + .filter( '[data-column="' + col + '"]' ) + .attr( wo.filter_defaultAttrib ) || filters[indx] || ''; + } + } + c.$table.data( 'lastSearch', filters ); + return filters; + }, + parseFilter: function( c, filter, data, parsed ) { + return parsed || data.parsed[ data.index ] ? + c.parsers[ data.index ].format( filter, c.table, [], data.index ) : + filter; + }, + buildRow: function( table, c, wo ) { + var $filter, col, column, $header, makeSelect, disabled, name, ffxn, tmp, + // c.columns defined in computeThIndexes() + cellFilter = wo.filter_cellFilter, + columns = c.columns, + arry = $.isArray( cellFilter ), + buildFilter = ''; + for ( column = 0; column < columns; column++ ) { + if ( c.$headerIndexed[ column ].length ) { + buildFilter += ' 1 ) { + buildFilter += ' colspan="' + tmp + '"'; + } + if ( arry ) { + buildFilter += ( cellFilter[ column ] ? ' class="' + cellFilter[ column ] + '"' : '' ); + } else { + buildFilter += ( cellFilter !== '' ? ' class="' + cellFilter + '"' : '' ); + } + buildFilter += '>'; + } + } + c.$filters = $( buildFilter += '' ) + .appendTo( c.$table.children( 'thead' ).eq( 0 ) ) + .children( 'td' ); + // build each filter input + for ( column = 0; column < columns; column++ ) { + disabled = false; + // assuming last cell of a column is the main column + $header = c.$headerIndexed[ column ]; + if ( $header && $header.length ) { + $filter = c.$filters.filter( '[data-column="' + column + '"]' ); + ffxn = ts.getColumnData( table, wo.filter_functions, column ); + makeSelect = ( wo.filter_functions && ffxn && typeof ffxn !== 'function' ) || + $header.hasClass( 'filter-select' ); + // get data from jQuery data, metadata, headers option or header class name + col = ts.getColumnData( table, c.headers, column ); + disabled = ts.getData( $header[0], col, 'filter' ) === 'false' || + ts.getData( $header[0], col, 'parser' ) === 'false'; + + if ( makeSelect ) { + buildFilter = $( '' ).appendTo( $filter ); + } + if ( buildFilter ) { + tmp = $header.data( 'placeholder' ) || + $header.attr( 'data-placeholder' ) || + wo.filter_placeholder.search || ''; + buildFilter.attr( 'placeholder', tmp ); + } + } + if ( buildFilter ) { + // add filter class name + name = ( $.isArray( wo.filter_cssFilter ) ? + ( typeof wo.filter_cssFilter[column] !== 'undefined' ? wo.filter_cssFilter[column] || '' : '' ) : + wo.filter_cssFilter ) || ''; + buildFilter.addClass( tscss.filter + ' ' + name ).attr( 'data-column', column ); + if ( disabled ) { + buildFilter.attr( 'placeholder', '' ).addClass( tscss.filterDisabled )[0].disabled = true; + } + } + } + } + }, + bindSearch: function( table, $el, internal ) { + table = $( table )[0]; + $el = $( $el ); // allow passing a selector string + if ( !$el.length ) { return; } + var tmp, + c = table.config, + wo = c.widgetOptions, + namespace = c.namespace + 'filter', + $ext = wo.filter_$externalFilters; + if ( internal !== true ) { + // save anyMatch element + tmp = wo.filter_anyColumnSelector + ',' + wo.filter_multipleColumnSelector; + wo.filter_$anyMatch = $el.filter( tmp ); + if ( $ext && $ext.length ) { + wo.filter_$externalFilters = wo.filter_$externalFilters.add( $el ); + } else { + wo.filter_$externalFilters = $el; + } + // update values ( external filters added after table initialization ) + ts.setFilters( table, c.$table.data( 'lastSearch' ) || [], internal === false ); + } + // unbind events + tmp = ( 'keypress keyup search change '.split( ' ' ).join( namespace + ' ' ) ); + $el + // use data attribute instead of jQuery data since the head is cloned without including + // the data/binding + .attr( 'data-lastSearchTime', new Date().getTime() ) + .unbind( tmp.replace( ts.regex.spaces, ' ' ) ) + // include change for select - fixes #473 + .bind( 'keyup' + namespace, function( event ) { + $( this ).attr( 'data-lastSearchTime', new Date().getTime() ); + // emulate what webkit does.... escape clears the filter + if ( event.which === 27 ) { + this.value = ''; + // live search + } else if ( wo.filter_liveSearch === false ) { + return; + // don't return if the search value is empty ( all rows need to be revealed ) + } else if ( this.value !== '' && ( + // liveSearch can contain a min value length; ignore arrow and meta keys, but allow backspace + ( typeof wo.filter_liveSearch === 'number' && this.value.length < wo.filter_liveSearch ) || + // let return & backspace continue on, but ignore arrows & non-valid characters + ( event.which !== 13 && event.which !== 8 && + ( event.which < 32 || ( event.which >= 37 && event.which <= 40 ) ) ) ) ) { + return; + } + // change event = no delay; last true flag tells getFilters to skip newest timed input + tsf.searching( table, true, true ); + }) + .bind( 'search change keypress '.split( ' ' ).join( namespace + ' ' ), function( event ) { + // don't get cached data, in case data-column changes dynamically + var column = parseInt( $( this ).attr( 'data-column' ), 10 ); + // don't allow 'change' event to process if the input value is the same - fixes #685 + if ( wo.filter_initialized && ( event.which === 13 || event.type === 'search' || + event.type === 'change' && this.value !== c.lastSearch[column] ) ) { + event.preventDefault(); + // init search with no delay + $( this ).attr( 'data-lastSearchTime', new Date().getTime() ); + tsf.searching( table, false, true ); + } + }); + }, + searching: function( table, filter, skipFirst ) { + var wo = table.config.widgetOptions; + clearTimeout( wo.filter_searchTimer ); + if ( typeof filter === 'undefined' || filter === true ) { + // delay filtering + wo.filter_searchTimer = setTimeout( function() { + tsf.checkFilters( table, filter, skipFirst ); + }, wo.filter_liveSearch ? wo.filter_searchDelay : 10 ); + } else { + // skip delay + tsf.checkFilters( table, filter, skipFirst ); + } + }, + checkFilters: function( table, filter, skipFirst ) { + var c = table.config, + wo = c.widgetOptions, + filterArray = $.isArray( filter ), + filters = ( filterArray ) ? filter : ts.getFilters( table, true ), + combinedFilters = ( filters || [] ).join( '' ); // combined filter values + // prevent errors if delay init is set + if ( $.isEmptyObject( c.cache ) ) { + // update cache if delayInit set & pager has initialized ( after user initiates a search ) + if ( c.delayInit && c.pager && c.pager.initialized ) { + ts.updateCache( c, function() { + tsf.checkFilters( table, false, skipFirst ); + }); + } + return; + } + // add filter array back into inputs + if ( filterArray ) { + ts.setFilters( table, filters, false, skipFirst !== true ); + if ( !wo.filter_initialized ) { c.lastCombinedFilter = ''; } + } + if ( wo.filter_hideFilters ) { + // show/hide filter row as needed + c.$table + .find( '.' + tscss.filterRow ) + .trigger( combinedFilters === '' ? 'mouseleave' : 'mouseenter' ); + } + // return if the last search is the same; but filter === false when updating the search + // see example-widget-filter.html filter toggle buttons + if ( c.lastCombinedFilter === combinedFilters && filter !== false ) { + return; + } else if ( filter === false ) { + // force filter refresh + c.lastCombinedFilter = null; + c.lastSearch = []; + } + // convert filters to strings - see #1070 + filters = Array.prototype.map ? + filters.map( String ) : + // for IE8 & older browsers - maybe not the best method + filters.join( '\u0000' ).split( '\u0000' ); + + if ( wo.filter_initialized ) { + c.$table.trigger( 'filterStart', [ filters ] ); + } + if ( c.showProcessing ) { + // give it time for the processing icon to kick in + setTimeout( function() { + tsf.findRows( table, filters, combinedFilters ); + return false; + }, 30 ); + } else { + tsf.findRows( table, filters, combinedFilters ); + return false; + } + }, + hideFilters: function( c, $table ) { + var timer, + $row = ( $table || c.$table ).find( '.' + tscss.filterRow ).addClass( tscss.filterRowHide ); + $row + .bind( 'mouseenter mouseleave', function( e ) { + // save event object - http://bugs.jquery.com/ticket/12140 + var event = e, + $filterRow = $( this ); + clearTimeout( timer ); + timer = setTimeout( function() { + if ( /enter|over/.test( event.type ) ) { + $filterRow.removeClass( tscss.filterRowHide ); + } else { + // don't hide if input has focus + // $( ':focus' ) needs jQuery 1.6+ + if ( $( document.activeElement ).closest( 'tr' )[0] !== $filterRow[0] ) { + // don't hide row if any filter has a value + if ( c.lastCombinedFilter === '' ) { + $filterRow.addClass( tscss.filterRowHide ); + } + } + } + }, 200 ); + }) + .find( 'input, select' ).bind( 'focus blur', function( e ) { + var event = e, + $row = $( this ).closest( 'tr' ); + clearTimeout( timer ); + timer = setTimeout( function() { + clearTimeout( timer ); + // don't hide row if any filter has a value + if ( ts.getFilters( c.$table ).join( '' ) === '' ) { + $row.toggleClass( tscss.filterRowHide, event.type !== 'focus' ); + } + }, 200 ); + }); + }, + defaultFilter: function( filter, mask ) { + if ( filter === '' ) { return filter; } + var regex = tsfRegex.iQuery, + maskLen = mask.match( tsfRegex.igQuery ).length, + query = maskLen > 1 ? $.trim( filter ).split( /\s/ ) : [ $.trim( filter ) ], + len = query.length - 1, + indx = 0, + val = mask; + if ( len < 1 && maskLen > 1 ) { + // only one 'word' in query but mask has >1 slots + query[1] = query[0]; + } + // replace all {query} with query words... + // if query = 'Bob', then convert mask from '!{query}' to '!Bob' + // if query = 'Bob Joe Frank', then convert mask '{q} OR {q}' to 'Bob OR Joe OR Frank' + while ( regex.test( val ) ) { + val = val.replace( regex, query[indx++] || '' ); + if ( regex.test( val ) && indx < len && ( query[indx] || '' ) !== '' ) { + val = mask.replace( regex, val ); + } + } + return val; + }, + getLatestSearch: function( $input ) { + if ( $input ) { + return $input.sort( function( a, b ) { + return $( b ).attr( 'data-lastSearchTime' ) - $( a ).attr( 'data-lastSearchTime' ); + }); + } + return $input || $(); + }, + multipleColumns: function( c, $input ) { + // look for multiple columns '1-3,4-6,8' in data-column + var temp, ranges, range, start, end, singles, i, indx, len, + wo = c.widgetOptions, + // only target 'all' column inputs on initialization + // & don't target 'all' column inputs if they don't exist + targets = wo.filter_initialized || !$input.filter( wo.filter_anyColumnSelector ).length, + columns = [], + val = $.trim( tsf.getLatestSearch( $input ).attr( 'data-column' ) || '' ); + if ( /^[0-9]+$/.test(val)) { + return parseInt( val, 10 ); + } + // process column range + if ( targets && /-/.test( val ) ) { + ranges = val.match( /(\d+)\s*-\s*(\d+)/g ); + len = ranges.length; + for ( indx = 0; indx < len; indx++ ) { + range = ranges[indx].split( /\s*-\s*/ ); + start = parseInt( range[0], 10 ) || 0; + end = parseInt( range[1], 10 ) || ( c.columns - 1 ); + if ( start > end ) { + temp = start; start = end; end = temp; // swap + } + if ( end >= c.columns ) { + end = c.columns - 1; + } + for ( ; start <= end; start++ ) { + columns.push( start ); + } + // remove processed range from val + val = val.replace( ranges[ indx ], '' ); + } + } + // process single columns + if ( targets && /,/.test( val ) ) { + singles = val.split( /\s*,\s*/ ); + len = singles.length; + for ( i = 0; i < len; i++ ) { + if ( singles[ i ] !== '' ) { + indx = parseInt( singles[ i ], 10 ); + if ( indx < c.columns ) { + columns.push( indx ); + } + } + } + } + // return all columns + if ( !columns.length ) { + for ( indx = 0; indx < c.columns; indx++ ) { + columns.push( indx ); + } + } + return columns; + }, + processTypes: function( c, data, vars ) { + var ffxn, + filterMatched = null, + matches = null; + for ( ffxn in tsf.types ) { + if ( $.inArray( ffxn, vars.excludeMatch ) < 0 && matches === null ) { + matches = tsf.types[ffxn]( c, data, vars ); + if ( matches !== null ) { + filterMatched = matches; + } + } + } + return filterMatched; + }, + processRow: function( c, data, vars ) { + var result, filterMatched, + fxn, ffxn, txt, + wo = c.widgetOptions, + showRow = true, + + // if wo.filter_$anyMatch data-column attribute is changed dynamically + // we don't want to do an "anyMatch" search on one column using data + // for the entire row - see #998 + columnIndex = wo.filter_$anyMatch && wo.filter_$anyMatch.length ? + // look for multiple columns '1-3,4-6,8' + tsf.multipleColumns( c, wo.filter_$anyMatch ) : + []; + + data.$cells = data.$row.children(); + + if ( data.anyMatchFlag && columnIndex.length > 1 ) { + data.anyMatch = true; + data.isMatch = true; + data.rowArray = data.$cells.map( function( i ) { + if ( $.inArray( i, columnIndex ) > -1 ) { + if ( data.parsed[ i ] ) { + txt = data.cacheArray[ i ]; + } else { + txt = data.rawArray[ i ]; + txt = $.trim( wo.filter_ignoreCase ? txt.toLowerCase() : txt ); + if ( c.sortLocaleCompare ) { + txt = ts.replaceAccents( txt ); + } + } + return txt; + } + }).get(); + data.filter = data.anyMatchFilter; + data.iFilter = data.iAnyMatchFilter; + data.exact = data.rowArray.join( ' ' ); + data.iExact = wo.filter_ignoreCase ? data.exact.toLowerCase() : data.exact; + data.cache = data.cacheArray.slice( 0, -1 ).join( ' ' ); + + vars.excludeMatch = vars.noAnyMatch; + filterMatched = tsf.processTypes( c, data, vars ); + + if ( filterMatched !== null ) { + showRow = filterMatched; + } else { + if ( wo.filter_startsWith ) { + showRow = false; + // data.rowArray may not contain all columns + columnIndex = Math.min( c.columns, data.rowArray.length ); + while ( !showRow && columnIndex > 0 ) { + columnIndex--; + showRow = showRow || data.rowArray[ columnIndex ].indexOf( data.iFilter ) === 0; + } + } else { + showRow = ( data.iExact + data.childRowText ).indexOf( data.iFilter ) >= 0; + } + } + data.anyMatch = false; + // no other filters to process + if ( data.filters.join( '' ) === data.filter ) { + return showRow; + } + } + + for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) { + data.filter = data.filters[ columnIndex ]; + data.index = columnIndex; + + // filter types to exclude, per column + vars.excludeMatch = vars.excludeFilter[ columnIndex ]; + + // ignore if filter is empty or disabled + if ( data.filter ) { + data.cache = data.cacheArray[ columnIndex ]; + // check if column data should be from the cell or from parsed data + if ( wo.filter_useParsedData || data.parsed[ columnIndex ] ) { + data.exact = data.cache; + } else { + result = data.rawArray[ columnIndex ] || ''; + data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405 + } + data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ? + data.exact.toLowerCase() : data.exact; + + data.isMatch = c.$headerIndexed[ data.index ].hasClass( 'filter-match' ); + + result = showRow; // if showRow is true, show that row + + // in case select filter option has a different value vs text 'a - z|A through Z' + ffxn = wo.filter_columnFilters ? + c.$filters.add( c.$externalFilters ) + .filter( '[data-column="' + columnIndex + '"]' ) + .find( 'select option:selected' ) + .attr( 'data-function-name' ) || '' : ''; + // replace accents - see #357 + if ( c.sortLocaleCompare ) { + data.filter = ts.replaceAccents( data.filter ); + } + + // data.iFilter = case insensitive ( if wo.filter_ignoreCase is true ), + // data.filter = case sensitive + data.iFilter = wo.filter_ignoreCase ? ( data.filter || '' ).toLowerCase() : data.filter; + fxn = vars.functions[ columnIndex ]; + filterMatched = null; + if ( fxn ) { + if ( fxn === true ) { + // default selector uses exact match unless 'filter-match' class is found + filterMatched = data.isMatch ? + // data.iExact may be a number + ( '' + data.iExact ).search( data.iFilter ) >= 0 : + data.filter === data.exact; + } else if ( typeof fxn === 'function' ) { + // filter callback( exact cell content, parser normalized content, + // filter input value, column index, jQuery row object ) + filterMatched = fxn( data.exact, data.cache, data.filter, columnIndex, data.$row, c, data ); + } else if ( typeof fxn[ ffxn || data.filter ] === 'function' ) { + // selector option function + txt = ffxn || data.filter; + filterMatched = + fxn[ txt ]( data.exact, data.cache, data.filter, columnIndex, data.$row, c, data ); + } + } + if ( filterMatched === null ) { + // cycle through the different filters + // filters return a boolean or null if nothing matches + filterMatched = tsf.processTypes( c, data, vars ); + if ( filterMatched !== null ) { + result = filterMatched; + // Look for match, and add child row data for matching + } else { + txt = ( data.iExact + data.childRowText ) + .indexOf( tsf.parseFilter( c, data.iFilter, data ) ); + result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) ); + } + } else { + result = filterMatched; + } + showRow = ( result ) ? showRow : false; + } + } + return showRow; + }, + findRows: function( table, filters, combinedFilters ) { + if ( table.config.lastCombinedFilter === combinedFilters || + !table.config.widgetOptions.filter_initialized ) { + return; + } + var len, norm_rows, rowData, $rows, $row, rowIndex, tbodyIndex, $tbody, columnIndex, + isChild, childRow, lastSearch, showRow, showParent, time, val, indx, + notFiltered, searchFiltered, query, injected, res, id, txt, + storedFilters = $.extend( [], filters ), + c = table.config, + wo = c.widgetOptions, + // data object passed to filters; anyMatch is a flag for the filters + data = { + anyMatch: false, + filters: filters, + // regex filter type cache + filter_regexCache : [] + }, + vars = { + // anyMatch really screws up with these types of filters + noAnyMatch: [ 'range', 'notMatch', 'operators' ], + // cache filter variables that use ts.getColumnData in the main loop + functions : [], + excludeFilter : [], + defaultColFilter : [], + defaultAnyFilter : ts.getColumnData( table, wo.filter_defaultFilter, c.columns, true ) || '' + }; + + // parse columns after formatter, in case the class is added at that point + data.parsed = c.$headers.map( function( columnIndex ) { + return c.parsers && c.parsers[ columnIndex ] && + // force parsing if parser type is numeric + c.parsers[ columnIndex ].parsed || + // getData won't return 'parsed' if other 'filter-' class names exist + // ( e.g. ) + ts.getData && ts.getData( c.$headerIndexed[ columnIndex ], + ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' || + $( this ).hasClass( 'filter-parsed' ); + }).get(); + + for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) { + vars.functions[ columnIndex ] = + ts.getColumnData( table, wo.filter_functions, columnIndex ); + vars.defaultColFilter[ columnIndex ] = + ts.getColumnData( table, wo.filter_defaultFilter, columnIndex ) || ''; + vars.excludeFilter[ columnIndex ] = + ( ts.getColumnData( table, wo.filter_excludeFilter, columnIndex, true ) || '' ).split( /\s+/ ); + } + + if ( c.debug ) { + console.log( 'Filter: Starting filter widget search', filters ); + time = new Date(); + } + // filtered rows count + c.filteredRows = 0; + c.totalRows = 0; + // combindedFilters are undefined on init + combinedFilters = ( storedFilters || [] ).join( '' ); + + for ( tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++ ) { + $tbody = ts.processTbody( table, c.$tbodies.eq( tbodyIndex ), true ); + // skip child rows & widget added ( removable ) rows - fixes #448 thanks to @hempel! + // $rows = $tbody.children( 'tr' ).not( c.selectorRemove ); + columnIndex = c.columns; + // convert stored rows into a jQuery object + norm_rows = c.cache[ tbodyIndex ].normalized; + $rows = $( $.map( norm_rows, function( el ) { + return el[ columnIndex ].$row.get(); + }) ); + + if ( combinedFilters === '' || wo.filter_serversideFiltering ) { + $rows + .removeClass( wo.filter_filteredRow ) + .not( '.' + c.cssChildRow ) + .css( 'display', '' ); + } else { + // filter out child rows + $rows = $rows.not( '.' + c.cssChildRow ); + len = $rows.length; + + if ( ( wo.filter_$anyMatch && wo.filter_$anyMatch.length ) || + typeof filters[c.columns] !== 'undefined' ) { + data.anyMatchFlag = true; + data.anyMatchFilter = '' + ( + filters[ c.columns ] || + wo.filter_$anyMatch && tsf.getLatestSearch( wo.filter_$anyMatch ).val() || + '' + ); + if ( wo.filter_columnAnyMatch ) { + // specific columns search + query = data.anyMatchFilter.split( tsfRegex.andSplit ); + injected = false; + for ( indx = 0; indx < query.length; indx++ ) { + res = query[ indx ].split( ':' ); + if ( res.length > 1 ) { + // make the column a one-based index ( non-developers start counting from one :P ) + id = parseInt( res[0], 10 ) - 1; + if ( id >= 0 && id < c.columns ) { // if id is an integer + filters[ id ] = res[1]; + query.splice( indx, 1 ); + indx--; + injected = true; + } + } + } + if ( injected ) { + data.anyMatchFilter = query.join( ' && ' ); + } + } + } + + // optimize searching only through already filtered rows - see #313 + searchFiltered = wo.filter_searchFiltered; + lastSearch = c.lastSearch || c.$table.data( 'lastSearch' ) || []; + if ( searchFiltered ) { + // cycle through all filters; include last ( columnIndex + 1 = match any column ). Fixes #669 + for ( indx = 0; indx < columnIndex + 1; indx++ ) { + val = filters[indx] || ''; + // break out of loop if we've already determined not to search filtered rows + if ( !searchFiltered ) { indx = columnIndex; } + // search already filtered rows if... + searchFiltered = searchFiltered && lastSearch.length && + // there are no changes from beginning of filter + val.indexOf( lastSearch[indx] || '' ) === 0 && + // if there is NOT a logical 'or', or range ( 'to' or '-' ) in the string + !tsfRegex.alreadyFiltered.test( val ) && + // if we are not doing exact matches, using '|' ( logical or ) or not '!' + !tsfRegex.exactTest.test( val ) && + // don't search only filtered if the value is negative + // ( '> -10' => '> -100' will ignore hidden rows ) + !( tsfRegex.isNeg1.test( val ) || tsfRegex.isNeg2.test( val ) ) && + // if filtering using a select without a 'filter-match' class ( exact match ) - fixes #593 + !( val !== '' && c.$filters && c.$filters.filter( '[data-column="' + indx + '"]' ).find( 'select' ).length && + !c.$headerIndexed[indx].hasClass( 'filter-match' ) ); + } + } + notFiltered = $rows.not( '.' + wo.filter_filteredRow ).length; + // can't search when all rows are hidden - this happens when looking for exact matches + if ( searchFiltered && notFiltered === 0 ) { searchFiltered = false; } + if ( c.debug ) { + console.log( 'Filter: Searching through ' + + ( searchFiltered && notFiltered < len ? notFiltered : 'all' ) + ' rows' ); + } + if ( data.anyMatchFlag ) { + if ( c.sortLocaleCompare ) { + // replace accents + data.anyMatchFilter = ts.replaceAccents( data.anyMatchFilter ); + } + if ( wo.filter_defaultFilter && tsfRegex.iQuery.test( vars.defaultAnyFilter ) ) { + data.anyMatchFilter = tsf.defaultFilter( data.anyMatchFilter, vars.defaultAnyFilter ); + // clear search filtered flag because default filters are not saved to the last search + searchFiltered = false; + } + // make iAnyMatchFilter lowercase unless both filter widget & core ignoreCase options are true + // when c.ignoreCase is true, the cache contains all lower case data + data.iAnyMatchFilter = !( wo.filter_ignoreCase && c.ignoreCase ) ? + data.anyMatchFilter : + data.anyMatchFilter.toLowerCase(); + } + + // loop through the rows + for ( rowIndex = 0; rowIndex < len; rowIndex++ ) { + + txt = $rows[ rowIndex ].className; + // the first row can never be a child row + isChild = rowIndex && tsfRegex.child.test( txt ); + // skip child rows & already filtered rows + if ( isChild || ( searchFiltered && tsfRegex.filtered.test( txt ) ) ) { + continue; + } + + data.$row = $rows.eq( rowIndex ); + data.cacheArray = norm_rows[ rowIndex ]; + rowData = data.cacheArray[ c.columns ]; + data.rawArray = rowData.raw; + data.childRowText = ''; + + if ( !wo.filter_childByColumn ) { + txt = ''; + // child row cached text + childRow = rowData.child; + // so, if 'table.config.widgetOptions.filter_childRows' is true and there is + // a match anywhere in the child row, then it will make the row visible + // checked here so the option can be changed dynamically + for ( indx = 0; indx < childRow.length; indx++ ) { + txt += ' ' + childRow[indx].join( ' ' ) || ''; + } + data.childRowText = wo.filter_childRows ? + ( wo.filter_ignoreCase ? txt.toLowerCase() : txt ) : + ''; + } + + showRow = false; + showParent = tsf.processRow( c, data, vars ); + $row = rowData.$row; + + // don't pass reference to val + val = showParent ? true : false; + childRow = rowData.$row.filter( ':gt( 0 )' ); + if ( wo.filter_childRows && childRow.length ) { + if ( wo.filter_childByColumn ) { + if ( !wo.filter_childWithSibs ) { + // hide all child rows + childRow.addClass( wo.filter_filteredRow ); + // if only showing resulting child row, only include parent + $row = $row.eq( 0 ); + } + // cycle through each child row + for ( indx = 0; indx < childRow.length; indx++ ) { + data.$row = childRow.eq( indx ); + data.cacheArray = rowData.child[ indx ]; + data.rawArray = data.cacheArray; + val = tsf.processRow( c, data, vars ); + // use OR comparison on child rows + showRow = showRow || val; + if ( !wo.filter_childWithSibs && val ) { + childRow.eq( indx ).removeClass( wo.filter_filteredRow ); + } + } + } + // keep parent row match even if no child matches... see #1020 + showRow = showRow || showParent; + } else { + showRow = val; + } + $row + .toggleClass( wo.filter_filteredRow, !showRow )[0] + .display = showRow ? '' : 'none'; + } + } + c.filteredRows += $rows.not( '.' + wo.filter_filteredRow ).length; + c.totalRows += $rows.length; + ts.processTbody( table, $tbody, false ); + } + c.lastCombinedFilter = combinedFilters; // save last search + // don't save 'filters' directly since it may have altered ( AnyMatch column searches ) + c.lastSearch = storedFilters; + c.$table.data( 'lastSearch', storedFilters ); + if ( wo.filter_saveFilters && ts.storage ) { + ts.storage( table, 'tablesorter-filters', tsf.processFilters( storedFilters, true ) ); + } + if ( c.debug ) { + console.log( 'Completed filter widget search' + ts.benchmark(time) ); + } + if ( wo.filter_initialized ) { + c.$table.trigger( 'filterEnd', c ); + } + setTimeout( function() { + ts.applyWidget( c.table ); // make sure zebra widget is applied + }, 0 ); + }, + getOptionSource: function( table, column, onlyAvail ) { + table = $( table )[0]; + var c = table.config, + wo = c.widgetOptions, + arry = false, + source = wo.filter_selectSource, + last = c.$table.data( 'lastSearch' ) || [], + fxn = typeof source === 'function' ? true : ts.getColumnData( table, source, column ); + + if ( onlyAvail && last[column] !== '' ) { + onlyAvail = false; + } + + // filter select source option + if ( fxn === true ) { + // OVERALL source + arry = source( table, column, onlyAvail ); + } else if ( fxn instanceof $ || ( $.type( fxn ) === 'string' && fxn.indexOf( '' ) >= 0 ) ) { + // selectSource is a jQuery object or string of options + return fxn; + } else if ( $.isArray( fxn ) ) { + arry = fxn; + } else if ( $.type( source ) === 'object' && fxn ) { + // custom select source function for a SPECIFIC COLUMN + arry = fxn( table, column, onlyAvail ); + } + if ( arry === false ) { + // fall back to original method + arry = tsf.getOptions( table, column, onlyAvail ); + } + + return tsf.processOptions( table, column, arry ); + + }, + processOptions: function( table, column, arry ) { + if ( !$.isArray( arry ) ) { + return false; + } + table = $( table )[0]; + var cts, txt, indx, len, parsedTxt, str, + c = table.config, + validColumn = typeof column !== 'undefined' && column !== null && column >= 0 && column < c.columns, + parsed = []; + // get unique elements and sort the list + // if $.tablesorter.sortText exists ( not in the original tablesorter ), + // then natural sort the list otherwise use a basic sort + arry = $.grep( arry, function( value, indx ) { + if ( value.text ) { + return true; + } + return $.inArray( value, arry ) === indx; + }); + if ( validColumn && c.$headerIndexed[ column ].hasClass( 'filter-select-nosort' ) ) { + // unsorted select options + return arry; + } else { + len = arry.length; + // parse select option values + for ( indx = 0; indx < len; indx++ ) { + txt = arry[ indx ]; + // check for object + str = txt.text ? txt.text : txt; + // sortNatural breaks if you don't pass it strings + parsedTxt = ( validColumn && c.parsers && c.parsers.length && + c.parsers[ column ].format( str, table, [], column ) || str ).toString(); + parsedTxt = c.widgetOptions.filter_ignoreCase ? parsedTxt.toLowerCase() : parsedTxt; + // parse array data using set column parser; this DOES NOT pass the original + // table cell to the parser format function + if ( txt.text ) { + txt.parsed = parsedTxt; + parsed.push( txt ); + } else { + parsed.push({ + text : txt, + // check parser length - fixes #934 + parsed : parsedTxt + }); + } + } + // sort parsed select options + cts = c.textSorter || ''; + parsed.sort( function( a, b ) { + var x = a.parsed, + y = b.parsed; + if ( validColumn && typeof cts === 'function' ) { + // custom OVERALL text sorter + return cts( x, y, true, column, table ); + } else if ( validColumn && typeof cts === 'object' && cts.hasOwnProperty( column ) ) { + // custom text sorter for a SPECIFIC COLUMN + return cts[column]( x, y, true, column, table ); + } else if ( ts.sortNatural ) { + // fall back to natural sort + return ts.sortNatural( x, y ); + } + // using an older version! do a basic sort + return true; + }); + // rebuild arry from sorted parsed data + arry = []; + len = parsed.length; + for ( indx = 0; indx < len; indx++ ) { + arry.push( parsed[indx] ); + } + return arry; + } + }, + getOptions: function( table, column, onlyAvail ) { + table = $( table )[0]; + var rowIndex, tbodyIndex, len, row, cache, indx, child, childLen, + c = table.config, + wo = c.widgetOptions, + arry = []; + for ( tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++ ) { + cache = c.cache[tbodyIndex]; + len = c.cache[tbodyIndex].normalized.length; + // loop through the rows + for ( rowIndex = 0; rowIndex < len; rowIndex++ ) { + // get cached row from cache.row ( old ) or row data object + // ( new; last item in normalized array ) + row = cache.row ? + cache.row[ rowIndex ] : + cache.normalized[ rowIndex ][ c.columns ].$row[0]; + // check if has class filtered + if ( onlyAvail && row.className.match( wo.filter_filteredRow ) ) { + continue; + } + // get non-normalized cell content + if ( wo.filter_useParsedData || + c.parsers[column].parsed || + c.$headerIndexed[column].hasClass( 'filter-parsed' ) ) { + arry.push( '' + cache.normalized[ rowIndex ][ column ] ); + // child row parsed data + if ( wo.filter_childRows && wo.filter_childByColumn ) { + childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length - 1; + for ( indx = 0; indx < childLen; indx++ ) { + arry.push( '' + cache.normalized[ rowIndex ][ c.columns ].child[ indx ][ column ] ); + } + } + } else { + // get raw cached data instead of content directly from the cells + arry.push( cache.normalized[ rowIndex ][ c.columns ].raw[ column ] ); + // child row unparsed data + if ( wo.filter_childRows && wo.filter_childByColumn ) { + childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length; + for ( indx = 1; indx < childLen; indx++ ) { + child = cache.normalized[ rowIndex ][ c.columns ].$row.eq( indx ).children().eq( column ); + arry.push( '' + ts.getElementText( c, child, column ) ); + } + } + } + } + } + return arry; + }, + buildSelect: function( table, column, arry, updating, onlyAvail ) { + table = $( table )[0]; + column = parseInt( column, 10 ); + if ( !table.config.cache || $.isEmptyObject( table.config.cache ) ) { + return; + } + + var indx, val, txt, t, $filters, $filter, option, + c = table.config, + wo = c.widgetOptions, + node = c.$headerIndexed[ column ], + // t.data( 'placeholder' ) won't work in jQuery older than 1.4.3 + options = '', + // Get curent filter value + currentValue = c.$table + .find( 'thead' ) + .find( 'select.' + tscss.filter + '[data-column="' + column + '"]' ) + .val(); + + // nothing included in arry ( external source ), so get the options from + // filter_selectSource or column data + if ( typeof arry === 'undefined' || arry === '' ) { + arry = tsf.getOptionSource( table, column, onlyAvail ); + } + + if ( $.isArray( arry ) ) { + // build option list + for ( indx = 0; indx < arry.length; indx++ ) { + option = arry[ indx ]; + if ( option.text ) { + // OBJECT!! add data-function-name in case the value is set in filter_functions + option['data-function-name'] = typeof option.value === 'undefined' ? option.text : option.value; + + // support jQuery < v1.8, otherwise the below code could be shortened to + // options += $( '