diff --git a/web/ChamiloLMS/js/jqgrid/css/ellipsis-xbl.xml b/web/ChamiloLMS/js/jqgrid/css/ellipsis-xbl.xml
deleted file mode 100755
index b293657d8d..0000000000
--- a/web/ChamiloLMS/js/jqgrid/css/ellipsis-xbl.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/web/ChamiloLMS/js/jqgrid/css/ui.jqgrid.css b/web/ChamiloLMS/js/jqgrid/css/ui.jqgrid.css
index a6da9e84a4..11594b11f5 100644
--- a/web/ChamiloLMS/js/jqgrid/css/ui.jqgrid.css
+++ b/web/ChamiloLMS/js/jqgrid/css/ui.jqgrid.css
@@ -2,9 +2,11 @@
.ui-jqgrid {position: relative;}
.ui-jqgrid .ui-jqgrid-view {position: relative;left:0; top: 0; padding: 0; font-size:11px;}
/* caption*/
-.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0 none;border-right: 0 none; border-top: 0 none;}
-.ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; }
-.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
+.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; font-size: 12px; border-left: 0 none;border-right: 0 none; border-top: 0 none;}
+.ui-jqgrid .ui-jqgrid-caption {text-align: left;}
+.ui-jqgrid .ui-jqgrid-title { margin: .1em 0 .2em; }
+.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px; cursor:pointer;}
+.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }
/* header*/
.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0;padding: 0; overflow-x: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}
@@ -80,8 +82,9 @@ tr.ui-search-toolbar select {margin: 1px 0 0 0}
/* loading */
.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;}
.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}
-* html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */
+* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;}
+/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
/* end loading div */
/* toolbar */
.ui-jqgrid .ui-userdata {border-left: 0 none; border-right: 0 none; height : 21px;overflow: hidden; }
@@ -89,13 +92,14 @@ tr.ui-search-toolbar select {margin: 1px 0 0 0}
.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}
.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative; }
.ui-jqdialog .ui-jqdialog-title { margin: .1em 0 .2em; }
-.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; cursor:pointer;}
.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }
.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }
.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}
.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}
.ui-jqdialog>.ui-resizable-se { bottom: -3px; right: -3px}
+.ui-jqgrid>.ui-resizable-se { bottom: -3px; right: -3px }
/* end Modal window*/
/* Form edit */
.ui-jqdialog-content .FormGrid {margin: 0;}
@@ -133,19 +137,35 @@ tr.ui-search-toolbar select {margin: 1px 0 0 0}
.ui-jqgrid .tree-leaf {position: absolute; height: 18px; width: 18px;overflow: hidden;}
.ui-jqgrid .treeclick {cursor: pointer;}
/* moda dialog */
-* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;}
+/* width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}
/* RTL Support */
-.ui-jqgrid .ui-jqgrid-title-rtl {float:right;margin: .1em 0 .2em; }
+.ui-jqgrid .ui-jqgrid-caption-rtl {text-align: right;}
.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right; padding-left: 20px;}
.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0;}
.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0 -1px -3px;}
.ui-jqgrid .ui-sort-rtl {left:0;}
.ui-jqgrid .tree-wrap-ltr {float: left;}
.ui-jqgrid .tree-wrap-rtl {float: right;}
-.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis;}
+.ui-jqgrid .ui-ellipsis {-moz-text-overflow:ellipsis;text-overflow:ellipsis;}
/* Toolbar Search Menu */
.ui-search-menu { position: absolute; padding: 2px 5px;}
-.ui-jqgrid .ui-search-table { padding: 0px 0px; border: 0px none; height:20px; width:100%;}
-.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }
\ No newline at end of file
+.ui-jqgrid .ui-search-table { padding: 0; border: 0 none; height:20px; width:100%;}
+.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }
+a.g-menu-item, a.soptclass, a.clearsearchclass { cursor: pointer; }
+.ui-jqgrid .ui-search-table .ui-search-input>input,
+.ui-jqgrid .ui-search-table .ui-search-input>select
+{
+ display: block;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.ui-jqgrid .ui-jqgrid-view input,
+.ui-jqgrid .ui-jqgrid-view select,
+.ui-jqgrid .ui-jqgrid-view textarea,
+.ui-jqgrid .ui-jqgrid-view button {
+ font-size: 11px
+}
diff --git a/web/ChamiloLMS/js/jqgrid/js/Changes.txt b/web/ChamiloLMS/js/jqgrid/js/Changes.txt
new file mode 100644
index 0000000000..4494fbd555
--- /dev/null
+++ b/web/ChamiloLMS/js/jqgrid/js/Changes.txt
@@ -0,0 +1,1160 @@
+3.6 version
+===========
+Bug Fixes
+---------
+ * Fix problem with getAbsoluteIndex on IE8
+ * Fix in triggerReload grid to reset the savedRow array.
+ * Fix in setGridWidth method when try to resize a grid a and there is no data.
+ * Fix header aligment in ie8
+ * Fix in createEl function to check for val and not for html when select
+ * making getChangedCells method compatible with unformat function if defined
+ * Fixed record count when scroll true
+ * Fix in setSelection method to accept numbers
+ * Fix IE header checkbox when multiselect is true
+ * Fix for searching DOM elements with id containing special characters
+ * Fix a checkbox checking in form editing module.
+ * Fix getCol to use unformat function
+ * Better looking buttons in form editing
+ * Fix searchFilter in IE7 and IE6 not to return undefined value when more
+than one field is searched.
+ * Some fixes for datepicker UI in inline and cell edit (when present)
+ * Fix in setLabel method not to clear the sort icons when we set new label
+ * Fix in form edit when a formatter select is used
+ * Fix the id pollution when multiselect is enabled. Now the id of every
+common multiselect is combination of cb_ + id of the grid
+ * Fixed bug when deselectAfterSort false and we are in multiselect mode
+ * Fix in unformat number and currency
+ * Fixed bug when creating a select with dataUrl and select is set to multiple.
+ * Fix a bug when creating select with multiple option. Also the attribute
+should be set immediatley after the element is created and not after.
+ * Fix a bug in form edit. The comapared values should be trimed since of
+split(",") which cause the elements to begin with space.
+ * Fix a jqGrid loader (development version) for IE browsers
+ * Fix for form icons in Opera
+ * Fix getGridParam to return values 0 or false
+ * Avoiding the overhead of local functions and maintenance issues when the
+parameters change
+ * Opera fix for cursor col-resize
+ * Fix in editGridRow when a save key is defined and the key is Eneter we
+should not do save when we are in teaxtarea element
+ * Fix in formatter checkbox when the value is undefined. We also add a
+default format for the checkbox too
+ * Fix addRowData to use key:true (keyIndex) when rowid is not defined
+ * Fix formatter bug for the select to use the defaultFormat
+ * Adding a 3 parameter to the unformat function - the cellobject.
+ * Fix alternate rows when we sort data locally.
+ * Fix in addRowData for alternate rows when we add item as last
+ * Fix collapseRow in treegrid preventing infinite recursion
+ * Fix in stripHtml function to parse numeric values
+ * Fix in delGridRow to get "fresh" Data from delData object
+ * Fix problems with width option if set as string.
+ * Fixing $jgrid.format function in base module to accept undefined parameter.
+ * Fix for saveRow method in aftersave function. Also we pass the request and
+not the responseText. Also both aftersave and success functions have the
+same type parameter - the response
+ * Fix for serchhidden in searchGrid method
+ * Fix for setGridWidth method
+ * Fix setColWidth function
+ * Fix for topinfo and bottom info in formedit to appear separatley in edit and add dialogs
+ * Fix searchFilter css to work when called from subgrid
+ * Fix celledit to work better when datepicker is attached
+ * Fix in viewGrid row to vizualize only the columns that only not hidden.
+
+
+Additions and changes
+---------------------
+ * New API
+ * RTL Support
+ * Column reordering
+ * Added life scrolling of data
+ * Added gridResize method which can resize the grid. Also use a jQuery UI
+resizable and can use any options of this widget
+ * Added sortableRows method which allow us to sort rows with drag and drop
+ * Added gridDnD method. The method connect two or more grids so that drag and drop rows
+between these is possible
+ * Add columnChooser method which allows choosing/sorting columns at the same
+time. This method requiere multiselect plugin
+ * Now getRowData can return all rows when rowid is not set.
+ * getCol now can return summary, average and count of the selected row. The
+3 parameter determines this (valid are sum, avg, count). If this parameter
+is set and is valid, the returned value is a scalar.If the param is not
+valid the returned value is empty array.
+ * To setRowData we add a 3 parameter. If the parameter is string we use
+addClass to add classes. If the parameter is object we use css to add css
+properties. Note that we can set properties and classes without data, in
+this case we should set data to false
+ * Adding a event object to ondblClickRow and onRightClickRow events as 4 parameter
+ * Add a ant based build system which allow us to minify the JS code
+ * Added custom validation property in editing modules
+ * Added possibility to create custom element in editing modules
+ * Adding support to configure the ajax request in a way that user want. This
+is done in all modules where ajax is used.
+ * Added class in cell edit and inline edit so that the cell or row can not
+be edited - the corresponding classes are 'not-editable-cell' and
+'not-editable-row'.
+ * Added Hebrew Translation
+ * Added a beforeCheckValues event in editGridRow method. The execution is
+before checking the values. Should return object of the posted data.
+ * Added Romanian translation
+ * Added a property classes in colModel where we can attach classes to column.
+ * info_dialog function can be used as separate modal dialog
+ * Added a class ui-ellipsis in grid css file. Also work in FireFox too.
+ * Changind the order of calling the events beforeSearch and beforeClear in
+filterToolbar method. Also the events are called immediatley after triggering the grid
+ * To onCellSelect we replace the 4 parameter with the more natuaral event instead of e.target -
+sorry if this will bring to some confusions.
+ * Added searchoptions value parameter in order to separate the editing module and search module.
+We first look for such option in searchoptions and if not found we use the
+editoptions value
+ * Added fixed property in colModel which allow us not to change the
+column width if shrinkToFit is true and we set new width of the grid.
+ * Added buildSelect function to deserialize data for the select. This is option
+can be added in editoptions or search options
+
+
+Please read The Installation instructions first in install.txt
+================================================
+3.5 beta (buld6- build11)
+
+New Properties and methods
+==========================
+
+- Added new grid parameter hoverrows. When set to false the mouse hovering is
+disabled in the grid data rows.
+
+- Added rowid as parameter to error function in saveRow method - inline
+editing module
+
+- treeGrid to be initially work with datatype local
+
+- Added new method updateGridRows (grid.custom.js)
+This method update the existing data in the grid by given id rowname.
+
+Syntax: updateGridRows (data, rowidname, jsonreader)
+
+data is a array of data in format
+[{name:value,name1:value1...},{name:value,name2:value2...}]
+where the name is the name from colModel and value is the actuall value.
+It is not neccessary that all columns are present in the data item object
+(the same as setRowData method)
+
+rowidname (string) - is the name of the row which should acts as id.
+If not set the name "id" is used.
+
+jsonreader (boolean) default false. If set to true a jsonReader definition
+is used to set the data. Note that this work only of the item in jsonReader
+object 'repeatitems' is set to true.
+
+- Switch to namedItems JS function. This improve the speed. Previously we
+walk throught the entry rowset to find the rowIndex of the given rowid.
+Now we use the build in javaScript method namedItems which do the same.
+
+- multiselect is enabled in inline edit module.
+
+- To the importComplete event in jqGridImport method we pass the response.
+
+- Added support for alternate rows. Also added new jqGrid option altclass.
+The default value is 'ui-priority-secondary' THis way we can develop our own
+alternate class.
+
+- Added ShrinkToFit option in setColumns method which fit columns to the grid
+width. Default value is false.
+
+- Extend tableToGrid method to use custom options when building the grid.
+The call to this function is
+tableToGrid(selector, options)
+where options is the object with jqGrid options.
+
+- Adding 4px right to the view records text for better view
+
+- Add a onClose event to all modals in form editing (except alert dialog)
+The default value is null. This event can be passed in editGridRow, delGridRow,
+viewGridRow, and setColumns methods. The event raised when a close icon is clicked,
+a cancel button is clicked or ESC key is pressed (if this is enabled).
+
+- Significant speed improvents in tree Grid when a relative large data is loaded.
+
+- Added dataheight parameter to all modal windows, where we can control the
+scrolling content. Intitially this parameter is auto.
+To summarize - we have two parameters for controlling the height of the modal.
+height and dataheight.
+The height parameter control the height of the entry modal, dataheight parameter
+control the height of the scrolling content. The buttons of the modals are
+allways visible at the bottom of the modal.Also some improvments in jqDnR.
+
+- In setColumns method we add colnameview and closeAfterSubmit parameters. The
+colnameview (default true). If set to false the names from colModel are not
+visible. closeAfterSubmit if defined cleses the dialog after the submit
+button is clicked.
+
+- Added parameter viewsortcols in jqGrid parameters. The purpose of this
+parameter is to define different look and behavior of sorting icons that
+appear near the header. This parameter is array with the following default
+options
+viewsortcols : [false,'vertical',true]
+
+The first parameter determines if all icons should be viewed at the same time
+when all columns have sort property set to true.
+The default of false determines that only the icons of the current sorting column
+should be viewed.
+Setting this parameter to true causes all icons in all sortable columns to be viewed.
+
+The second parameter determines how icons should be placed - vertical means that
+the sorting icons are one under another. 'horizontal' means that the icons should
+be one near other.
+
+The third parameter determines the click functionality. If set to true the columns are
+sorted if the header is clicked. If set to false the columns are sorted only when
+the icons are clicked.
+
+Important note: When set a third parameter to false be a sure that the first parameter
+is set to true, otherwise you will lost the sorting.
+
+
+Fixes
+=====
+- Fixed bug in filterToolbar. We search now by index and when not found by
+name.
+
+- Fix in searchGrid method. We search now by index and when not found by
+name.
+
+- Fixed bug in IE when resizing columns. The function getOffset is changed
+so that the resizing speed is the same as in Safari and FF.
+
+- Fix multiple select bug in createEl function. Now we set the options before
+checking for multiple:true
+
+- Fixed bug in treegrid. The strict comparation in getNodeParent method
+causes bad results.
+
+- Fix in setGridWidth method. We do not initialize correct the new width which
+causes after the first set of the width to not work in other grid in the same
+page.
+
+- Fixed bug in GridExport. We delete the columns that are generated
+dynamically - multiselect, subgrid, treegrid or rownumbers. This way the
+import is without errors
+
+- Fixed a bug in addRowData method to add data with id = 0 (number)
+
+- Fixed a forever loading bug in IE.
+
+- Fixed altRows bug in delRowData method
+
+- navGrid method fix for warning modal and IE6
+
+- Fix setColumns method to the common apprach of forms and modals
+
+- Fix for IE8 in getAbsoluteIndex method. IE8 seems to work as other browsers
+
+- Fixed bug in delRowData - the grid does not resize when first row is
+deleted.
+
+- Fixed bug when rownumbers and subgrid are used together
+
+- Fixed bug in row editing when the column name contain dot.
+
+- Fixing bug in viewGridRow - also the id manes of the form are changed in order
+to be not equal of those in editGridRow
+
+
+
+3.5 beta (buld5)
+
+FormEditing
+===========
+- added options checkOnUpdate (default false) in editGridRow method.
+Also available in add and edit mode.
+When this option is set to true the behaviour as follow:
+When something is changed in the form and the user click on
+Cancel button, navigator buttons, close button (on upper right corner of the
+form), in overlay (if available) or press Esc key (if set) a message box apper
+asking the user to save the changes, not to save the changes and go back in the
+form or cancel all changes (this will close the modal form)
+Note that checkOnSubmit option will work only when a submit button is clicked.
+When nothing is changed we contionue with the action.
+
+- added option - rowabove (default false) in colModel formoptions
+When set to true a new empty row is added above this row in form editing.
+- added option - rowcontent (default empty) in colModel formoptions.
+This option have sense only when rowabove option is set to true.
+With this option is possible to set a content to the new added empty row in
+the form. In order to style easy these rows a class 'contentinfo' is set.
+
+- added new items in the language files to support the checkOnUpdate option
+
+- added class 'delmsg' in the delGridRow method. This allow us to change the
+message dynamically using a beforeShow or afterSow eventrs. The class is added
+to a element td.
+
+Fixes
+=====
+- fix in Bulgarian translations files.
+- fix in searchGrid method. Now we search by index (from colModel) and only if
+it is not available we search by name.
+- Fix for date parser in the base module. Now we can sort locally on
+dates that contain month names
+- Fixed bug in searchGrid. The translation messages for the operations does not
+apper when not set in colModel
+- removed some not needed events from base grid. Also return false do these
+by default;
+- Fix bug to check if datepicker is available in searchGrid.
+- Fix a bug in searchGrid in IE6, where the data value is not set for elements
+after the first
+- Fixed bug when calling of jqModal multiple times on the same element. We
+need the initialization only once and not every time. This cause a memory
+leaks
+- Fixed bug in formatter where the data containing ' causes break in IE
+- Fixed bug in base module when adding data where the data contain a ' char.
+This breaks in IE browsers.
+- Fixed bug in checkboxes. We add the value setted in the editoptions. Also
+converting to lower case make the option checkOnUpdate to be true every time.
+- We replace white-space nowrap with pre in td element in the CSS file. This fixes
+the bug in IE where the first row does not wrap when the text is longer than
+the column width. Also this requiere DOCTYPE declaration in the document.
+- Fixed bug in viewGridRow method where when resizing the modal causes the data
+to apper bad.
+
+
+3.5 beta (buld4)
+Base
+====
+- added option footerrow - default false. If set to true this will place a
+footer table with one row below the gird records and above the pager.
+The number of columns equal of these from colModel
+
+-added option userDataOnFooter(default false) which directly place the user data
+array at footer. The rules are as follow: If the userData array contain name
+which is equal to those of colModel then the value is placed in that column.
+If there are no such values nothing is palced. Note that if this option
+is used we use the current formatter options (if available) for that column.
+
+-Added method getCol(colname). Colname can be either number which represents
+the index of the column or name from colModel. The method return array with
+the values of the coulmn.
+
+- Added method footerData ( action, data, format). This method get or set data
+on footer.
+
+action - can be 'get' or 'set'. If not set default is get.
+When set to 'get' - the result is object of type name:value, where the name is
+a name from colModel. This will return a data from the footer. The other two
+options does not have effect in this case.
+
+When set to 'set' a data array (object) should be set. This will place
+the values in the footer.
+
+format - default is true. This instruct the method to use the formmater
+(if set in colModel) when a new values are set.
+Setting to false will disable the using of formatter.
+
+Related css items in the ui.jqgrid.css
+.ui-jqgrid-sdiv - is a div container for the footer
+.ui-jqgrid-ftable - is the class for the table
+tr.footrow - is the class for the footer row
+tr.footrow td is the item for the cell formating
+
+In order to format every cell in a way that you want
+maybe you can use
+
+jQuery("tr.footrow td:eq(2)","#gbox_mygrid").css(...)
+where the td:eq(2) point to the third column
+and mygrid is the id of the grid. The id of the global grid container
+is constructed via "gbox_"+the id of the grid.
+
+There are no methods to show and hide the footer row dynamically, but
+following the above example we can do
+
+jQuery(".ui-jqgrid-sdiv","#gbox_mygrid").hide() - this will hide the footer row.
+
+jQuery(".ui-jqgrid-sdiv","#gbox_mygrid").show() - this will show the footer row.
+
+
+Form Editing
+============
+aded option in editGridRow - checkOnSubmit (default false)
+This option only work in editing mode and not in add.
+When set to true - the method looks if any data is changed in the form and
+if this is a case a dilog message appear where the user is asked to confirm the
+changes or cancel it. Pressing cancel will return to the form, but does not
+set the values to its original state.
+
+Note that this causes a some changes in the language file.
+
+Fixes
+=====
+
+- Removed imgpath from cell edit and inline edit modules and common module.
+This parameter is no longer valid in 3.5
+- Replace $ with jQuery in grid.common.js which causes problems when used with
+other librariers like prototype.
+- removed a checking e.srcElement from base module. jQuery allready fix this.
+- fixing the size option in select when using ajax to load selects.
+- Fixed bug in IE browsers, when clicked on href tag with child nodes,
+IE incorrect report in all cases that this is a href element. This couses
+onSelectCell not to behave correct.
+- Fixed bug in searchGrid - group options are not passed to serchFilter in
+order get them from Language file.
+- Fix in bulgarian trnslations.
+- Fix on sorting column. The initial sort check first for index and then for
+column name. Before the checking for the index was missed.
+Sortorder converted to lower case in order to avoid some cofusions.
+- Fix in set columns module. The modal does not appear correctly due to
+missed parameter
+
+
+
+3.5 beta (buld3)
+
+Base
+====
+- To the loading message is added ui-state-active class from Theme roller.
+This is more natural, indicating that the grid is active when data is loaded.
+
+Form Editing
+============
+- Added keyboard navigation, which allow us to navigate throught the records while
+in form editing pressing certain keys. This option is available in editGridRow
+and viewGridRow methods. The default state is disabled. To enable this you
+should set the options in the edit/add parameters:
+
+navkeys: [true,38,40]
+The first item enables the navigation.
+The second item corresponds to reccord up and by default is the the key code
+for Up key
+The third item corresponds to reccord down and by default is the key code for
+Down key
+Example
+$("#mygrid").navGrid("#pager",{options},{id:'myeditid',navkeys: [true,38,40]}..)
+Also this option does not work in add mode.
+
+Note: Instead that this does not have sense, if you plan to navigate with keys
+it is recommended to add this option in add mode. This should be done
+because the form for add and edit is the same and it is unknown which action
+will be lunched first.
+
+- Added posibility to save the form pressing certain key - add/edit mode only
+By default this option is disabled.
+To enable
+savekey: [true,13]
+The first item enables saving with pressing certain key.
+The second item corresponds to key code for saving. Default Enter (key code 13)
+
+Note that this binding should be used for both adding and editing a row.
+Since the binding is for the form, there is no possibility to have one
+key in add and another in edit mode.
+
+- Added icons for the buttons in the form. The corresponding class in the css
+is "fm-button"
+By default all icons are enabled.
+For add/edit method editGridRow
+The save button is defined with
+saveicon : [true,"left","ui-icon-disk"]
+The close button is defined with
+closeicon: [true,"left","ui-icon-close"]
+
+The first item enables the icon
+The second item tells where to pu icon left or right
+The third item corresponds to valid ui icon from theme roller
+
+For viewGrid Row
+closeicon : [true,"left","ui-icon-close"]
+
+For Deleting
+delicon: [true,"left","ui-icon-scissors"]
+cancelicon: [true,"left","ui-icon-cancel"]
+
+Fixes
+======
+-Fixed bug when getting the index of the row. Strict compare should be removed.
+-Fixed bug when datatype is function - we need to exit when call it and not to
+continue.
+-Fixed bug in form editing - the buttons do not align properly.
+
+3.5 beta (build2)
+
+Navigator
+=========
+This was missed in the first build
+In the navGrid we can pass uniquie id's of the buttons in order to manipulate
+them easy. If no id is set we create one which is combination of:
+for add button "add_"+ the id of the grid
+for edit button "edit_"+ the id of the grid
+for view button "view_" + the id of the grid
+for delete button "del_" + the id of the grid
+for search button "search_" + the id of the grid
+for refresh button "refresh_" + the id of the grid
+Example:
+$("#mygrid").navGrid("#pager",{options}, {id:'myeditid'},{id:'myaddid'}...)
+
+Base Grid
+=========
+- Record number information now can format the values according to the
+formatter setting (if available) getting information from language file.
+
+Fixes
+=====
+
+- Fixed bug when multi select with json. We pass wrong parameter to addMulti
+function
+- Spelling error in all language files, which cause not to set the default
+value correct
+- Fixed bug when creating warning message. Fixed bug when determining the
+number column element in the form
+- Fixed bug - clientSide datatype should be converted to lower case
+according to the new improvements
+- Fixed bug in IE6/7 when try to select a option in the select generated via
+ajax
+
+===============================
+Upgrade from 3.4.x to 3.5 beta.
+===============================
+
+
+1. Installation
+--------------
+See install.txt
+
+2. Code changes
+---------------
+2.1 The following grid options are deprecated - i.e. you can remove them from
+the grid options. They are not needed in 3.5 version
+
+imgpath
+sortascimg
+sortdescimg
+firstimg
+previmg
+nextimg
+lastimg
+sortclass
+resizeclass
+
+2.2 Second change is related to custom formatters. Starting with version 3.5,
+the custom formatter is passed the following parameters:
+
+formatter : function ( cellvalue, options, rowObject )
+{
+// format the cellvalue to new format
+return new_formated_cellvalue;
+}
+
+Note the return in the function. This function should always return a value
+in order to work correctly. The parameters are
+
+cellvalue - is the value to be formatted
+options - is an object containing the following element
+
+options : { rowId: rid, colModel: cm}
+where rid - is the id of the row
+colModel is the object of the properties for this column getted from colModel
+array of jqGrid
+
+rowObject - is a row data represented in the format determined from datatype
+option.
+If we have datatype: xml/xmlstring - the rowObject is xml node,provided
+according to the rules from xmlReader
+If we have datatype: json/jsonstring - the rowObject is array, provided
+according to the rules from jsonReader
+
+Example:
+Code in 3.4.x variant
+
+formatter : function ( elem, cellvalue, options)
+{
+var newval = ""+cellvalue+"";
+jQuery(elem).html(newval);
+}
+
+
+Code in 3.5
+
+formatter : function ( cellvalue, options, rowObject )
+{
+return ""+cellvalue+"";
+}
+
+
+Base Module
+============
+Bug fixes
+---------
+- fixed bug in onCellSelect event when used in IE browsers - now the rowIndex
+passed to this event is calculated correctly regardless of hidden columns.
+
+- fixed width bug when multiselect is used. Previously the width of this column
+is recalculated according to table width and when shrinkToFit is set to true.
+Now the column has fixed width and is no longer recalculated when the grid
+width is changed. See documentation for the new options
+
+- fixed width bug when subgrid is used. Previously the width of this column is
+recalculated according to table width and when shrinkToFit is set to true. Now
+the column has fixed width and is no longer recalculated when the grid width
+is changed. See documentation for the new options
+
+- fixed bug in addRowData method when the grid is empty and we try to add one
+or more columns. The width of the data was not being recalculated correctly,
+according to the header elements.
+
+- fixed bug when we use xmlstring and jsonstring to add data. Previously all
+the data from the string is loaded without reference to the rowNum parameter.
+Also this behaviour is changed for xml and json data. In other words, we now
+load only rowNum number of rows even when the request consists of more rows.
+
+- fixed bug when posting values of input of type select set to multiple:true.
+Now in all editing modules the posted values in for multiselect are separated
+with comma
+
+- fixed bug in the size option of multi select. If the size option is not set
+for multiselect the default value is 3
+
+Deprecated options
+----------------
+imgpath: "", in all modules
+sortascimg: "sort_asc.gif",
+sortdescimg: "sort_desc.gif",
+firstimg: "first.gif",
+previmg: "prev.gif",
+nextimg: "next.gif",
+lastimg: "last.gif",
+sortclass: "grid_sort",
+resizeclass: "grid_resize",
+
+Note that imgpath is not used anymore in all modules.
+The altRows option is still here, but will have no effect until the jQuery
+UI Theme roller supports alternative rows.
+
+
+Note that the table element where we define the grid can not have a class
+scroll - i.e. class scroll in the table definition can be omitted, but this
+is NOT true for the pager element.
+
+New options
+-----------
+datatype can now set as 'script'. In other words, we now support script
+as datatype.
+
+reccount: numeric, Default 0. Determines the exact number of available
+grid rows. Can be <= from rowNum parameter
+
+autowidth: boolean, Default false. When set to true, the grid width is
+recalculated automatically to the width of the parent element. This is done
+only initially when the grid is created. In order to resize the grid when
+the parent element changes width you should apply custom code and use a
+setGridWidth method for this purpose.
+
+scrollOffset: numeric, Default 18. Determines the width of the vertical
+scrollbar. Since different browsers interpret this width differently (and it
+is difficult to calculate it in all browsers) this can be changed.
+
+cellLayout: numeric, Default 5. This option determines the padding + border
+width of the cell. Usually this should not be changed, but if custom changes
+to td element are made in the grid css file this will need to be changed.
+
+subGridWidth: numeric, Default 20. Determines the width of the subgrid column
+if the subGrid option is set to true.
+
+multiselectWidth: numeric, Default 20. Determines the width of the multiselect
+column if multiselect is set to true.
+
+rownumbers: boolean, Default false. If this option is set to true, a new column
+at left of the grid is added. The purpose of this column is to count the number
+of available rows, beginning from 1. In this case colModel is extended
+automatically with new element with name - 'rn'. Also, be careful not to use
+the name 'rn' in colModel
+
+rownumWidth: numeric, Default 25. Determines the width of the row number column
+if rownumbers option is set to true.
+
+pagerpos: string, Default 'center'. Determines the position of the pager in the
+grid. By default the pager element when created is divided in 3 parts (one part
+for pager, one part for navigator buttons and one part for record information)
+
+recordpos: string, Default 'right'. Determines the position of the record
+information in the pager.
+
+toolbar now accepts another option: "both". When we set toolbar: [true,"both"]
+two toolbars are created -- one on the top of table data and one of the bottom
+of the table data. When we have two toolbars then we create two elements (div).
+The id of the top bar is constructed like "t_"+id of the grid and the bottom
+toolbar the id is "tb_"+id of the grid. In case when only one toolbar is
+created we have the id as "t_" + id of the grid, independent of where this
+toolbar is created (top or bottom)
+
+gridview: boolean, Default value false. In the previous versions of jqGrid,
+including 3.5 alfa, reading a relatively big data sets (Rows >=100 ) caused
+speed problems. The reason for this was that as every cell was inserted into
+the grid we applied about 5-6 jQuery calls to it. Now this problem is resolved;
+we now insert the entry row at once with a jQuery append. The result is
+impressive - about 3-5 times faster. What will be the result if we insert all
+the data at once? Yes, this can be done with a help of gridview option when set
+to true. The result is a grid that is 5 to 10 times faster. Of course when this
+option is set to true we have some limitations. If set to true we can not use
+- treeGrid
+- subGrid, or
+- afterInsertRow event.
+If you do not use these three options in the grid you can set this option to
+true and enjoy the speed.
+
+addRowData now is 1-2 times faster because we are using the concept to insert
+the row at once
+
+Added jQuery function parse (removed from json2.js module):
+jQuery.parse(jsonstring)
+To prevent JavaScript hijacking attacks, web application authors are encouraged
+to use this function. This returns a JSON representation of the variable.
+
+Cyclic structures are detected and safely interrupted, but could not be further
+restored.
+1. The while(1); construct, located at the beginning of JSON text,
+2. Comments at the beginning and end of the text.
+JSON data providers are encouraged to use one or both of these methods to
+prevent data execution. Such JSON response may then look like this:
+while(1);/*{[
+ {"name":"safe value 1"},
+ {"name":"safe value 2"},
+ ...
+]}*/
+jqGrid uses this function when obtaining a data with datatype:'json', also used
+in subGrid.
+
+Added jQuery function stringToDoc: jQuery.stringToDoc(xmlstring). This returns
+the xml document of xml string
+
+Added new method: jQuery("#mygrid").updateColumns(); this synchronizes the
+width of the headers with the data. Useful when used with table drag and drop.
+
+
+colModel changes and additions
+------------------------------
+searchhidden is removed from editrules object
+
+added searchoptions object to define properties, events and other settings when
+a search is performed
+searchoptions : {
+ dataUrl : value,
+ dataInit: function,
+ dataEvents : array,
+ defaultValue: value,
+ attr: object,
+ searchhidden: boolean,
+ sopt: array
+}
+To summarize - when we want to deal with search we should use the following
+options in colModel
+
+search : boolean , // true/false
+stype: value, // text/select
+searchoptions : object // see above
+
+Note: when the dataUrl is not used for the search type select, the definitions
+for the select are taken from editoptions value property - i.e
+editoptions:{value:"1:one;2:two",...}. See below for how to use these options in
+different search methods.
+
+
+Added new object formoptions to define various settings in form editing. Also
+valid only in this module.
+
+formoptions : {
+ elmprefix:value,
+ elmsuffix:value,
+ rowpos: number,
+ colpos:number,
+ label: value
+}
+See below for how to use
+
+The editoptions are extended with the following properties. Valid in all editing
+modules editoptions : {
+ dataUrl : value, dataInit: function, dataEvents : array, defaultValue:
+ value/function,
+} See below
+
+
+Changes in all editing modules
+==============================
+
+edittype property is extended with the support of the following input elements:
+button, image and file
+
+As described above in all editing modules we can add additional properties and
+events to the editing element:
+
+editoptions : {
+ dataUrl : value, dataInit: function, dataEvents : array, defaultValue:
+ value/function
+}
+-------------------------------------------------------------------------------
+dataUrl option is valid only for the elements of type select - i.e.,
+edittype:select
+
+When this option is set, the element will be filled with values from the ajax
+request. The data should be a valid html select element with the desired
+options.
+
+In form editing for add/edit this is called only once. In order to call it every
+time the form is launched you should set the option recreateForm:true or use
+other events like beforeShowForm (with another custom ajax call) to fill the
+desired element.
+
+In inline edit and cell edit this is fired every time you edit the row or cell
+element.
+--------------------------------------------------------------------------------
+dataInit : function (elem) {
+// do something
+}
+
+If set, this function is called only once ? when the element is created. The
+function is passed the specified element. This option is ideal for attaching
+date picker, time picker, etc. Example:
+
+dataInit : function (elem) {
+ $(elem).datepicker();
+}
+--------------------------------------------------------------------------------
+dataEvents: list of events to apply to the data element; uses
+$("#id").bind(type, [data], fn) to bind events to data element
+
+Should be described like this dataEvents: [
+ { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); }
+ }, { type: 'keypress', fn: function(e) { console.log('keypress'); } }
+]
+
+The event(s) are called only once when the element is created
+-------------------------------------------------------------------------------
+defaultValue: 'value' or function This option is valid only in Form Editing
+module when used with editGridRow method in add mode.If set this the input
+element is set with this value if only element is empty. If used in selects the
+text should be provided and not the key. Also when a function is used the
+function should return value.
+
+Now we can validate a url. The corresponding settings is in colModel
+editrules:{required:true, url:true}
+
+
+FormEditing
+===========
+In all methods that deal with the modals are added the following options (thanks
+to Faserline Team: www.faserline.com)
+
+jqModal: true. The default value is true. How it works. If set to true, first
+jqGrid checks if the jqModal plugin is available. If this plugin is available we
+create the modal according to the jqModal plugin. If this plugin is not
+available jqGrid create its own modal. The difference between the jqModal window
+and jqGrid modal window is that the overlay covers only the grid, but not the
+entry page as jqModal does. If this option is set to false, jqGrid will create
+its own modal as described above even if jqModal is available.
+
+The only exception here is searchGrid method created with the new searchFilter
+plugin, where this option is not available. In this method a jqGrid modal window
+is used.
+
+closeOnEscape : false. Default false. When set to true the modal window can be
+closed with ESC key.
+
+
+
+=======searchGrid==================
+From now on jqGrid use a new search engine
+thanks to wonderful plugin provided from Kasey Speakman (kasey@cornerspeed.com).
+This plugin can also be used separately. Detailed documentation is provided in
+the jquery.searchFilter.js which is provided with jqGrid package.
+
+These options are not used anymore in the searchGrid method
+----------------------------------------------------------
+top : 0,
+left: 0,
+width: 360,
+height: 80,
+modal: false,
+closeicon: 'ico-close.gif',
+dirty: false,
+processData: "",
+
+Added the following options
+---------------------------
+
+recreateFilter: false, This option construct the filter every time a search
+button is clicked.
+
+multipleSearch : false, When set to false the behaviour of the search is the
+same as those in versions before 3.5 When set to true: 1. We have a possibility
+to add/delete as many conditions as we want 2. The posted data to the server is
+string (actually a json array converted to string)
+
+sFilter: 'filters', This option has an effect only when the multipleSearch is
+set to true; it describes the name of the posted string. By default this, i.e.
+the posted data, can look like this
+
+filters ={
+ "groupOp":"AND","rules":[{"field":"id","op":"gt","data":"1"},
+{"field":"name","op":"bw","data":"Client"}]
+}
+
+groupOp determines the logical operator that can be used in the where statement
+of the select. The value can be AND or OR. This can be changed used a select box
+which is created at bottom of the search filter.
+
+The rules array describes actually which fields and how they are included in the
+where clause The field element describes the name of the field The op element
+describes the operator that should be used in the search The data element is the
+data that we want to search.
+
+The above example (if getted and constructed correctly) should generate the
+following where clause
+
+SELECT .... FROM table,... WHERE id > 1 AND name LIKE 'Client%'
+-------------------------------------------------------------------------------
+As described above the search is constructed according to the searchoptions in
+colModel
+
+search : boolean , // true/false stype: value, // text/select
+
+searchoptions : {
+ dataUrl : value,
+ dataInit: function,
+ dataEvents : array,
+ attr: object,
+ searchhidden: boolean,
+ sopt: array
+}
+Note that here is missing the defaultValue. The option is not implemented in
+this method.
+
+
+stype determines the search type - can be select or text. If not set a text is
+used
+
+searchoptions
+-------------------------------------------------------------------------------
+dataUrl option is valid only for the elements of type select, i.e.
+edittype:select
+
+When this option is set the element will be filled with values from the ajax
+request. The data should be a valid html select element with the desired
+options.
+
+This is called only once.
+
+-------------------------------------------------------------------------------
+dataInit : function (elem) {
+// do something
+}
+
+If set this function is called only once when the element is created. To the
+function is passed the element. Also this option is ideal for attaching date
+picker, time picker and etc. Example
+
+dataInit : function (elem) {
+ $(elem).datepicker();
+}
+--------------------------------------------------------------------------------
+dataEvents: list of events to apply to the data element; uses
+$("#id").bind(type, [data], fn) to bind events to data element
+
+Should be described like this
+dataEvents: [
+{ type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); }},
+{ type: 'keypress', fn: function(e) { console.log('keypress'); } }
+]
+
+The event(s) are called only once when the element is created
+--------------------------------------------------------------------------------
+attr is object where we can set valid attributes to the created element
+
+attr : { title: "Some title" }
+------------------------------------------------------------------------------
+searchhidden : if set to true, the hidden element will appear in the search.
+-------------------------------------------------------------------------------
+array that correspond to the op element in the posted data and determines the
+operation. If not set all the available options will be used; if set only the
+set values will appear as selectboxes.
+
+All available option are sopt:
+['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc']
+
+The corresponding texts are in language file and mean the following ['equal',
+'not equal', 'less', 'less or equal','greater','greater or equal', 'begins
+with','does not begin with','is in','is not in','ends with','does not end
+with','contains','does not contain'],
+
+Note that the elements in sopt array can be mixed in any order.
+
+
+=========add/edit form==========
+In the editGridRow method the following options are no longer used
+
+closeicon: 'ico-close.gif',
+imgpath: ''
+
+Added new property formoptions (in colModel); thanks to Faserline Team
+(www.faserline.com)
+
+The purpose of these options is to reorder the elements in the form and to add
+some information before and after the editing element.
+
+formoptions : {
+ elmprefix:'',
+ elmsuffix:'',
+ rowpos:number,
+ colpos:number,
+ label: value
+}
+
+If you go to use this object in collModel it is recommended that all editing
+fields use this property and with at least the rowpos and colpos set.
+
+Elemprefix: if set, a text or html content appears before the input element
+
+Elemsuffix: if set, a text or html content appears after the input element
+
+Label: if set, this replace the name from colNames array that appears as label
+in the form.
+
+rowpos : number determines the row position of the element (again with the
+text-label) in the form; the count begins from 1
+
+colpos : number determines the column position of the element (again with the
+label) in the form beginning from 1
+
+Two elements can have equal row position, but different column position. This
+will place the two elements in one row on the form.
+
+=========== delete=================================
+In the delGridRow method the following options are no longer used
+
+closeicon: 'ico-close.gif',
+imgpath: '',
+
+
+
+============= view =============================
+Added viewGridRow method; thanks to Faserline Team (www.faserline.com)
+
+This method is similar to the editGridRow method except that the fields are not
+editable and we do not have any events attached to the form. Here are the
+options viewGridRow (options) where
+options = {
+ top : 0,
+ left: 0,
+ width: 0,
+ height: 0,
+ modal: false,
+ drag: true,
+ closeOnEscape : false,
+ labelswidth: '30%'
+}
+
+
+All the options have the same thing as these in editGridRow except the option
+labelswidth which default value is 30%. Since we construct the view with table
+element it is difficult to calculate, in this case, how much width is needed for
+the labels. Depending on the needs this value can be increased or decreased
+
+Custom method
+=============
+In the custom module is added new method filterToolbar.
+
+This method is the same as filterGrid, except that the search input elements are
+placed in the grid just below the header elements. When the header elements are
+resized the input search elements are also resized according to the new width.
+Another difference to the filterGrid is that the filter toolbar uses definitions
+from colModel just like the searchGrid
+
+Should be called like this
+
+jQuery("#mygrid").filterToolbar(options)
+
+where options are
+
+options = {
+ autosearch: true,
+ beforeSearch: null,
+ afterSearch: null,
+ beforeClear: null,
+ afterClear: null,
+ searchurl : ''
+}
+
+autosearch: true Search is performed according to the following rules For text
+element when a Enter key is pressed while inputting values a search is
+performed. For select element when the value changes.
+
+beforeSearch - event which fires before a search
+
+afterSearch - event which fires after a search
+
+beforeClear - event which fires before clearing entered values (i.e.,
+clearToolbar is activated)
+
+afterClear - event which fires after clearing entered values (i.e., clearToolbar
+is activated)
+
+The rules of creating toolbar search input elements are the same as searchGrid
+using the colModel
+searchoptions : {
+ dataUrl : value,
+ dataInit: function,
+ dataEvents : array,
+ defaultValue: value,
+ attr: object
+}
+
+Note the missing sopt element, but addition of defaultValue property
+
+This method has 3 new additional methods that can be used:
+
+triggerToolbar - when called perform a search dynamically
+
+clearToolbar - when called clear the search values and set the default one if
+available
+
+toggleToolbar - toggles the searchbar
+
+A typical call to these methods
+
+var sgrid = $("#mygrid")[0] sgrid.triggerToolbar();
+
+will trigger the search of mygrid.
+
+
+Import module
+=============
+added option importComplete event which fires after constructing the grid.
+
+
+Inline edit
+===========
+added afterrestorefunc as 9th parameter. The event fires after the row is
+restored
+
+treeGrid
+========
+the tree icons can be changed using the following grid parameter treeIcons. The
+default values are.
+treeIcons ={
+ plus:'ui-icon-triangle-1-e',
+ minus:'ui-icon-triangle-1-s',
+ leaf:'ui-icon-radio-off'
+};
+Note that icons from UI Theme should be used.
+
+formatter
+=========
+
+- the source format for date formatter (srcformat) now can accept month names
+- it is possible to enable checkboxes as editable when created with formatter In
+ the format options we should in this case checkbox : {disabled:false} The
+ default is false. To enable this option globally you can change this value in
+ the language file
+
+- the showLink now can accept custom name for the id The parameter is idName :
+ 'id' The default is id. Can be changed in formatoptions or in the language
+ file.
+
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ar.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ar.js
index 43e82c6adc..b557e05374 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ar.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ar.js
@@ -19,9 +19,11 @@ $.extend($.jgrid,{
caption: "بحث...",
Find: "بحث",
Reset: "إلغاء",
- odata: [{ oper:'eq', text:"يساوي"},{ oper:'ne', text:"يختلف"},{ oper:'lt', text:"أقل"},{ oper:'le', text:"أقل أو يساوي"},{ oper:'gt', text:"أكبر"},{ oper:'ge', text:"أكبر أو يساوي"},{ oper:'bw', text:"يبدأ بـ"},{ oper:'bn', text:"لا يبدأ بـ"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"ينته بـ"},{ oper:'en', text:"لا ينته بـ"},{ oper:'cn', text:"يحتوي"},{ oper:'nc', text:"لا يحتوي"}],
- groupOps: [ { op: "مع", text: "الكل" }, { op: "أو", text: "لا أحد" } ]
- },
+ odata: [{ oper:'eq', text:"يساوي"},{ oper:'ne', text:"يختلف"},{ oper:'lt', text:"أقل"},{ oper:'le', text:"أقل أو يساوي"},{ oper:'gt', text:"أكبر"},{ oper:'ge', text:"أكبر أو يساوي"},{ oper:'bw', text:"يبدأ بـ"},{ oper:'bn', text:"لا يبدأ بـ"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"ينته بـ"},{ oper:'en', text:"لا ينته بـ"},{ oper:'cn', text:"يحتوي"},{ oper:'nc', text:"لا يحتوي"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "مع", text: "الكل" }, { op: "أو", text: "لا أحد" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
+},
edit : {
addCaption: "اضافة",
editCaption: "تحديث",
@@ -100,7 +102,7 @@ $.extend($.jgrid,{
S: function (j) {return j == 1 ? 'er' : 'e';},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg.js
index a7d05ce4ef..9c9d2539e4 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Търсене...",
Find: "Намери",
Reset: "Изчисти",
- odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"различно"},{ oper:'lt', text:"по-малко"},{ oper:'le', text:"по-малко или="},{ oper:'gt', text:"по-голямо"},{ oper:'ge', text:"по-голямо или ="},{ oper:'bw', text:"започва с"},{ oper:'bn', text:"не започва с"},{ oper:'in', text:"се намира в"},{ oper:'ni', text:"не се намира в"},{ oper:'ew', text:"завършва с"},{ oper:'en', text:"не завършава с"},{ oper:'cn', text:"съдържа"},{ oper:'nc', text:"не съдържа"}],
- groupOps: [ { op: "AND", text: " И " }, { op: "OR", text: "ИЛИ" } ]
+ odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"различно"},{ oper:'lt', text:"по-малко"},{ oper:'le', text:"по-малко или="},{ oper:'gt', text:"по-голямо"},{ oper:'ge', text:"по-голямо или ="},{ oper:'bw', text:"започва с"},{ oper:'bn', text:"не започва с"},{ oper:'in', text:"се намира в"},{ oper:'ni', text:"не се намира в"},{ oper:'ew', text:"завършва с"},{ oper:'en', text:"не завършава с"},{ oper:'cn', text:"съдържа"},{ oper:'nc', text:"не съдържа"},{ oper:'nu', text:'е NULL'},{ oper:'nn', text:'не е NULL'}],
+ groupOps: [ { op: "AND", text: " И " }, { op: "OR", text: "ИЛИ" } ],
+ operandTitle : "Натисни за избор на операнд.",
+ resetTitle : "Изчисти стойността"
},
edit : {
addCaption: "Нов Запис",
@@ -106,7 +108,7 @@ $.extend($.jgrid,{
},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg1251.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg1251.js
index a8259df153..03c249d45c 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg1251.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-bg1251.js
@@ -106,7 +106,7 @@ $.extend($.jgrid,{
},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cat.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cat.js
index 33e4db0750..e3a8dd494b 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cat.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cat.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Cerca...",
Find: "Cercar",
Reset: "Buidar",
- odata: [{ oper:'eq', text:"equal"},{ oper:'ne', text:"not equal"},{ oper:'lt', text:"less"},{ oper:'le', text:"less or equal"},{ oper:'gt', text:"greater"},{ oper:'ge', text:"greater or equal"},{ oper:'bw', text:"begins with"},{ oper:'bn', text:"does not begin with"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is not in"},{ oper:'ew', text:"ends with"},{ oper:'en', text:"does not end with"},{ oper:'cn', text:"contains"},{ oper:'nc', text:"does not contain"}],
- groupOps: [ { op: "AND", text: "tot" }, { op: "OR", text: "qualsevol" } ]
+ odata: [{ oper:'eq', text:"equal"},{ oper:'ne', text:"not equal"},{ oper:'lt', text:"less"},{ oper:'le', text:"less or equal"},{ oper:'gt', text:"greater"},{ oper:'ge', text:"greater or equal"},{ oper:'bw', text:"begins with"},{ oper:'bn', text:"does not begin with"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is not in"},{ oper:'ew', text:"ends with"},{ oper:'en', text:"does not end with"},{ oper:'cn', text:"contains"},{ oper:'nc', text:"does not contain"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "tot" }, { op: "OR", text: "qualsevol" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Afegir registre",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd-m-Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cn.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cn.js
index 46af1fecb5..e369c18ea9 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cn.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cn.js
@@ -1,132 +1,169 @@
;(function($){
/**
- * jqGrid Chinese Translation for v4.2
- * henryyan 2011.11.30
- * http://www.wsria.com
+ * jqGrid Chinese Translation
+ * 咖啡兔 yanhonglei@gmail.com
+ * http://www.kafeitu.me
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
- *
- * update 2011.11.30
- * add double u3000 SPACE for search:odata to fix SEARCH box display err when narrow width from only use of eq/ne/cn/in/lt/gt operator under IE6/7
**/
$.jgrid = $.jgrid || {};
$.extend($.jgrid,{
- defaults : {
- recordtext: "{0} - {1}\u3000共 {2} 条", // 共字前是全角空格
- emptyrecords: "无数据显示",
- loadtext: "读取中...",
- pgtext : " {0} 共 {1} 页"
- },
- search : {
- caption: "搜索...",
- Find: "查找",
- Reset: "重置",
- odata : [{oper:'eq', text:'等于\u3000\u3000'},{oper:'ne', text: '不等\u3000\u3000'}, { oper:'lt', text:'小于\u3000\u3000'},{ oper:'le', text: '小于等于'},{ oper:'gt', text:'大于\u3000\u3000'},{ oper:'ge', text:'大于等于'},
- {oper:'bw', text:'开始于'},{ oper:'bn', text:'不开始于'},{ oper:'in', text:'属于\u3000\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结束于'},{ oper:'en', text:'不结束于'},{ oper:'cn', text:'包含\u3000\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'空值于\u3000\u3000'},{ oper:'nn', text:'非空值'}],
- groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ]
- },
- edit : {
- addCaption: "添加记录",
- editCaption: "编辑记录",
- bSubmit: "提交",
- bCancel: "取消",
- bClose: "关闭",
- saveData: "数据已改变,是否保存?",
- bYes : "是",
- bNo : "否",
- bExit : "取消",
- msg: {
- required:"此字段必需",
- number:"请输入有效数字",
- minValue:"输值必须大于等于 ",
- maxValue:"输值必须小于等于 ",
- email: "这不是有效的e-mail地址",
- integer: "请输入有效整数",
- date: "请输入有效时间",
- url: "无效网址。前缀必须为 ('http://' 或 'https://')",
- nodefined : " 未定义!",
- novalue : " 需要返回值!",
- customarray : "自定义函数需要返回数组!",
- customfcheck : "Custom function should be present in case of custom checking!"
-
- }
- },
- view : {
- caption: "查看记录",
- bClose: "关闭"
- },
- del : {
- caption: "删除",
- msg: "删除所选记录?",
- bSubmit: "删除",
- bCancel: "取消"
- },
- nav : {
- edittext: "",
- edittitle: "编辑所选记录",
- addtext:"",
- addtitle: "添加新记录",
- deltext: "",
- deltitle: "删除所选记录",
- searchtext: "",
- searchtitle: "查找",
- refreshtext: "",
- refreshtitle: "刷新表格",
- alertcap: "注意",
- alerttext: "请选择记录",
- viewtext: "",
- viewtitle: "查看所选记录"
- },
- col : {
- caption: "选择列",
- bSubmit: "确定",
- bCancel: "取消"
- },
- errors : {
- errcap : "错误",
- nourl : "没有设置url",
- norecords: "没有要处理的记录",
- model : "colNames 和 colModel 长度不等!"
- },
- formatter : {
- integer : {thousandsSeparator: " ", defaultValue: '0'},
- number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
- currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
- date : {
- dayNames: [
- "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
- ],
- monthNames: [
- "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
- "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
- ],
- AmPm : ["am","pm","AM","PM"],
- S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
- srcformat: 'Y-m-d',
- newformat: 'm-d-Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
- masks : {
- ISO8601Long:"Y-m-d H:i:s",
- ISO8601Short:"Y-m-d",
- ShortDate: "Y/j/n",
- LongDate: "l, F d, Y",
- FullDateTime: "l, F d, Y g:i:s A",
- MonthDay: "F d",
- ShortTime: "g:i A",
- LongTime: "g:i:s A",
- SortableDateTime: "Y-m-d\\TH:i:s",
- UniversalSortableDateTime: "Y-m-d H:i:sO",
- YearMonth: "F, Y"
- },
- reformatAfterEdit : false
- },
- baseLinkUrl: '',
- showAction: '',
- target: '',
- checkbox : {disabled:true},
- idName : 'id'
- }
+ defaults : {
+ recordtext: "{0} - {1}\u3000共 {2} 条", // 共字前是全角空格
+ emptyrecords: "无数据显示",
+ loadtext: "读取中...",
+ pgtext : " {0} 共 {1} 页"
+ },
+ search : {
+ caption: "搜索...",
+ Find: "查找",
+ Reset: "重置",
+ odata: [{ oper:'eq', text:'等于\u3000\u3000'},{ oper:'ne', text:'不等\u3000\u3000'},{ oper:'lt', text:'小于\u3000\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\u3000\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开始于'},{ oper:'bn', text:'不开始于'},{ oper:'in', text:'属于\u3000\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结束于'},{ oper:'en', text:'不结束于'},{ oper:'cn', text:'包含\u3000\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'不存在'},{ oper:'nn', text:'存在'}],
+ groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
+ },
+ edit : {
+ addCaption: "添加记录",
+ editCaption: "编辑记录",
+ bSubmit: "提交",
+ bCancel: "取消",
+ bClose: "关闭",
+ saveData: "数据已改变,是否保存?",
+ bYes : "是",
+ bNo : "否",
+ bExit : "取消",
+ msg: {
+ required:"此字段必需",
+ number:"请输入有效数字",
+ minValue:"输值必须大于等于 ",
+ maxValue:"输值必须小于等于 ",
+ email: "这不是有效的e-mail地址",
+ integer: "请输入有效整数",
+ date: "请输入有效时间",
+ url: "无效网址。前缀必须为 ('http://' 或 'https://')",
+ nodefined : " 未定义!",
+ novalue : " 需要返回值!",
+ customarray : "自定义函数需要返回数组!",
+ customfcheck : "必须有自定义函数!"
+ }
+ },
+ view : {
+ caption: "查看记录",
+ bClose: "关闭"
+ },
+ del : {
+ caption: "删除",
+ msg: "删除所选记录?",
+ bSubmit: "删除",
+ bCancel: "取消"
+ },
+ nav : {
+ edittext: "",
+ edittitle: "编辑所选记录",
+ addtext:"",
+ addtitle: "添加新记录",
+ deltext: "",
+ deltitle: "删除所选记录",
+ searchtext: "",
+ searchtitle: "查找",
+ refreshtext: "",
+ refreshtitle: "刷新表格",
+ alertcap: "注意",
+ alerttext: "请选择记录",
+ viewtext: "",
+ viewtitle: "查看所选记录"
+ },
+ col : {
+ caption: "选择列",
+ bSubmit: "确定",
+ bCancel: "取消"
+ },
+ errors : {
+ errcap : "错误",
+ nourl : "没有设置url",
+ norecords: "没有要处理的记录",
+ model : "colNames 和 colModel 长度不等!"
+ },
+ formatter : {
+ integer : {thousandsSeparator: ",", defaultValue: '0'},
+ number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
+ currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+ date : {
+ dayNames: [
+ "日", "一", "二", "三", "四", "五", "六",
+ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",
+ ],
+ monthNames: [
+ "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二",
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
+ ],
+ AmPm : ["am","pm","上午","下午"],
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
+ srcformat: 'Y-m-d',
+ newformat: 'Y-m-d',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
+ // and see http://docs.jquery.com/UI/Datepicker/formatDate
+ // and https://github.com/jquery/globalize#dates for alternative formats used frequently
+ // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
+ // information about date, time, numbers and currency formats used in different countries
+ // one should just convert the information in PHP format
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ // short date:
+ // n - Numeric representation of a month, without leading zeros
+ // j - Day of the month without leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // example: 3/1/2012 which means 1 March 2012
+ ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
+ // long date:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
+ // long date with long time:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
+ // month day:
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
+ // short time (without seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
+ // long time (with seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ // month with year
+ // Y - A full numeric representation of a year, 4 digits
+ // F - A full textual representation of a month
+ YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
+ },
+ reformatAfterEdit : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ }
});
})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cs.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cs.js
index 187aba57cf..5df483959d 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cs.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-cs.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "Vyhledávám...",
Find: "Hledat",
Reset: "Reset",
- odata: [{ oper:'eq', text:"rovno"},{ oper:'ne', text:"nerovono"},{ oper:'lt', text:"menší"},{ oper:'le', text:"menší nebo rovno"},{ oper:'gt', text:"větší"},{ oper:'ge', text:"větší nebo rovno"},{ oper:'bw', text:"začíná s"},{ oper:'bn', text:"nezačíná s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"není v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obahuje"},{ oper:'nc', text:"neobsahuje"}],
- groupOps: [ { op: "AND", text: "všech" }, { op: "OR", text: "některého z" } ]
+ odata: [{ oper:'eq', text:"rovno"},{ oper:'ne', text:"nerovno"},{ oper:'lt', text:"menší"},{ oper:'le', text:"menší nebo rovno"},{ oper:'gt', text:"větší"},{ oper:'ge', text:"větší nebo rovno"},{ oper:'bw', text:"začíná s"},{ oper:'bn', text:"nezačíná s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"není v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obsahuje"},{ oper:'nc', text:"neobsahuje"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "všech" }, { op: "OR", text: "některého z" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Přidat záznam",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-da.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-da.js
index 7e36543a5e..073a61aac0 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-da.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-da.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Søg...",
Find: "Find",
Reset: "Nulstil",
- odata: [{ oper:'eq', text:"lig"},{ oper:'ne', text:"forskellige fra"},{ oper:'lt', text:"mindre"},{ oper:'le', text:"mindre eller lig"},{ oper:'gt', text:"større"},{ oper:'ge', text:"større eller lig"},{ oper:'bw', text:"begynder med"},{ oper:'bn', text:"begynder ikke med"},{ oper:'in', text:"findes i"},{ oper:'ni', text:"findes ikke i"},{ oper:'ew', text:"ender med"},{ oper:'en', text:"ender ikke med"},{ oper:'cn', text:"indeholder"},{ oper:'nc', text:"indeholder ikke"}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ odata: [{ oper:'eq', text:"lig"},{ oper:'ne', text:"forskellige fra"},{ oper:'lt', text:"mindre"},{ oper:'le', text:"mindre eller lig"},{ oper:'gt', text:"større"},{ oper:'ge', text:"større eller lig"},{ oper:'bw', text:"begynder med"},{ oper:'bn', text:"begynder ikke med"},{ oper:'in', text:"findes i"},{ oper:'ni', text:"findes ikke i"},{ oper:'ew', text:"ender med"},{ oper:'en', text:"ender ikke med"},{ oper:'cn', text:"indeholder"},{ oper:'nc', text:"indeholder ikke"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Tilføj",
@@ -101,7 +103,7 @@ $.extend($.jgrid,{
S: function (j) {return '.'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-de.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-de.js
index efa90e660a..442e37cd69 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-de.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-de.js
@@ -22,7 +22,7 @@ $.jgrid = $.jgrid || {};
$.extend($.jgrid,{
defaults : {
recordtext: "Zeige {0} - {1} von {2}",
- emptyrecords: "Keine Datensätze vorhanden",
+ emptyrecords: "Keine Datensätze vorhanden",
loadtext: "Lädt...",
pgtext : "Seite {0} von {1}"
},
@@ -30,8 +30,10 @@ $.extend($.jgrid,{
caption: "Suche...",
Find: "Suchen",
Reset: "Zurücksetzen",
- odata: [{ oper:'eq', text:"gleich"},{ oper:'ne', text:"ungleich"},{ oper:'lt', text:"kleiner"},{ oper:'le', text:"kleiner gleich"},{ oper:'gt', text:"größer"},{ oper:'ge', text:"größer gleich"},{ oper:'bw', text:"beginnt mit"},{ oper:'bn', text:"beginnt nicht mit"},{ oper:'in', text:"ist in"},{ oper:'ni', text:"ist nicht in"},{ oper:'ew', text:"endet mit"},{ oper:'en', text:"endet nicht mit"},{ oper:'cn', text:"enthält"},{ oper:'nc', text:"enthält nicht"}],
- groupOps: [ { op: "AND", text: "alle" }, { op: "OR", text: "mindestens eine" } ]
+ odata: [{ oper:'eq', text:"gleich"},{ oper:'ne', text:"ungleich"},{ oper:'lt', text:"kleiner"},{ oper:'le', text:"kleiner gleich"},{ oper:'gt', text:"größer"},{ oper:'ge', text:"größer gleich"},{ oper:'bw', text:"beginnt mit"},{ oper:'bn', text:"beginnt nicht mit"},{ oper:'in', text:"ist in"},{ oper:'ni', text:"ist nicht in"},{ oper:'ew', text:"endet mit"},{ oper:'en', text:"endet nicht mit"},{ oper:'cn', text:"enthält"},{ oper:'nc', text:"enthält nicht"}, { oper:'nu', text:"ist Null" }, { oper:'nn', text:"ist nicht Null" }],
+ groupOps: [{ op: "AND", text: "alle" },{ op: "OR", text: "mindestens eine" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Datensatz hinzufügen",
@@ -44,12 +46,12 @@ $.extend($.jgrid,{
bNo : "nein",
bExit : "abbrechen",
msg: {
- required:"Feld ist erforderlich",
- number: "Bitte geben Sie eine Zahl ein",
- minValue:"Wert muss größer oder gleich sein, als ",
- maxValue:"Wert muss kleiner oder gleich sein, als ",
- email: "ist keine gültige E-Mail-Adresse",
- integer: "Bitte geben Sie eine Ganzzahl ein",
+ required:"Feld ist erforderlich",
+ number: "Bitte geben Sie eine Zahl ein",
+ minValue:"Wert muss größer oder gleich sein, als ",
+ maxValue:"Wert muss kleiner oder gleich sein, als ",
+ email: "ist keine gültige E-Mail-Adresse",
+ integer: "Bitte geben Sie eine Ganzzahl ein",
date: "Bitte geben Sie ein gültiges Datum ein",
url: "ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')",
nodefined : " ist nicht definiert!",
@@ -59,8 +61,8 @@ $.extend($.jgrid,{
}
},
view : {
- caption: "Datensatz anzeigen",
- bClose: "Schließen"
+ caption: "Datensatz anzeigen",
+ bClose: "Schließen"
},
del : {
caption: "Löschen",
@@ -70,17 +72,17 @@ $.extend($.jgrid,{
},
nav : {
edittext: " ",
- edittitle: "Ausgewählte Zeile editieren",
+ edittitle: "Ausgewählte Zeile editieren",
addtext:" ",
- addtitle: "Neue Zeile einfügen",
- deltext: " ",
- deltitle: "Ausgewählte Zeile löschen",
- searchtext: " ",
- searchtitle: "Datensatz suchen",
- refreshtext: "",
- refreshtitle: "Tabelle neu laden",
- alertcap: "Warnung",
- alerttext: "Bitte Zeile auswählen",
+ addtitle: "Neue Zeile einfügen",
+ deltext: " ",
+ deltitle: "Ausgewählte Zeile löschen",
+ searchtext: " ",
+ searchtitle: "Datensatz suchen",
+ refreshtext: "",
+ refreshtitle: "Tabelle neu laden",
+ alertcap: "Warnung",
+ alerttext: "Bitte Zeile auswählen",
viewtext: "",
viewtitle: "Ausgewählte Zeile anzeigen"
},
@@ -109,27 +111,27 @@ $.extend($.jgrid,{
"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
],
AmPm : ["","","",""],
- S: function (j) {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before
+ S: function () {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before
srcformat: 'Y-m-d',
newformat: 'd.m.Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
// and see http://docs.jquery.com/UI/Datepicker/formatDate
// and https://github.com/jquery/globalize#dates for alternative formats used frequently
- ISO8601Long: "Y-m-d H:i:s",
- ISO8601Short: "Y-m-d",
+ ISO8601Long: "Y-m-d H:i:s",
+ ISO8601Short: "Y-m-d",
// short date:
// d - Day of the month, 2 digits with leading zeros
// m - Numeric representation of a month, with leading zeros
// Y - A full numeric representation of a year, 4 digits
- ShortDate: "d.m.Y", // in jQuery UI Datepicker: "dd.MM.yyyy"
+ ShortDate: "d.m.Y", // in jQuery UI Datepicker: "dd.MM.yyyy"
// long date:
// l - A full textual representation of the day of the week
// j - Day of the month without leading zeros
// F - A full textual representation of a month
// Y - A full numeric representation of a year, 4 digits
- LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy"
+ LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy"
// long date with long time:
// l - A full textual representation of the day of the week
// j - Day of the month without leading zeros
@@ -138,34 +140,34 @@ $.extend($.jgrid,{
// H - 24-hour format of an hour with leading zeros
// i - Minutes with leading zeros
// s - Seconds, with leading zeros
- FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss"
+ FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss"
// month day:
// d - Day of the month, 2 digits with leading zeros
// F - A full textual representation of a month
- MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM"
+ MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM"
// short time (without seconds)
// H - 24-hour format of an hour with leading zeros
// i - Minutes with leading zeros
- ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm"
+ ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm"
// long time (with seconds)
// H - 24-hour format of an hour with leading zeros
// i - Minutes with leading zeros
// s - Seconds, with leading zeros
- LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss"
- SortableDateTime: "Y-m-d\\TH:i:s",
- UniversalSortableDateTime: "Y-m-d H:i:sO",
+ LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss"
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
// month with year
// F - A full textual representation of a month
// Y - A full numeric representation of a year, 4 digits
- YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy"
- },
- reformatAfterEdit : false
+ YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy"
+ },
+ reformatAfterEdit : false
},
baseLinkUrl: '',
showAction: '',
- target: '',
- checkbox : {disabled:true},
+ target: '',
+ checkbox : {disabled:true},
idName : 'id'
}
});
-})(jQuery);
\ No newline at end of file
+})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-dk.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-dk.js
index d92bda5eca..05ac13923a 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-dk.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-dk.js
@@ -18,8 +18,10 @@ $.jgrid = {
caption: "Søg...",
Find: "Find",
Reset: "Nulstil",
- odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Tilføj",
@@ -100,7 +102,7 @@ $.jgrid = {
S: function (j) {return '.'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-el.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-el.js
index 6b19ad73b0..00baeeaf7f 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-el.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-el.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Αναζήτηση...",
Find: "Εύρεση",
Reset: "Επαναφορά",
- odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Εισαγωγή Εγγραφής",
@@ -100,7 +102,7 @@ $.extend($.jgrid,{
S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-en.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-en.js
index bf0fbe26c0..6929885ecf 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-en.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-en.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Search...",
Find: "Find",
Reset: "Reset",
- odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [{ op: "AND", text: "all" },{ op: "OR", text: "any" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Add Record",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
srcformat: 'Y-m-d',
newformat: 'n/j/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
// and see http://docs.jquery.com/UI/Datepicker/formatDate
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-es.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-es.js
index acd47872b5..96c935b4b3 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-es.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-es.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "Búsqueda...",
Find: "Buscar",
Reset: "Limpiar",
- odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"no igual a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor o igual que"},{ oper:'gt', text:"mayor que"},{ oper:'ge', text:"mayor o igual a"},{ oper:'bw', text:"empiece por"},{ oper:'bn', text:"no empiece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"no está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"no termina por"},{ oper:'cn', text:"contiene"},{ oper:'nc', text:"no contiene"}],
- groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "cualquier" } ]
+ odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"no igual a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor o igual que"},{ oper:'gt', text:"mayor que"},{ oper:'ge', text:"mayor o igual a"},{ oper:'bw', text:"empiece por"},{ oper:'bn', text:"no empiece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"no está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"no termina por"},{ oper:'cn', text:"contiene"},{ oper:'nc', text:"no contiene"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "cualquier" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Agregar registro",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd-m-Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fa.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fa.js
index 192d2babf5..fe6f669b0b 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fa.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fa.js
@@ -17,7 +17,7 @@
caption: "جستجو...",
Find: "يافته ها",
Reset: "از نو",
- odata: [{ oper:'eq', text:"برابر"},{ oper:'ne', text:"نا برابر"},{ oper:'lt', text:"به"},{ oper:'le', text:"کوچکتر"},{ oper:'gt', text:"از"},{ oper:'ge', text:"بزرگتر"},{ oper:'bw', text:"شروع با"},{ oper:'bn', text:"شروع نشود با"},{ oper:'in', text:"نباشد"},{ oper:'ni', text:"عضو این نباشد"},{ oper:'ew', text:"اتمام با"},{ oper:'en', text:"تمام نشود با"},{ oper:'cn', text:"حاوی"},{ oper:'nc', text:"نباشد حاوی"}],
+ odata: [{ oper:'eq', text:"برابر"},{ oper:'ne', text:"نا برابر"},{ oper:'lt', text:"به"},{ oper:'le', text:"کوچکتر"},{ oper:'gt', text:"از"},{ oper:'ge', text:"بزرگتر"},{ oper:'bw', text:"شروع با"},{ oper:'bn', text:"شروع نشود با"},{ oper:'in', text:"نباشد"},{ oper:'ni', text:"عضو این نباشد"},{ oper:'ew', text:"اتمام با"},{ oper:'en', text:"تمام نشود با"},{ oper:'cn', text:"حاوی"},{ oper:'nc', text:"نباشد حاوی"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
groupOps: [{
op: "AND",
text: "کل"
@@ -25,7 +25,9 @@
{
op: "OR",
text: "مجموع"
- }]
+ }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit: {
addCaption: "اضافه کردن رکورد",
@@ -117,7 +119,7 @@
},
srcformat: "Y-m-d",
newformat: "d/m/Y",
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks: {
ISO8601Long: "Y-m-d H:i:s",
ISO8601Short: "Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fi.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fi.js
index ab7c4c7e0c..a78ed9067c 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fi.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fi.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "Etsi...",
Find: "Etsi",
Reset: "Tyhjennä",
- odata: [{ oper:'eq', text:"on"},{ oper:'ne', text:"ei ole"},{ oper:'lt', text:"pienempi"},{ oper:'le', text:"pienempi tai yhtäsuuri"},{ oper:'gt', text:"suurempi"},{ oper:'ge', text:"suurempi tai yhtäsuuri"},{ oper:'bw', text:"alkaa"},{ oper:'bn', text:"ei ala"},{ oper:'in', text:"joukossa"},{ oper:'ni', text:"ei joukossa"},{ oper:'ew', text:"loppuu"},{ oper:'en', text:"ei lopu"},{ oper:'cn', text:"sisältää"},{ oper:'nc', text:"ei sisällä"},{ oper:'nu', text:"on tyhjä"},{ oper:'nn', text:"ei ole tyhjä"}],
- groupOps: [ { op: "AND", text: "kaikki" }, { op: "OR", text: "mikä tahansa" } ]
+ odata: [{ oper:'eq', text:"on"},{ oper:'ne', text:"ei ole"},{ oper:'lt', text:"pienempi"},{ oper:'le', text:"pienempi tai yhtäsuuri"},{ oper:'gt', text:"suurempi"},{ oper:'ge', text:"suurempi tai yhtäsuuri"},{ oper:'bw', text:"alkaa"},{ oper:'bn', text:"ei ala"},{ oper:'in', text:"joukossa"},{ oper:'ni', text:"ei joukossa"},{ oper:'ew', text:"loppuu"},{ oper:'en', text:"ei lopu"},{ oper:'cn', text:"sisältää"},{ oper:'nc', text:"ei sisällä"},{ oper:'nu', text:"on tyhjä"},{ oper:'nn', text:"ei ole tyhjä"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "kaikki" }, { op: "OR", text: "mikä tahansa" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit: {
addCaption: "Uusi rivi",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd.m.Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks: {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fr.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fr.js
index cff70480e7..7b8d9520b6 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fr.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-fr.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Recherche...",
Find: "Chercher",
Reset: "Réinitialiser",
- odata: [{ oper:'eq', text:"égal"},{ oper:'ne', text:"différent"},{ oper:'lt', text:"inférieur"},{ oper:'le', text:"inférieur ou égal"},{ oper:'gt', text:"supérieur"},{ oper:'ge', text:"supérieur ou égal"},{ oper:'bw', text:"commence par"},{ oper:'bn', text:"ne commence pas par"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"finit par"},{ oper:'en', text:"ne finit pas par"},{ oper:'cn', text:"contient"},{ oper:'nc', text:"ne contient pas"}],
- groupOps: [ { op: "AND", text: "tous" }, { op: "OR", text: "au moins un" } ]
+ odata: [{ oper:'eq', text:"égal"},{ oper:'ne', text:"différent"},{ oper:'lt', text:"inférieur"},{ oper:'le', text:"inférieur ou égal"},{ oper:'gt', text:"supérieur"},{ oper:'ge', text:"supérieur ou égal"},{ oper:'bw', text:"commence par"},{ oper:'bn', text:"ne commence pas par"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"finit par"},{ oper:'en', text:"ne finit pas par"},{ oper:'cn', text:"contient"},{ oper:'nc', text:"ne contient pas"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "tous" }, { op: "OR", text: "au moins un" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Ajouter",
@@ -100,7 +102,7 @@ $.extend($.jgrid,{
S: function (j) {return j == 1 ? 'er' : 'e';},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-gl.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-gl.js
index f44def9bf5..897f6cc0d1 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-gl.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-gl.js
@@ -18,8 +18,10 @@ $.extend($.jgrid,{
caption: "Búsqueda...",
Find: "Buscar",
Reset: "Limpar",
- odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"diferente a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor ou igual que"},{ oper:'gt', text:"maior que"},{ oper:'ge', text:"maior ou igual a"},{ oper:'bw', text:"empece por"},{ oper:'bn', text:"non empece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"non está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"non termina por"},{ oper:'cn', text:"contén"},{ oper:'nc', text:"non contén"}],
- groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "calquera" } ]
+ odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"diferente a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor ou igual que"},{ oper:'gt', text:"maior que"},{ oper:'ge', text:"maior ou igual a"},{ oper:'bw', text:"empece por"},{ oper:'bn', text:"non empece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"non está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"non termina por"},{ oper:'cn', text:"contén"},{ oper:'nc', text:"non contén"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "calquera" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Engadir rexistro",
@@ -100,7 +102,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd-m-Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-he.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-he.js
index dc862057af..faeab3bd73 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-he.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-he.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "מחפש...",
Find: "חפש",
Reset: "התחל",
- odata: [{ oper:'eq', text:"שווה"},{ oper:'ne', text:"לא שווה"},{ oper:'lt', text:"קטן"},{ oper:'le', text:"קטן או שווה"},{ oper:'gt', text:"גדול"},{ oper:'ge', text:"גדול או שווה"},{ oper:'bw', text:"מתחיל ב"},{ oper:'bn', text:"לא מתחיל ב"},{ oper:'in', text:"נמצא ב"},{ oper:'ni', text:"לא נמצא ב"},{ oper:'ew', text:"מסתיים ב"},{ oper:'en', text:"לא מסתיים ב"},{ oper:'cn', text:"מכיל"},{ oper:'nc', text:"לא מכיל"}],
- groupOps: [ { op: "AND", text: "הכל" }, { op: "OR", text: "אחד מ" } ]
+ odata: [{ oper:'eq', text:"שווה"},{ oper:'ne', text:"לא שווה"},{ oper:'lt', text:"קטן"},{ oper:'le', text:"קטן או שווה"},{ oper:'gt', text:"גדול"},{ oper:'ge', text:"גדול או שווה"},{ oper:'bw', text:"מתחיל ב"},{ oper:'bn', text:"לא מתחיל ב"},{ oper:'in', text:"נמצא ב"},{ oper:'ni', text:"לא נמצא ב"},{ oper:'ew', text:"מסתיים ב"},{ oper:'en', text:"לא מסתיים ב"},{ oper:'cn', text:"מכיל"},{ oper:'nc', text:"לא מכיל"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "הכל" }, { op: "OR", text: "אחד מ" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "הוסף רשומה",
@@ -101,7 +103,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr.js
index c8ac74315b..a827f0e89c 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "Traži...",
Find: "Pretraživanje",
Reset: "Poništi",
- odata: [{ oper:'eq', text:"jednak"},{ oper:'ne', text:"nije identičan"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili identično"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veše ili identično"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa "},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"}],
- groupOps: [ { op: "I", text: "sve" }, { op: "ILI", text: "bilo koji" } ]
+ odata: [{ oper:'eq', text:"jednak"},{ oper:'ne', text:"nije identičan"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili identično"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili identično"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa "},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "I", text: "sve" }, { op: "ILI", text: "bilo koji" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Dodaj zapis",
@@ -60,13 +62,13 @@ $.extend($.jgrid,{
bCancel: "Odustani"
},
nav : {
- edittext: " ",
+ edittext: "",
edittitle: "Promijeni obilježeni red",
- addtext:" ",
+ addtext: "",
addtitle: "Dodaj novi red",
- deltext: " ",
+ deltext: "",
deltitle: "Obriši obilježeni red",
- searchtext: " ",
+ searchtext: "",
searchtitle: "Potraži zapise",
refreshtext: "",
refreshtitle: "Ponovo preuzmi podatke",
@@ -89,21 +91,21 @@ $.extend($.jgrid,{
formatter : {
integer : {thousandsSeparator: ".", defaultValue: '0'},
number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
- currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" Kn", defaultValue: '0,00'},
+ currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
date : {
dayNames: [
"Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub",
"Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"
],
monthNames: [
- "Sij", "Vel", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro",
+ "Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro",
"Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"
],
AmPm : ["am","pm","AM","PM"],
S: function (j) {return ''},
srcformat: 'Y-m-d',
newformat: 'd.m.Y.',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
// and see http://docs.jquery.com/UI/Datepicker/formatDate
@@ -159,4 +161,4 @@ $.extend($.jgrid,{
idName : 'id'
}
});
-})(jQuery);
\ No newline at end of file
+})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr1250.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr1250.js
index b56baefab9..12574863fc 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr1250.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hr1250.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "Tra�i...",
Find: "Pretra�ivanje",
Reset: "Poni�ti",
- odata : [{ oper:'eq', text:'jednak'}, { oper:'ne', text:'nije identi�an'}, { oper:'lt', text:'manje'}, { oper:'le', text:'manje ili identi�no'},{ oper:'gt', text:'ve�e'},{ oper:'ge', text:'ve�e ili identi�no'}, { oper:'bw', text:'po�inje sa'},{ oper:'bn', text:'ne po�inje sa '},{ oper:'in', text:'je u'},{ oper:'ni', text:'nije u'},{ oper:'ew', text:'zavr�ava sa'},{ oper:'en', text:'ne zavr�ava sa'},{ oper:'cn', text:'sadr�i'},{ oper:'nc', text:'ne sadr�i'}],
- groupOps: [ { op: "I", text: "sve" }, { op: "ILI", text: "bilo koji" } ]
+ odata : [{ oper:'eq', text:'jednak'}, { oper:'ne', text:'nije identi�an'}, { oper:'lt', text:'manje'}, { oper:'le', text:'manje ili identi�no'},{ oper:'gt', text:'ve�e'},{ oper:'ge', text:'ve�e ili identi�no'}, { oper:'bw', text:'po�inje sa'},{ oper:'bn', text:'ne po�inje sa '},{ oper:'in', text:'je u'},{ oper:'ni', text:'nije u'},{ oper:'ew', text:'zavr�ava sa'},{ oper:'en', text:'ne zavr�ava sa'},{ oper:'cn', text:'sadr�i'},{ oper:'nc', text:'ne sadr�i'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "I", text: "sve" }, { op: "ILI", text: "bilo koji" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Dodaj zapis",
@@ -60,13 +62,13 @@ $.extend($.jgrid,{
bCancel: "Odustani"
},
nav : {
- edittext: " ",
+ edittext: "",
edittitle: "Promijeni obilje�eni red",
- addtext:" ",
+ addtext: "",
addtitle: "Dodaj novi red",
- deltext: " ",
+ deltext: "",
deltitle: "Obri�i obilje�eni red",
- searchtext: " ",
+ searchtext: "",
searchtitle: "Potra�i zapise",
refreshtext: "",
refreshtitle: "Ponovo preuzmi podatke",
@@ -89,21 +91,21 @@ $.extend($.jgrid,{
formatter : {
integer : {thousandsSeparator: ".", defaultValue: '0'},
number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
- currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" Kn", defaultValue: '0,00'},
+ currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
date : {
dayNames: [
"Ned", "Pon", "Uto", "Sri", "�et", "Pet", "Sub",
"Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "�etvrtak", "Petak", "Subota"
],
monthNames: [
- "Sij", "Vel", "O�u", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro",
+ "Sij", "Velj", "O�u", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro",
"Sije�anj", "Velja�a", "O�ujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"
],
AmPm : ["am","pm","AM","PM"],
S: function (j) {return ''},
srcformat: 'Y-m-d',
newformat: 'd.m.Y.',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
// and see http://docs.jquery.com/UI/Datepicker/formatDate
@@ -159,4 +161,4 @@ $.extend($.jgrid,{
idName : 'id'
}
});
-})(jQuery);
\ No newline at end of file
+})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hu.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hu.js
index a3eebe7f6a..7147866455 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hu.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-hu.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "Keresés...",
Find: "Keres",
Reset: "Alapértelmezett",
- odata: [{ oper:'eq', text:"egyenlő"},{ oper:'ne', text:"nem egyenlő"},{ oper:'lt', text:"kevesebb"},{ oper:'le', text:"kevesebb vagy egyenlő"},{ oper:'gt', text:"nagyobb"},{ oper:'ge', text:"nagyobb vagy egyenlő"},{ oper:'bw', text:"ezzel kezdődik"},{ oper:'bn', text:"nem ezzel kezdődik"},{ oper:'in', text:"tartalmaz"},{ oper:'ni', text:"nem tartalmaz"},{ oper:'ew', text:"végződik"},{ oper:'en', text:"nem végződik"},{ oper:'cn', text:"tartalmaz"},{ oper:'nc', text:"nem tartalmaz"}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ odata: [{ oper:'eq', text:"egyenlő"},{ oper:'ne', text:"nem egyenlő"},{ oper:'lt', text:"kevesebb"},{ oper:'le', text:"kevesebb vagy egyenlő"},{ oper:'gt', text:"nagyobb"},{ oper:'ge', text:"nagyobb vagy egyenlő"},{ oper:'bw', text:"ezzel kezdődik"},{ oper:'bn', text:"nem ezzel kezdődik"},{ oper:'in', text:"tartalmaz"},{ oper:'ni', text:"nem tartalmaz"},{ oper:'ew', text:"végződik"},{ oper:'en', text:"nem végződik"},{ oper:'cn', text:"tartalmaz"},{ oper:'nc', text:"nem tartalmaz"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Új tétel",
@@ -103,7 +105,7 @@ $.extend($.jgrid,{
S: function (j) {return '.-ik';},
srcformat: 'Y-m-d',
newformat: 'Y/m/d',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-id.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-id.js
new file mode 100644
index 0000000000..2ff1dd9623
--- /dev/null
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-id.js
@@ -0,0 +1,170 @@
+;(function($){
+/**
+ * jqGrid English Translation
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = $.jgrid || {};
+$.extend($.jgrid,{
+ defaults : {
+ recordtext: "Data {0} - {1} dari {2}",
+ emptyrecords: "Tidak ada data",
+ loadtext: "Memuat...",
+ pgtext : "Halaman {0} dari {1}"
+ },
+ search : {
+ caption: "Pencarian",
+ Find: "Cari !",
+ Reset: "Segarkan",
+ odata: [{ oper:'eq', text:"sama dengan"},{ oper:'ne', text:"tidak sama dengan"},{ oper:'lt', text:"kurang dari"},{ oper:'le', text:"kurang dari atau sama dengan"},{ oper:'gt', text:"lebih besar"},{ oper:'ge', text:"lebih besar atau sama dengan"},{ oper:'bw', text:"dimulai dengan"},{ oper:'bn', text:"tidak dimulai dengan"},{ oper:'in', text:"di dalam"},{ oper:'ni', text:"tidak di dalam"},{ oper:'ew', text:"diakhiri dengan"},{ oper:'en', text:"tidak diakhiri dengan"},{ oper:'cn', text:"mengandung"},{ oper:'nc', text:"tidak mengandung"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
+ },
+ edit : {
+ addCaption: "Tambah Data",
+ editCaption: "Sunting Data",
+ bSubmit: "Submit",
+ bCancel: "Tutup",
+ bClose: "Tutup",
+ saveData: "Data telah berubah! Simpan perubahan?",
+ bYes : "Ya",
+ bNo : "Tidak",
+ bExit : "Tutup",
+ msg: {
+ required:"kolom wajib diisi",
+ number:"hanya nomer yang diperbolehkan",
+ minValue:"kolom harus lebih besar dari atau sama dengan",
+ maxValue:"kolom harus lebih kecil atau sama dengan",
+ email: "alamat e-mail tidak valid",
+ integer: "hanya nilai integer yang diperbolehkan",
+ date: "nilai tanggal tidak valid",
+ url: "Bukan URL yang valid. Harap gunakan ('http://' or 'https://')",
+ nodefined : " belum didefinisikan!",
+ novalue : " return value is required!",
+ customarray : "Custom function should return array!",
+ customfcheck : "Custom function should be present in case of custom checking!"
+
+ }
+ },
+ view : {
+ caption: "Menampilkan data",
+ bClose: "Tutup"
+ },
+ del : {
+ caption: "Hapus",
+ msg: "Hapus data terpilih?",
+ bSubmit: "Hapus",
+ bCancel: "Batalkan"
+ },
+ nav : {
+ edittext: "",
+ edittitle: "Sunting data terpilih",
+ addtext:"",
+ addtitle: "Tambah baris baru",
+ deltext: "",
+ deltitle: "Hapus baris terpilih",
+ searchtext: "",
+ searchtitle: "Temukan data",
+ refreshtext: "",
+ refreshtitle: "Segarkan Grid",
+ alertcap: "Warning",
+ alerttext: "Harap pilih baris",
+ viewtext: "",
+ viewtitle: "Tampilkan baris terpilih"
+ },
+ col : {
+ caption: "Pilih Kolom",
+ bSubmit: "Ok",
+ bCancel: "Batal"
+ },
+ errors : {
+ errcap : "Error",
+ nourl : "Tidak ada url yang diset",
+ norecords: "Tidak ada data untuk diproses",
+ model : "Lebar dari colNames <> colModel!"
+ },
+ formatter : {
+ integer : {thousandsSeparator: ".", defaultValue: '0'},
+ number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0'},
+ currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "Rp. ", suffix:"", defaultValue: '0'},
+ date : {
+ dayNames: [
+ "Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab",
+ "Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"
+ ],
+ monthNames: [
+ "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des",
+ "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
+ ],
+ AmPm : ["am","pm","AM","PM"],
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
+ srcformat: 'Y-m-d',
+ newformat: 'n/j/Y',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
+ // and see http://docs.jquery.com/UI/Datepicker/formatDate
+ // and https://github.com/jquery/globalize#dates for alternative formats used frequently
+ // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
+ // information about date, time, numbers and currency formats used in different countries
+ // one should just convert the information in PHP format
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ // short date:
+ // n - Numeric representation of a month, without leading zeros
+ // j - Day of the month without leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // example: 3/1/2012 which means 1 March 2012
+ ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
+ // long date:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
+ // long date with long time:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
+ // month day:
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
+ // short time (without seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
+ // long time (with seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ // month with year
+ // Y - A full numeric representation of a year, 4 digits
+ // F - A full textual representation of a month
+ YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
+ },
+ reformatAfterEdit : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ }
+});
+})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-is.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-is.js
index aa8890b2c5..bf4d6b296a 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-is.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-is.js
@@ -18,8 +18,10 @@ $.extend($.jgrid,{
caption: "Leita...",
Find: "Leita",
Reset: "Endursetja",
- odata: [{ oper:'eq', text:"sama og"},{ oper:'ne', text:"ekki sama og"},{ oper:'lt', text:"minna en"},{ oper:'le', text:"minna eða jafnt og"},{ oper:'gt', text:"stærra en"},{ oper:'ge', text:"stærra eða jafnt og"},{ oper:'bw', text:"byrjar á"},{ oper:'bn', text:"byrjar ekki á"},{ oper:'in', text:"er í"},{ oper:'ni', text:"er ekki í"},{ oper:'ew', text:"endar á"},{ oper:'en', text:"endar ekki á"},{ oper:'cn', text:"inniheldur"},{ oper:'nc', text:"inniheldur ekki"}],
- groupOps: [ { op: "AND", text: "allt" }, { op: "OR", text: "eða" } ]
+ odata: [{ oper:'eq', text:"sama og"},{ oper:'ne', text:"ekki sama og"},{ oper:'lt', text:"minna en"},{ oper:'le', text:"minna eða jafnt og"},{ oper:'gt', text:"stærra en"},{ oper:'ge', text:"stærra eða jafnt og"},{ oper:'bw', text:"byrjar á"},{ oper:'bn', text:"byrjar ekki á"},{ oper:'in', text:"er í"},{ oper:'ni', text:"er ekki í"},{ oper:'ew', text:"endar á"},{ oper:'en', text:"endar ekki á"},{ oper:'cn', text:"inniheldur"},{ oper:'nc', text:"inniheldur ekki"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "allt" }, { op: "OR", text: "eða" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Bæta við færslu",
@@ -100,7 +102,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-it.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-it.js
index 53c92842cc..105968b850 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-it.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-it.js
@@ -1 +1 @@
-(function(a){a.jgrid = a.jgrid || {};a.extend(a.jgrid,{ defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci", odata: [{ oper:'eq', text:"uguale"},{ oper:'ne', text:"diverso"},{ oper:'lt', text:"minore"},{ oper:'le', text:"minore o uguale"},{ oper:'gt', text:"maggiore"},{ oper:'ge', text:"maggiore o uguale"},{ oper:'bw', text:"inizia con"},{ oper:'bn', text:"non inizia con"},{ oper:'in', text:"in"},{ oper:'ni', text:"non in"},{ oper:'ew', text:"termina con"},{ oper:'en', text:"non termina con"},{ oper:'cn', text:"contiene"},{ oper:'nc', text:"non contiene"}],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}]},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe : /[Tt\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}});})(jQuery);
\ No newline at end of file
+(function(a){a.jgrid = a.jgrid || {};a.extend(a.jgrid,{ defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci", odata: [{ oper:'eq', text:"uguale"},{ oper:'ne', text:"diverso"},{ oper:'lt', text:"minore"},{ oper:'le', text:"minore o uguale"},{ oper:'gt', text:"maggiore"},{ oper:'ge', text:"maggiore o uguale"},{ oper:'bw', text:"inizia con"},{ oper:'bn', text:"non inizia con"},{ oper:'in', text:"in"},{ oper:'ni', text:"non in"},{ oper:'ew', text:"termina con"},{ oper:'en', text:"non termina con"},{ oper:'cn', text:"contiene"},{ oper:'nc', text:"non contiene"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}], operandTitle : "Click to select search operation.",resetTitle : "Reset Search Value"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe : /[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}});})(jQuery);
\ No newline at end of file
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ja.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ja.js
index 72376fd4bf..0d801adb5f 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ja.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ja.js
@@ -25,7 +25,8 @@ $.extend($.jgrid,{
{ oper:'bw', text:"\u6B21\u3067\u59CB\u307E\u308B"}, { oper:'bn', text:"\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044"},
{ oper:'in', text:"\u6B21\u306B\u542B\u307E\u308C\u308B"}, { oper:'ni', text:"\u6B21\u306B\u542B\u307E\u308C\u306A\u3044"},
{ oper:'ew', text:"\u6B21\u3067\u7D42\u308F\u308B"}, { oper:'en', text:"\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044"},
- { oper:'cn', text:"\u6B21\u3092\u542B\u3080"}, { oper:'nc', text:"\u6B21\u3092\u542B\u307E\u306A\u3044"}],
+ { oper:'cn', text:"\u6B21\u3092\u542B\u3080"}, { oper:'nc', text:"\u6B21\u3092\u542B\u307E\u306A\u3044"},
+ { oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
groupOps: [{
op: "AND",
text: "\u3059\u3079\u3066\u306E"
@@ -33,7 +34,9 @@ $.extend($.jgrid,{
{
op: "OR",
text: "\u3044\u305A\u308C\u304B\u306E"
- }]
+ }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
@@ -129,7 +132,7 @@ $.extend($.jgrid,{
S: function (j) { return "\u756a\u76ee"; },
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-kr.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-kr.js
index c138ad3691..54c52ecd10 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-kr.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-kr.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "검색...",
Find: "찾기",
Reset: "초기화",
- odata: [{ oper:'eq', text:"같다"},{ oper:'ne', text:"같지 않다"},{ oper:'lt', text:"작다"},{ oper:'le', text:"작거나 같다"},{ oper:'gt', text:"크다"},{ oper:'ge', text:"크거나 같다"},{ oper:'bw', text:"로 시작한다"},{ oper:'bn', text:"로 시작하지 않는다"},{ oper:'in', text:"내에 있다"},{ oper:'ni', text:"내에 있지 않다"},{ oper:'ew', text:"로 끝난다"},{ oper:'en', text:"로 끝나지 않는다"},{ oper:'cn', text:"내에 존재한다"},{ oper:'nc', text:"내에 존재하지 않는다"}],
- groupOps: [ { op: "AND", text: "전부" }, { op: "OR", text: "임의" } ]
+ odata: [{ oper:'eq', text:"같다"},{ oper:'ne', text:"같지 않다"},{ oper:'lt', text:"작다"},{ oper:'le', text:"작거나 같다"},{ oper:'gt', text:"크다"},{ oper:'ge', text:"크거나 같다"},{ oper:'bw', text:"로 시작한다"},{ oper:'bn', text:"로 시작하지 않는다"},{ oper:'in', text:"내에 있다"},{ oper:'ni', text:"내에 있지 않다"},{ oper:'ew', text:"로 끝난다"},{ oper:'en', text:"로 끝나지 않는다"},{ oper:'cn', text:"내에 존재한다"},{ oper:'nc', text:"내에 존재하지 않는다"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "전부" }, { op: "OR", text: "임의" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "행 추가",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'm-d-Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-lt.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-lt.js
index 34d78d145f..651e230070 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-lt.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-lt.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Paieška...",
Find: "Ieškoti",
Reset: "Atstatyti",
- odata: [{ oper:'eq', text:"lygu"},{ oper:'ne', text:"nelygu"},{ oper:'lt', text:"mažiau"},{ oper:'le', text:"mažiau arba lygu"},{ oper:'gt', text:"daugiau"},{ oper:'ge', text:"daugiau arba lygu"},{ oper:'bw', text:"prasideda"},{ oper:'bn', text:"neprasideda"},{ oper:'in', text:"reikšmė yra"},{ oper:'ni', text:"reikšmės nėra"},{ oper:'ew', text:"baigiasi"},{ oper:'en', text:"nesibaigia"},{ oper:'cn', text:"yra sudarytas"},{ oper:'nc', text:"nėra sudarytas"}],
- groupOps: [ { op: "AND", text: "visi" }, { op: "OR", text: "bet kuris" } ]
+ odata: [{ oper:'eq', text:"lygu"},{ oper:'ne', text:"nelygu"},{ oper:'lt', text:"mažiau"},{ oper:'le', text:"mažiau arba lygu"},{ oper:'gt', text:"daugiau"},{ oper:'ge', text:"daugiau arba lygu"},{ oper:'bw', text:"prasideda"},{ oper:'bn', text:"neprasideda"},{ oper:'in', text:"reikšmė yra"},{ oper:'ni', text:"reikšmės nėra"},{ oper:'ew', text:"baigiasi"},{ oper:'en', text:"nesibaigia"},{ oper:'cn', text:"yra sudarytas"},{ oper:'nc', text:"nėra sudarytas"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "visi" }, { op: "OR", text: "bet kuris" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Sukurti įrašą",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-mne.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-mne.js
index e04bace197..bf663ca4db 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-mne.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-mne.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Traženje...",
Find: "Traži",
Reset: "Resetuj",
- odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"}],
- groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ]
+ odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Dodaj zapis",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-nl.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-nl.js
index f851a5bdca..46602e996f 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-nl.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-nl.js
@@ -13,8 +13,10 @@ a.extend(a.jgrid,{
caption: "Zoeken...",
Find: "Zoek",
Reset: "Herstellen",
- odata: [{ oper:'eq', text:"gelijk aan"},{ oper:'ne', text:"niet gelijk aan"},{ oper:'lt', text:"kleiner dan"},{ oper:'le', text:"kleiner dan of gelijk aan"},{ oper:'gt', text:"groter dan"},{ oper:'ge', text:"groter dan of gelijk aan"},{ oper:'bw', text:"begint met"},{ oper:'bn', text:"begint niet met"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is niet in"},{ oper:'ew', text:"eindigd met"},{ oper:'en', text:"eindigd niet met"},{ oper:'cn', text:"bevat"},{ oper:'nc', text:"bevat niet"}],
- groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}]
+ odata: [{ oper:'eq', text:"gelijk aan"},{ oper:'ne', text:"niet gelijk aan"},{ oper:'lt', text:"kleiner dan"},{ oper:'le', text:"kleiner dan of gelijk aan"},{ oper:'gt', text:"groter dan"},{ oper:'ge', text:"groter dan of gelijk aan"},{ oper:'bw', text:"begint met"},{ oper:'bn', text:"begint niet met"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is niet in"},{ oper:'ew', text:"eindigd met"},{ oper:'en', text:"eindigd niet met"},{ oper:'cn', text:"bevat"},{ oper:'nc', text:"bevat niet"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit:
{
@@ -118,7 +120,7 @@ a.extend(a.jgrid,{
},
srcformat: "Y-m-d",
newformat: "d/m/Y",
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks:
{
ISO8601Long: "Y-m-d H:i:s",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-no.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-no.js
index 3bb890cc2c..9f129ebdb2 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-no.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-no.js
@@ -1 +1 @@
-(function(a){a.jgrid= a.jgrid || {};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:[{oper:'eq', text:"lik"},{oper:'ne', text:"forskjellig fra"},{oper:'lt', text:"mindre enn"},{oper:'le', text:"mindre eller lik"},{oper:'gt', text:"st�rre enn"},{oper:'ge', text:" st�rre eller lik"},{oper:'bw', text:"starter med"},{oper:'ew', text:"slutter med"},{oper:'cn', text:"inneholder"}]};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaultValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",parseRe : /[Tt\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery);
+(function(a){a.jgrid= a.jgrid || {};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:[{oper:'eq', text:"lik"},{oper:'ne', text:"forskjellig fra"},{oper:'lt', text:"mindre enn"},{oper:'le', text:"mindre eller lik"},{oper:'gt', text:"st�rre enn"},{oper:'ge', text:" st�rre eller lik"},{oper:'bw', text:"starter med"},{oper:'ew', text:"slutter med"},{oper:'cn', text:"inneholder"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],operandTitle : "Click to select search operation.",resetTitle : "Reset Search Value"};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaultValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",parseRe : /[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pl.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pl.js
index ad6126e37a..e3dd924d6a 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pl.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pl.js
@@ -24,8 +24,10 @@ $.extend($.jgrid,{
caption: "Wyszukiwanie...",
Find: "Szukaj",
Reset: "Czyść",
- odata: [{ oper:'eq', text:"dokładnie"},{ oper:'ne', text:"różne od"},{ oper:'lt', text:"mniejsze od"},{ oper:'le', text:"mniejsze lub równe"},{ oper:'gt', text:"większe od"},{ oper:'ge', text:"większe lub równe"},{ oper:'bw', text:"zaczyna się od"},{ oper:'bn', text:"nie zaczyna się od"},{ oper:'in', text:"jest w"},{ oper:'ni', text:"nie jest w"},{ oper:'ew', text:"kończy się na"},{ oper:'en', text:"nie kończy się na"},{ oper:'cn', text:"zawiera"},{ oper:'nc', text:"nie zawiera"}],
- groupOps: [ { op: "AND", text: "oraz" }, { op: "OR", text: "lub" } ]
+ odata: [{ oper:'eq', text:"dokładnie"},{ oper:'ne', text:"różne od"},{ oper:'lt', text:"mniejsze od"},{ oper:'le', text:"mniejsze lub równe"},{ oper:'gt', text:"większe od"},{ oper:'ge', text:"większe lub równe"},{ oper:'bw', text:"zaczyna się od"},{ oper:'bn', text:"nie zaczyna się od"},{ oper:'in', text:"jest w"},{ oper:'ni', text:"nie jest w"},{ oper:'ew', text:"kończy się na"},{ oper:'en', text:"nie kończy się na"},{ oper:'cn', text:"zawiera"},{ oper:'nc', text:"nie zawiera"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "oraz" }, { op: "OR", text: "lub" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Dodaj rekord",
@@ -106,7 +108,7 @@ $.extend($.jgrid,{
S: function (j) {return '';},
srcformat: 'Y-m-d',
newformat: 'd.m.Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long: "Y-m-d H:i:s",
ISO8601Short: "Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt-br.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt-br.js
index b3f0de9869..86abb43a4d 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt-br.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt-br.js
@@ -6,6 +6,11 @@
*
* Updated by Jonnas Fonini
* http://fonini.net
+ *
+ *
+ * Updated by Fabio Ferreira da Silva fabio_ferreiradasilva@yahoo.com.br
+ *
+ *
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
@@ -23,7 +28,9 @@ $.extend($.jgrid,{
Find: "Procurar",
Reset: "Resetar",
odata: [{ oper:'eq', text:"igual"},{ oper:'ne', text:"diferente"},{ oper:'lt', text:"menor"},{ oper:'le', text:"menor ou igual"},{ oper:'gt', text:"maior"},{ oper:'ge', text:"maior ou igual"},{ oper:'bw', text:"inicia com"},{ oper:'bn', text:"não inicia com"},{ oper:'in', text:"está em"},{ oper:'ni', text:"não está em"},{ oper:'ew', text:"termina com"},{ oper:'en', text:"não termina com"},{ oper:'cn', text:"contém"},{ oper:'nc', text:"não contém"},{ oper:'nu', text:"nulo"},{ oper:'nn', text:"não nulo"}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ groupOps: [ { op: "AND", text: "todos" },{ op: "OR", text: "qualquer um" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Incluir",
@@ -104,7 +111,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt.js
index f9e0dcb9d4..742ebdbe07 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-pt.js
@@ -12,14 +12,16 @@ $.extend($.jgrid,{
recordtext: "View {0} - {1} of {2}",
emptyrecords: "No records to view",
loadtext: "A carregar...",
- pgtext : "Page {0} of {1}"
+ pgtext : "Página {0} de {1}"
},
search : {
caption: "Busca...",
Find: "Procurar",
Reset: "Limpar",
- odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'}],
- groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ]
+ odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Adicionar Registo",
@@ -99,7 +101,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ro.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ro.js
index 3d52f21c56..ea6de24666 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ro.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ro.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Caută...",
Find: "Caută",
Reset: "Resetare",
- odata: [{ oper:'eq', text:"egal"},{ oper:'ne', text:"diferit"},{ oper:'lt', text:"mai mic"},{ oper:'le', text:"mai mic sau egal"},{ oper:'gt', text:"mai mare"},{ oper:'ge', text:"mai mare sau egal"},{ oper:'bw', text:"începe cu"},{ oper:'bn', text:"nu începe cu"},{ oper:'in', text:"se găsește în"},{ oper:'ni', text:"nu se găsește în"},{ oper:'ew', text:"se termină cu"},{ oper:'en', text:"nu se termină cu"},{ oper:'cn', text:"conține"},{ oper:'nc', text:""}],
- groupOps: [ { op: "AND", text: "toate" }, { op: "OR", text: "oricare" } ]
+ odata: [{ oper:'eq', text:"egal"},{ oper:'ne', text:"diferit"},{ oper:'lt', text:"mai mic"},{ oper:'le', text:"mai mic sau egal"},{ oper:'gt', text:"mai mare"},{ oper:'ge', text:"mai mare sau egal"},{ oper:'bw', text:"începe cu"},{ oper:'bn', text:"nu începe cu"},{ oper:'in', text:"se găsește în"},{ oper:'ni', text:"nu se găsește în"},{ oper:'ew', text:"se termină cu"},{ oper:'en', text:"nu se termină cu"},{ oper:'cn', text:"conține"},{ oper:'nc', text:""},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "toate" }, { op: "OR", text: "oricare" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Adăugare înregistrare",
@@ -113,7 +115,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ru.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ru.js
index 93fea2534f..8809c198fb 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ru.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ru.js
@@ -11,78 +11,80 @@ $.jgrid = $.jgrid || {};
$.extend($.jgrid,{
defaults : {
recordtext: "Просмотр {0} - {1} из {2}",
- emptyrecords: "Нет записей для просмотра",
+ emptyrecords: "Нет записей для просмотра",
loadtext: "Загрузка...",
pgtext : "Стр. {0} из {1}"
},
search : {
- caption: "Поиск...",
- Find: "Найти",
- Reset: "Сброс",
- odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"не равно"},{ oper:'lt', text:"меньше"},{ oper:'le', text:"меньше или равно"},{ oper:'gt', text:"больше"},{ oper:'ge', text:"больше или равно"},{ oper:'bw', text:"начинается с"},{ oper:'bn', text:"не начинается с"},{ oper:'in', text:"находится в"},{ oper:'ni', text:"не находится в"},{ oper:'ew', text:"заканчивается на"},{ oper:'en', text:"не заканчивается на"},{ oper:'cn', text:"содержит"},{ oper:'nc', text:"не содержит"}],
- groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "любой" } ]
+ caption: "Поиск...",
+ Find: "Найти",
+ Reset: "Сброс",
+ odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"не равно"},{ oper:'lt', text:"меньше"},{ oper:'le', text:"меньше или равно"},{ oper:'gt', text:"больше"},{ oper:'ge', text:"больше или равно"},{ oper:'bw', text:"начинается с"},{ oper:'bn', text:"не начинается с"},{ oper:'in', text:"находится в"},{ oper:'ni', text:"не находится в"},{ oper:'ew', text:"заканчивается на"},{ oper:'en', text:"не заканчивается на"},{ oper:'cn', text:"содержит"},{ oper:'nc', text:"не содержит"},{ oper:'nu', text:"равно NULL"},{ oper:'nn', text:"не равно NULL"}],
+ groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "любой" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
- addCaption: "Добавить запись",
- editCaption: "Редактировать запись",
- bSubmit: "Сохранить",
- bCancel: "Отмена",
+ addCaption: "Добавить запись",
+ editCaption: "Редактировать запись",
+ bSubmit: "Сохранить",
+ bCancel: "Отмена",
bClose: "Закрыть",
saveData: "Данные были измененны! Сохранить изменения?",
bYes : "Да",
bNo : "Нет",
bExit : "Отмена",
- msg: {
- required:"Поле является обязательным",
- number:"Пожалуйста, введите правильное число",
- minValue:"значение должно быть больше либо равно",
- maxValue:"значение должно быть меньше либо равно",
- email: "некорректное значение e-mail",
- integer: "Пожалуйста, введите целое число",
- date: "Пожалуйста, введите правильную дату",
- url: "неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')",
- nodefined : " не определено!",
- novalue : " возвращаемое значение обязательно!",
- customarray : "Пользовательская функция должна возвращать массив!",
- customfcheck : "Пользовательская функция должна присутствовать в случаи пользовательской проверки!"
+ msg: {
+ required:"Поле является обязательным",
+ number:"Пожалуйста, введите правильное число",
+ minValue:"значение должно быть больше либо равно",
+ maxValue:"значение должно быть меньше либо равно",
+ email: "некорректное значение e-mail",
+ integer: "Пожалуйста, введите целое число",
+ date: "Пожалуйста, введите правильную дату",
+ url: "неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')",
+ nodefined : " не определено!",
+ novalue : " возвращаемое значение обязательно!",
+ customarray : "Пользовательская функция должна возвращать массив!",
+ customfcheck : "Пользовательская функция должна присутствовать в случаи пользовательской проверки!"
}
},
view : {
- caption: "Просмотр записи",
- bClose: "Закрыть"
+ caption: "Просмотр записи",
+ bClose: "Закрыть"
},
del : {
- caption: "Удалить",
- msg: "Удалить выбранную запись(и)?",
- bSubmit: "Удалить",
- bCancel: "Отмена"
+ caption: "Удалить",
+ msg: "Удалить выбранную запись(и)?",
+ bSubmit: "Удалить",
+ bCancel: "Отмена"
},
nav : {
- edittext: " ",
- edittitle: "Редактировать выбранную запись",
- addtext:" ",
- addtitle: "Добавить новую запись",
- deltext: " ",
- deltitle: "Удалить выбранную запись",
- searchtext: " ",
- searchtitle: "Найти записи",
- refreshtext: "",
- refreshtitle: "Обновить таблицу",
- alertcap: "Внимание",
- alerttext: "Пожалуйста, выберите запись",
- viewtext: "",
- viewtitle: "Просмотреть выбранную запись"
+ edittext: " ",
+ edittitle: "Редактировать выбранную запись",
+ addtext:" ",
+ addtitle: "Добавить новую запись",
+ deltext: " ",
+ deltitle: "Удалить выбранную запись",
+ searchtext: " ",
+ searchtitle: "Найти записи",
+ refreshtext: "",
+ refreshtitle: "Обновить таблицу",
+ alertcap: "Внимание",
+ alerttext: "Пожалуйста, выберите запись",
+ viewtext: "",
+ viewtitle: "Просмотреть выбранную запись"
},
col : {
- caption: "Показать/скрыть столбцы",
- bSubmit: "Сохранить",
- bCancel: "Отмена"
+ caption: "Показать/скрыть столбцы",
+ bSubmit: "Сохранить",
+ bCancel: "Отмена"
},
errors : {
errcap : "Ошибка",
nourl : "URL не установлен",
norecords: "Нет записей для обработки",
- model : "Число полей не соответствует числу столбцов таблицы!"
+ model : "Число полей не соответствует числу столбцов таблицы!"
},
formatter : {
integer : {thousandsSeparator: " ", defaultValue: '0'},
@@ -98,29 +100,29 @@ $.extend($.jgrid,{
"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
],
AmPm : ["am","pm","AM","PM"],
- S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
srcformat: 'Y-m-d',
newformat: 'd.m.Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
- ISO8601Long:"Y-m-d H:i:s",
- ISO8601Short:"Y-m-d",
- ShortDate: "n.j.Y",
- LongDate: "l, F d, Y",
- FullDateTime: "l, F d, Y G:i:s",
- MonthDay: "F d",
- ShortTime: "G:i",
- LongTime: "G:i:s",
- SortableDateTime: "Y-m-d\\TH:i:s",
- UniversalSortableDateTime: "Y-m-d H:i:sO",
- YearMonth: "F, Y"
- },
- reformatAfterEdit : false
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ ShortDate: "n.j.Y",
+ LongDate: "l, F d, Y",
+ FullDateTime: "l, F d, Y G:i:s",
+ MonthDay: "F d",
+ ShortTime: "G:i",
+ LongTime: "G:i:s",
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ YearMonth: "F, Y"
+ },
+ reformatAfterEdit : false
},
baseLinkUrl: '',
showAction: '',
- target: '',
- checkbox : {disabled:true},
+ target: '',
+ checkbox : {disabled:true},
idName : 'id'
}
});
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sk.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sk.js
index 1405901d0c..9c044aa103 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sk.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sk.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Vyhľadávam...",
Find: "Hľadať",
Reset: "Reset",
- odata: [{ oper:'eq', text:"rovná sa"},{ oper:'ne', text:"nerovná sa"},{ oper:'lt', text:"menšie"},{ oper:'le', text:"menšie alebo rovnajúce sa"},{ oper:'gt', text:"väčšie"},{ oper:'ge', text:"väčšie alebo rovnajúce sa"},{ oper:'bw', text:"začína s"},{ oper:'bn', text:"nezačína s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"nie je v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obahuje"},{ oper:'nc', text:"neobsahuje"}],
- groupOps: [ { op: "AND", text: "všetkých" }, { op: "OR", text: "niektorého z" } ]
+ odata: [{ oper:'eq', text:"rovná sa"},{ oper:'ne', text:"nerovná sa"},{ oper:'lt', text:"menšie"},{ oper:'le', text:"menšie alebo rovnajúce sa"},{ oper:'gt', text:"väčšie"},{ oper:'ge', text:"väčšie alebo rovnajúce sa"},{ oper:'bw', text:"začína s"},{ oper:'bn', text:"nezačína s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"nie je v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obahuje"},{ oper:'nc', text:"neobsahuje"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "všetkých" }, { op: "OR", text: "niektorého z" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Pridať záznam",
@@ -101,7 +103,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr-latin.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr-latin.js
index 5e1e4e27c3..075c1b796b 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr-latin.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr-latin.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Traženje...",
Find: "Traži",
Reset: "Resetuj",
- odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"}],
- groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ]
+ odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Dodaj zapis",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr.js
index 741fe300b9..4e2f4701fc 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sr.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Тражење...",
Find: "Тражи",
Reset: "Ресетуј",
- odata: [{ oper:'eq', text:"једнако"},{ oper:'ne', text:"није једнако"},{ oper:'lt', text:"мање"},{ oper:'le', text:"мање или једнако"},{ oper:'gt', text:"веће"},{ oper:'ge', text:"веће или једнако"},{ oper:'bw', text:"почиње са"},{ oper:'bn', text:"не почиње са"},{ oper:'in', text:"је у"},{ oper:'ni', text:"није у"},{ oper:'ew', text:"завршава са"},{ oper:'en', text:"не завршава са"},{ oper:'cn', text:"садржи"},{ oper:'nc', text:"не садржи"}],
- groupOps: [ { op: "И", text: "сви" }, { op: "ИЛИ", text: "сваки" } ]
+ odata: [{ oper:'eq', text:"једнако"},{ oper:'ne', text:"није једнако"},{ oper:'lt', text:"мање"},{ oper:'le', text:"мање или једнако"},{ oper:'gt', text:"веће"},{ oper:'ge', text:"веће или једнако"},{ oper:'bw', text:"почиње са"},{ oper:'bn', text:"не почиње са"},{ oper:'in', text:"је у"},{ oper:'ni', text:"није у"},{ oper:'ew', text:"завршава са"},{ oper:'en', text:"не завршава са"},{ oper:'cn', text:"садржи"},{ oper:'nc', text:"не садржи"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "И", text: "сви" }, { op: "ИЛИ", text: "сваки" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Додај запис",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sv.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sv.js
index 2091536856..d47220df66 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sv.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-sv.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Sök Poster - Ange sökvillkor",
Find: "Sök",
Reset: "Nollställ Villkor",
- odata: [{ oper:'eq', text:"lika"},{ oper:'ne', text:"ej lika"},{ oper:'lt', text:"mindre"},{ oper:'le', text:"mindre eller lika"},{ oper:'gt', text:"större"},{ oper:'ge', text:"större eller lika"},{ oper:'bw', text:"börjar med"},{ oper:'bn', text:"börjar inte med"},{ oper:'in', text:"tillhör"},{ oper:'ni', text:"tillhör inte"},{ oper:'ew', text:"slutar med"},{ oper:'en', text:"slutar inte med"},{ oper:'cn', text:"innehåller"},{ oper:'nc', text:"innehåller inte"}],
- groupOps: [ { op: "AND", text: "alla" }, { op: "OR", text: "eller" } ]
+ odata: [{ oper:'eq', text:"lika"},{ oper:'ne', text:"ej lika"},{ oper:'lt', text:"mindre"},{ oper:'le', text:"mindre eller lika"},{ oper:'gt', text:"större"},{ oper:'ge', text:"större eller lika"},{ oper:'bw', text:"börjar med"},{ oper:'bn', text:"börjar inte med"},{ oper:'in', text:"tillhör"},{ oper:'ni', text:"tillhör inte"},{ oper:'ew', text:"slutar med"},{ oper:'en', text:"slutar inte med"},{ oper:'cn', text:"innehåller"},{ oper:'nc', text:"innehåller inte"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "alla" }, { op: "OR", text: "eller" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Ny Post",
@@ -101,7 +103,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'Y-m-d',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-th.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-th.js
index daae8c2bb8..ab81d1f319 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-th.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-th.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "กำลังค้นหา...",
Find: "ค้นหา",
Reset: "คืนค่ากลับ",
- odata: [{ oper:'eq', text:"เท่ากับ"},{ oper:'ne', text:"ไม่เท่ากับ"},{ oper:'lt', text:"น้อยกว่า"},{ oper:'le', text:"ไม่มากกว่า"},{ oper:'gt', text:"มากกกว่า"},{ oper:'ge', text:"ไม่น้อยกว่า"},{ oper:'bw', text:"ขึ้นต้นด้วย"},{ oper:'bn', text:"ไม่ขึ้นต้นด้วย"},{ oper:'in', text:"มีคำใดคำหนึ่งใน"},{ oper:'ni', text:"ไม่มีคำใดคำหนึ่งใน"},{ oper:'ew', text:"ลงท้ายด้วย"},{ oper:'en', text:"ไม่ลงท้ายด้วย"},{ oper:'cn', text:"มีคำว่า"},{ oper:'nc', text:"ไม่มีคำว่า"}],
- groupOps: [ { op: "และ", text: "ทั้งหมด" }, { op: "หรือ", text: "ใดๆ" } ]
+ odata: [{ oper:'eq', text:"เท่ากับ"},{ oper:'ne', text:"ไม่เท่ากับ"},{ oper:'lt', text:"น้อยกว่า"},{ oper:'le', text:"ไม่มากกว่า"},{ oper:'gt', text:"มากกกว่า"},{ oper:'ge', text:"ไม่น้อยกว่า"},{ oper:'bw', text:"ขึ้นต้นด้วย"},{ oper:'bn', text:"ไม่ขึ้นต้นด้วย"},{ oper:'in', text:"มีคำใดคำหนึ่งใน"},{ oper:'ni', text:"ไม่มีคำใดคำหนึ่งใน"},{ oper:'ew', text:"ลงท้ายด้วย"},{ oper:'en', text:"ไม่ลงท้ายด้วย"},{ oper:'cn', text:"มีคำว่า"},{ oper:'nc', text:"ไม่มีคำว่า"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "และ", text: "ทั้งหมด" }, { op: "หรือ", text: "ใดๆ" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "เพิ่มข้อมูล",
@@ -102,7 +104,7 @@ $.extend($.jgrid,{
S: function (j) {return ''},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tr.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tr.js
index f1013e23a4..57b8048b43 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tr.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tr.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Arama...",
Find: "Bul",
Reset: "Temizle",
- odata: [{ oper:'eq', text:"eşit"},{ oper:'ne', text:"eşit değil"},{ oper:'lt', text:"daha az"},{ oper:'le', text:"daha az veya eşit"},{ oper:'gt', text:"daha fazla"},{ oper:'ge', text:"daha fazla veya eşit"},{ oper:'bw', text:"ile başlayan"},{ oper:'bn', text:"ile başlamayan"},{ oper:'in', text:"içinde"},{ oper:'ni', text:"içinde değil"},{ oper:'ew', text:"ile biten"},{ oper:'en', text:"ile bitmeyen"},{ oper:'cn', text:"içeren"},{ oper:'nc', text:"içermeyen"}],
- groupOps: [ { op: "VE", text: "tüm" }, { op: "VEYA", text: "herhangi" } ]
+ odata: [{ oper:'eq', text:"eşit"},{ oper:'ne', text:"eşit değil"},{ oper:'lt', text:"daha az"},{ oper:'le', text:"daha az veya eşit"},{ oper:'gt', text:"daha fazla"},{ oper:'ge', text:"daha fazla veya eşit"},{ oper:'bw', text:"ile başlayan"},{ oper:'bn', text:"ile başlamayan"},{ oper:'in', text:"içinde"},{ oper:'ni', text:"içinde değil"},{ oper:'ew', text:"ile biten"},{ oper:'en', text:"ile bitmeyen"},{ oper:'cn', text:"içeren"},{ oper:'nc', text:"içermeyen"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "VE", text: "tüm" }, { op: "VEYA", text: "herhangi" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Kayıt Ekle",
@@ -100,7 +102,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd/m/Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tw.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tw.js
index 1e6581cf16..87d33ba0fd 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tw.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-tw.js
@@ -20,8 +20,10 @@ $.extend($.jgrid,{
caption: "搜尋...",
Find: "搜尋",
Reset: "重設",
- odata: [{ oper:'eq', text:"等於 "},{ oper:'ne', text:"不等於 "},{ oper:'lt', text:"小於 "},{ oper:'le', text:"小於等於 "},{ oper:'gt', text:"大於 "},{ oper:'ge', text:"大於等於 "},{ oper:'bw', text:"開始於 "},{ oper:'bn', text:"不開始於 "},{ oper:'in', text:"在其中 "},{ oper:'ni', text:"不在其中 "},{ oper:'ew', text:"結束於 "},{ oper:'en', text:"不結束於 "},{ oper:'cn', text:"包含 "},{ oper:'nc', text:"不包含 "}],
- groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ]
+ odata: [{ oper:'eq', text:"等於 "},{ oper:'ne', text:"不等於 "},{ oper:'lt', text:"小於 "},{ oper:'le', text:"小於等於 "},{ oper:'gt', text:"大於 "},{ oper:'ge', text:"大於等於 "},{ oper:'bw', text:"開始於 "},{ oper:'bn', text:"不開始於 "},{ oper:'in', text:"在其中 "},{ oper:'ni', text:"不在其中 "},{ oper:'ew', text:"結束於 "},{ oper:'en', text:"不結束於 "},{ oper:'cn', text:"包含 "},{ oper:'nc', text:"不包含 "},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "新增記錄",
@@ -100,10 +102,10 @@ $.extend($.jgrid,{
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
],
AmPm : ["上午","下午","上午","下午"],
- S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
srcformat: 'Y-m-d',
newformat: 'm-d-Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ua.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ua.js
index 42fb4000ab..4ff495df11 100644
--- a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ua.js
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-ua.js
@@ -19,8 +19,10 @@ $.extend($.jgrid,{
caption: "Пошук...",
Find: "Знайти",
Reset: "Скидання",
- odata: [{ oper:'eq', text:"рівно"},{ oper:'ne', text:"не рівно"},{ oper:'lt', text:"менше"},{ oper:'le', text:"менше або рівне"},{ oper:'gt', text:"більше"},{ oper:'ge', text:"більше або рівне"},{ oper:'bw', text:"починається з"},{ oper:'bn', text:"не починається з"},{ oper:'in', text:"знаходиться в"},{ oper:'ni', text:"не знаходиться в"},{ oper:'ew', text:"закінчується на"},{ oper:'en', text:"не закінчується на"},{ oper:'cn', text:"містить"},{ oper:'nc', text:"не містить"}],
- groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "будь-який" } ]
+ odata: [{ oper:'eq', text:"рівно"},{ oper:'ne', text:"не рівно"},{ oper:'lt', text:"менше"},{ oper:'le', text:"менше або рівне"},{ oper:'gt', text:"більше"},{ oper:'ge', text:"більше або рівне"},{ oper:'bw', text:"починається з"},{ oper:'bn', text:"не починається з"},{ oper:'in', text:"знаходиться в"},{ oper:'ni', text:"не знаходиться в"},{ oper:'ew', text:"закінчується на"},{ oper:'en', text:"не закінчується на"},{ oper:'cn', text:"містить"},{ oper:'nc', text:"не містить"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "будь-який" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
},
edit : {
addCaption: "Додати запис",
@@ -101,7 +103,7 @@ $.extend($.jgrid,{
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
srcformat: 'Y-m-d',
newformat: 'd.m.Y',
- parseRe : /[Tt\\\/:_;.,\t\s-]/,
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
masks : {
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
diff --git a/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-vi.js b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-vi.js
new file mode 100644
index 0000000000..741c64db48
--- /dev/null
+++ b/web/ChamiloLMS/js/jqgrid/js/i18n/grid.locale-vi.js
@@ -0,0 +1,170 @@
+;(function($){
+/**
+ * jqGrid Vietnamese Translation
+ * Lê Đình Dũng dungtdc@gmail.com
+ * http://trirand.com/blog/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = $.jgrid || {};
+$.extend($.jgrid,{
+ defaults : {
+ recordtext: "View {0} - {1} of {2}",
+ emptyrecords: "Không có dữ liệu",
+ loadtext: "Đang nạp dữ liệu...",
+ pgtext : "Trang {0} trong tổng số {1}"
+ },
+ search : {
+ caption: "Tìm kiếm...",
+ Find: "Tìm",
+ Reset: "Khởi tạo lại",
+ odata: [{ oper:'eq', text:"bằng"},{ oper:'ne', text:"không bằng"},{ oper:'lt', text:"bé hơn"},{ oper:'le', text:"bé hơn hoặc bằng"},{ oper:'gt', text:"lớn hơn"},{ oper:'ge', text:"lớn hơn hoặc bằng"},{ oper:'bw', text:"bắt đầu với"},{ oper:'bn', text:"không bắt đầu với"},{ oper:'in', text:"trong"},{ oper:'ni', text:"không nằm trong"},{ oper:'ew', text:"kết thúc với"},{ oper:'en', text:"không kết thúc với"},{ oper:'cn', text:"chứa"},{ oper:'nc', text:"không chứa"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}],
+ groupOps: [ { op: "VÀ", text: "tất cả" }, { op: "HOẶC", text: "bất kỳ" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value"
+ },
+ edit : {
+ addCaption: "Thêm bản ghi",
+ editCaption: "Sửa bản ghi",
+ bSubmit: "Gửi",
+ bCancel: "Hủy bỏ",
+ bClose: "Đóng",
+ saveData: "Dữ liệu đã thay đổi! Có lưu thay đổi không?",
+ bYes : "Có",
+ bNo : "Không",
+ bExit : "Hủy bỏ",
+ msg: {
+ required:"Trường dữ liệu bắt buộc có",
+ number:"Hãy điền đúng số",
+ minValue:"giá trị phải lớn hơn hoặc bằng với ",
+ maxValue:"giá trị phải bé hơn hoặc bằng",
+ email: "không phải là một email đúng",
+ integer: "Hãy điền đúng số nguyên",
+ date: "Hãy điền đúng ngày tháng",
+ url: "không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')",
+ nodefined : " chưa được định nghĩa!",
+ novalue : " giá trị trả về bắt buộc phải có!",
+ customarray : "Hàm nên trả về một mảng!",
+ customfcheck : "Custom function should be present in case of custom checking!"
+
+ }
+ },
+ view : {
+ caption: "Xem bản ghi",
+ bClose: "Đóng"
+ },
+ del : {
+ caption: "Xóa",
+ msg: "Xóa bản ghi đã chọn?",
+ bSubmit: "Xóa",
+ bCancel: "Hủy bỏ"
+ },
+ nav : {
+ edittext: "",
+ edittitle: "Sửa dòng đã chọn",
+ addtext:"",
+ addtitle: "Thêm mới 1 dòng",
+ deltext: "",
+ deltitle: "Xóa dòng đã chọn",
+ searchtext: "",
+ searchtitle: "Tìm bản ghi",
+ refreshtext: "",
+ refreshtitle: "Nạp lại lưới",
+ alertcap: "Cảnh báo",
+ alerttext: "Hãy chọn một dòng",
+ viewtext: "",
+ viewtitle: "Xem dòng đã chọn"
+ },
+ col : {
+ caption: "Chọn cột",
+ bSubmit: "OK",
+ bCancel: "Hủy bỏ"
+ },
+ errors : {
+ errcap : "Lỗi",
+ nourl : "không url được đặt",
+ norecords: "Không có bản ghi để xử lý",
+ model : "Chiều dài của colNames <> colModel!"
+ },
+ formatter : {
+ integer : {thousandsSeparator: ".", defaultValue: '0'},
+ number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0'},
+ currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0'},
+ date : {
+ dayNames: [
+ "CN", "T2", "T3", "T4", "T5", "T6", "T7",
+ "Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"
+ ],
+ monthNames: [
+ "Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12",
+ "Tháng một", "Tháng hai", "Tháng ba", "Tháng tư", "Tháng năm", "Tháng sáu", "Tháng bảy", "Tháng tám", "Tháng chín", "Tháng mười", "Tháng mười một", "Tháng mười hai"
+ ],
+ AmPm : ["sáng","chiều","SÁNG","CHIỀU"],
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
+ srcformat: 'Y-m-d',
+ newformat: 'n/j/Y',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
+ // and see http://docs.jquery.com/UI/Datepicker/formatDate
+ // and https://github.com/jquery/globalize#dates for alternative formats used frequently
+ // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
+ // information about date, time, numbers and currency formats used in different countries
+ // one should just convert the information in PHP format
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ // short date:
+ // n - Numeric representation of a month, without leading zeros
+ // j - Day of the month without leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // example: 3/1/2012 which means 1 March 2012
+ ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
+ // long date:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
+ // long date with long time:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
+ // month day:
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
+ // short time (without seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
+ // long time (with seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ // month with year
+ // Y - A full numeric representation of a year, 4 digits
+ // F - A full textual representation of a month
+ YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
+ },
+ reformatAfterEdit : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ }
+});
+})(jQuery);
diff --git a/web/ChamiloLMS/js/jqgrid/js/install.txt b/web/ChamiloLMS/js/jqgrid/js/install.txt
new file mode 100644
index 0000000000..5407b35b2c
--- /dev/null
+++ b/web/ChamiloLMS/js/jqgrid/js/install.txt
@@ -0,0 +1,43 @@
+Installation
+
+Download the jqGrid package from the www.trirand/blog site section downloads.
+Note the new download manager where you can choose which modules you want to
+include in the download.
+
+In order to use jqGrid 3.5, first a UI theme css file should be loaded.
+Download the desired theme (or build a custom one) from jQueryUI site
+(www.jqueryui.com) and point in your link tag in head section the path to the
+theme css
+
+
+
+where the path_to_ui_css_file is a valid path to the ui theme file
+
+Extract the jqGrid package and copy the ui.jqgrid.css from css directory to
+your webserver directory. It is not necessary that the jqgrid css file is in
+the same directory as those of the jquery ui css.
+
+
+
+Starting with this version, jqGrid does not use a loader (which loads the
+needed files one by one), but all the needed code is contained in one file.
+The desired modules can be built using the jqGrid download manager from the
+site pointed above. In order to use this, first a language file should be
+loaded and then the jqgrid file.
+
+Copy the desired language file from js/i18n directory to your web server
+directory where you store the java script files. Every language file is
+named grid.locale-XX.js, where XX is a two-letter code for the language.
+Copy the jquery.jqGid.min.js file to the same or other valid directory in
+your web server
+
+Include both the files in script tags in the head section
+
+
+
+
+For debugging purposes, I have created a grid.loader.js which does the same
+loading of the files as in previous versions. The location of the file is in
+src directory of the package. In order to use this, the variable pathojsfiles
+should be adjusted to point to the appropriate folder - see 3.4.x docs.
+
diff --git a/web/ChamiloLMS/js/jqgrid/js/jquery-1.11.0.min.js b/web/ChamiloLMS/js/jqgrid/js/jquery-1.11.0.min.js
new file mode 100644
index 0000000000..73f33fb3aa
--- /dev/null
+++ b/web/ChamiloLMS/js/jqgrid/js/jquery-1.11.0.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
";"first"===c.position?0===e.rows[0].cells.length?a("tr",e).append(h):a("tr td:eq(0)",e).before(h):a("tr",e).append(h)}}})},GridToForm:function(b,c){return this.each(function(){var e=
+this,h;if(e.grid){var w=a(e).jqGrid("getRowData",b);if(w)for(h in w)w.hasOwnProperty(h)&&(a("[name="+a.jgrid.jqID(h)+"]",c).is("input:radio")||a("[name="+a.jgrid.jqID(h)+"]",c).is("input:checkbox")?a("[name="+a.jgrid.jqID(h)+"]",c).each(function(){if(a(this).val()==w[h])a(this)[e.p.useProp?"prop":"attr"]("checked",!0);else a(this)[e.p.useProp?"prop":"attr"]("checked",!1)}):a("[name="+a.jgrid.jqID(h)+"]",c).val(w[h]))}})},FormToGrid:function(b,c,e,h){return this.each(function(){if(this.grid){e||(e=
+"set");h||(h="first");var w=a(c).serializeArray(),t={};a.each(w,function(a,b){t[b.name]=b.value});"add"===e?a(this).jqGrid("addRowData",b,t,h):"set"===e&&a(this).jqGrid("setRowData",b,t)}})}})})(jQuery);
+(function(a){a.fn.jqFilter=function(d){if("string"===typeof d){var q=a.fn.jqFilter[d];if(!q)throw"jqFilter - No such method: "+d;var x=a.makeArray(arguments).slice(1);return q.apply(this,x)}var n=a.extend(!0,{filter:null,columns:[],onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[],operands:null,numopts:"eq ne lt le gt ge nu nn in ni".split(" "),stropts:"eq ne bw bn ew en cn nc nu nn in ni".split(" "),strarr:["text","string","blob"],groupOps:[{op:"AND",
+text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,direction:"ltr"},a.jgrid.filter,d||{});return this.each(function(){if(!this.filter){this.p=n;if(null===this.p.filter||void 0===this.p.filter)this.p.filter={groupOp:this.p.groupOps[0].op,rules:[],groups:[]};var d,q=this.p.columns.length,f,w=/msie/i.test(navigator.userAgent)&&!window.opera;this.p.initFilter=a.extend(!0,{},this.p.filter);if(q){for(d=0;d
', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto");
+ } else {
+ $firstHeaderRow.empty();
+ }
+ var $firstRow,
+ inColumnHeader = function (text, columnHeaders) {
+ var length = columnHeaders.length, i;
+ for (i = 0; i < length; i++) {
+ if (columnHeaders[i].startColumnName === text) {
+ return i;
+ }
+ }
+ return -1;
+ };
+
+ $(ts).prepend($thead);
+ $tr = $('
', {role: "rowheader"}).addClass("ui-jqgrid-labels jqg-third-row-header");
+ for (i = 0; i < cml; i++) {
+ th = ths[i].el;
+ $th = $(th);
+ cmi = colModel[i];
+ // build the next cell for the first header row
+ thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};
+ $("
", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction).appendTo($firstHeaderRow);
+
+ th.style.width = ""; // remove unneeded style
+ iCol = inColumnHeader(cmi.name, o.groupHeaders);
+ if (iCol >= 0) {
+ cghi = o.groupHeaders[iCol];
+ numberOfColumns = cghi.numberOfColumns;
+ titleText = cghi.titleText;
+
+ // caclulate the number of visible columns from the next numberOfColumns columns
+ for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {
+ if (!colModel[i + iCol].hidden) {
+ cVisibleColumns++;
+ }
+ }
+
+ // The next numberOfColumns headers will be moved in the next row
+ // in the current row will be placed the new column header with the titleText.
+ // The text will be over the cVisibleColumns columns
+ $colHeader = $('
').attr({role: "columnheader"})
+ .addClass("ui-state-default ui-th-column-header ui-th-"+ts.p.direction)
+ .css({'height':'22px', 'border-top': '0 none'})
+ .html(titleText);
+ if(cVisibleColumns > 0) {
+ $colHeader.attr("colspan", String(cVisibleColumns));
+ }
+ if (ts.p.headertitles) {
+ $colHeader.attr("title", $colHeader.text());
+ }
+ // hide if not a visible cols
+ if( cVisibleColumns === 0) {
+ $colHeader.hide();
+ }
+
+ $th.before($colHeader); // insert new column header before the current
+ $tr.append(th); // move the current header in the next row
+
+ // set the coumter of headers which will be moved in the next row
+ skip = numberOfColumns - 1;
+ } else {
+ if (skip === 0) {
+ if (o.useColSpanStyle) {
+ // expand the header height to two rows
+ $th.attr("rowspan", "2");
+ } else {
+ $('
', {role: "columnheader"})
+ .addClass("ui-state-default ui-th-column-header ui-th-"+ts.p.direction)
+ .css({"display": cmi.hidden ? 'none' : '', 'border-top': '0 none'})
+ .insertBefore($th);
+ $tr.append(th);
+ }
+ } else {
+ // move the header to the next row
+ //$th.css({"padding-top": "2px", height: "19px"});
+ $tr.append(th);
+ skip--;
+ }
+ }
+ }
+ $theadInTable = $(ts).children("thead");
+ $theadInTable.prepend($firstHeaderRow);
+ $tr.insertAfter($trLabels);
+ $htable.append($theadInTable);
+
+ if (o.useColSpanStyle) {
+ // Increase the height of resizing span of visible headers
+ $htable.find("span.ui-jqgrid-resize").each(function () {
+ var $parent = $(this).parent();
+ if ($parent.is(":visible")) {
+ this.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';
+ }
+ });
+
+ // Set position of the sortable div (the main lable)
+ // with the column header text to the middle of the cell.
+ // One should not do this for hidden headers.
+ $htable.find("div.ui-jqgrid-sortable").each(function () {
+ var $ts = $(this), $parent = $ts.parent();
+ if ($parent.is(":visible") && $parent.is(":has(span.ui-jqgrid-resize)")) {
+ $ts.css('top', ($parent.height() - $ts.outerHeight()) / 2 + 'px');
+ }
+ });
+ }
+
+ $firstRow = $theadInTable.find("tr.jqg-first-row-header");
+ $(ts).bind('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {
+ $firstRow.find('th').eq(idx).width(nw);
+ });
+ });
+ },
+ setFrozenColumns : function () {
+ return this.each(function() {
+ if ( !this.grid ) {return;}
+ var $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false;
+ // TODO treeGrid and grouping Support
+ if($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )
+ {
+ return;
+ }
+ if($t.p.rownumbers) { i++; }
+ if($t.p.multiselect) { i++; }
+
+ // get the max index of frozen col
+ while(i=0 && frozen) {
+ var top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,
+ hth = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).height();
+ //headers
+ if($t.p.toppager) {
+ top = top + $($t.grid.topDiv).outerHeight();
+ }
+ if($t.p.toolbar[0] === true) {
+ if($t.p.toolbar[1] !== "bottom") {
+ top = top + $($t.grid.uDiv).outerHeight();
+ }
+ }
+ $t.grid.fhDiv = $('');
+ $t.grid.fbDiv = $('');
+ $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);
+ var htbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
+ // groupheader support - only if useColSpanstyle is false
+ if($t.p.groupHeader) {
+ $("tr.jqg-first-row-header, tr.jqg-third-row-header", htbl).each(function(){
+ $("th:gt("+maxfrozen+")",this).remove();
+ });
+ var swapfroz = -1, fdel = -1, cs, rs;
+ $("tr.jqg-second-row-header th", htbl).each(function(){
+ cs= parseInt($(this).attr("colspan"),10);
+ rs= parseInt($(this).attr("rowspan"),10);
+ if(rs) {
+ swapfroz++;
+ fdel++;
+ }
+ if(cs) {
+ swapfroz = swapfroz+cs;
+ fdel++;
+ }
+ if(swapfroz === maxfrozen) {
+ return false;
+ }
+ });
+ if(swapfroz !== maxfrozen) {
+ fdel = maxfrozen;
+ }
+ $("tr.jqg-second-row-header", htbl).each(function(){
+ $("th:gt("+fdel+")",this).remove();
+ });
+ } else {
+ $("tr",htbl).each(function(){
+ $("th:gt("+maxfrozen+")",this).remove();
+ });
+ }
+ $(htbl).width(1);
+ // resizing stuff
+ $($t.grid.fhDiv).append(htbl)
+ .mousemove(function (e) {
+ if($t.grid.resizing){ $t.grid.dragMove(e);return false; }
+ });
+ $($t).bind('jqGridResizeStop.setFrozenColumns', function (e, w, index) {
+ var rhth = $(".ui-jqgrid-htable",$t.grid.fhDiv);
+ $("th:eq("+index+")",rhth).width( w );
+ var btd = $(".ui-jqgrid-btable",$t.grid.fbDiv);
+ $("tr:first td:eq("+index+")",btd).width( w );
+ });
+ // sorting stuff
+ $($t).bind('jqGridSortCol.setFrozenColumns', function (e, index, idxcol) {
+
+ var previousSelectedTh = $("tr.ui-jqgrid-labels:last th:eq("+$t.p.lastsort+")",$t.grid.fhDiv), newSelectedTh = $("tr.ui-jqgrid-labels:last th:eq("+idxcol+")",$t.grid.fhDiv);
+
+ $("span.ui-grid-ico-sort",previousSelectedTh).addClass('ui-state-disabled');
+ $(previousSelectedTh).attr("aria-selected","false");
+ $("span.ui-icon-"+$t.p.sortorder,newSelectedTh).removeClass('ui-state-disabled');
+ $(newSelectedTh).attr("aria-selected","true");
+ if(!$t.p.viewsortcols[0]) {
+ if($t.p.lastsort !== idxcol) {
+ $("span.s-ico",previousSelectedTh).hide();
+ $("span.s-ico",newSelectedTh).show();
+ }
+ }
+ });
+
+ // data stuff
+ //TODO support for setRowData
+ $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);
+ $($t.grid.bDiv).scroll(function () {
+ $($t.grid.fbDiv).scrollTop($(this).scrollTop());
+ });
+ if($t.p.hoverrows === true) {
+ $("#"+$.jgrid.jqID($t.p.id)).unbind('mouseover').unbind('mouseout');
+ }
+ $($t).bind('jqGridAfterGridComplete.setFrozenColumns', function () {
+ $("#"+$.jgrid.jqID($t.p.id)+"_frozen").remove();
+ $($t.grid.fbDiv).height($($t.grid.bDiv).height()-16);
+ var btbl = $("#"+$.jgrid.jqID($t.p.id)).clone(true);
+ $("tr[role=row]",btbl).each(function(){
+ $("td[role=gridcell]:gt("+maxfrozen+")",this).remove();
+ });
+
+ $(btbl).width(1).attr("id",$t.p.id+"_frozen");
+ $($t.grid.fbDiv).append(btbl);
+ if($t.p.hoverrows === true) {
+ $("tr.jqgrow", btbl).hover(
+ function(){ $(this).addClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass("ui-state-hover"); },
+ function(){ $(this).removeClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass("ui-state-hover"); }
+ );
+ $("tr.jqgrow", "#"+$.jgrid.jqID($t.p.id)).hover(
+ function(){ $(this).addClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").addClass("ui-state-hover");},
+ function(){ $(this).removeClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").removeClass("ui-state-hover"); }
+ );
+ }
+ btbl=null;
+ });
+ if(!$t.grid.hDiv.loading) {
+ $($t).triggerHandler("jqGridAfterGridComplete");
+ }
+ $t.p.frozenColumns = true;
+ }
+ });
+ },
+ destroyFrozenColumns : function() {
+ return this.each(function() {
+ if ( !this.grid ) {return;}
+ if(this.p.frozenColumns === true) {
+ var $t = this;
+ $($t.grid.fhDiv).remove();
+ $($t.grid.fbDiv).remove();
+ $t.grid.fhDiv = null; $t.grid.fbDiv=null;
+ $(this).unbind('.setFrozenColumns');
+ if($t.p.hoverrows === true) {
+ var ptr;
+ $("#"+$.jgrid.jqID($t.p.id)).bind('mouseover',function(e) {
+ ptr = $(e.target).closest("tr.jqgrow");
+ if($(ptr).attr("class") !== "ui-subgrid") {
+ $(ptr).addClass("ui-state-hover");
+ }
+ }).bind('mouseout',function(e) {
+ ptr = $(e.target).closest("tr.jqgrow");
+ $(ptr).removeClass("ui-state-hover");
+ });
+ }
+ this.p.frozenColumns = false;
+ }
+ });
+ }
+});
+})(jQuery);
+/*
+ * jqModal - Minimalist Modaling with jQuery
+ * (http://dev.iceburg.net/jquery/jqmodal/)
+ *
+ * Copyright (c) 2007,2008 Brice Burgess
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * $Version: 07/06/2008 +r13
+ */
+(function($) {
+$.fn.jqm=function(o){
+var p={
+overlay: 50,
+closeoverlay : true,
+overlayClass: 'jqmOverlay',
+closeClass: 'jqmClose',
+trigger: '.jqModal',
+ajax: F,
+ajaxText: '',
+target: F,
+modal: F,
+toTop: F,
+onShow: F,
+onHide: F,
+onLoad: F
+};
+return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
+H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
+if(p.trigger)$(this).jqmAddTrigger(p.trigger);
+});};
+
+$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
+$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
+$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
+$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t)});};
+
+$.jqm = {
+hash:{},
+open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
+ if(c.modal) {if(!A[0])setTimeout(function(){L('bind');},1);A.push(s);}
+ else if(c.overlay > 0) {if(c.closeoverlay) h.w.jqmAddClose(o);}
+ else o=F;
+
+ h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
+
+ if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r == 'string')?$(r,h.w):$(r);u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
+ r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
+ else if(cc)h.w.jqmAddClose($(cc,h.w));
+
+ if(c.toTop&&h.o)h.w.before('').insertAfter(h.o);
+ (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
+},
+close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
+ if(A[0]){A.pop();if(!A[0])L('unbind');}
+ if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
+ if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
+},
+params:{}};
+var s=0,H=$.jqm.hash,A=[],F=false,
+e=function(h){f(h);},
+f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
+L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
+m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width()){r=false;return false;}});f(h);}return !r;},
+hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
+ if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
+})(jQuery);/*
+ * jqDnR - Minimalistic Drag'n'Resize for jQuery.
+ *
+ * Copyright (c) 2007 Brice Burgess , http://www.iceburg.net
+ * Licensed under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * $Version: 2007.08.19 +r2
+ */
+
+(function($){
+$.fn.jqDrag=function(h){return i(this,h,'d');};
+$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
+$.jqDnR={
+ dnr:{},
+ e:0,
+ drag:function(v){
+ if(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}
+ else {
+ E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
+ if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
+ }
+ return false;
+ },
+ stop:function(){
+ //E.css('opacity',M.o);
+ $(document).unbind('mousemove',J.drag).unbind('mouseup',J.stop);
+ }
+};
+var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,
+i=function(e,h,k,aR){
+ return e.each(function(){
+ h=(h)?$(h,e):e;
+ h.bind('mousedown',{e:e,k:k},function(v){
+ var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
+ // attempt utilization of dimensions plugin to fix IE issues
+ if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
+ M={
+ X:p.left||f('left')||0,
+ Y:p.top||f('top')||0,
+ W:f('width')||E[0].scrollWidth||0,
+ H:f('height')||E[0].scrollHeight||0,
+ pX:v.pageX,
+ pY:v.pageY,
+ k:d.k
+ //o:E.css('opacity')
+ };
+ // also resize
+ if(E1 && d.k != 'd'){
+ M1={
+ X:p.left||f1('left')||0,
+ Y:p.top||f1('top')||0,
+ W:E1[0].offsetWidth||f1('width')||0,
+ H:E1[0].offsetHeight||f1('height')||0,
+ pX:v.pageX,
+ pY:v.pageY,
+ k:d.k
+ };
+ } else {M1 = false;}
+ //E.css({opacity:0.8});
+ if($("input.hasDatepicker",E[0])[0]) {
+ try {$("input.hasDatepicker",E[0]).datepicker('hide');}catch (dpe){}
+ }
+ $(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
+ return false;
+ });
+ });
+},
+f=function(k){return parseInt(E.css(k),10)||false;},
+f1=function(k){return parseInt(E1.css(k),10)||false;};
+})(jQuery);/*
+ The below work is licensed under Creative Commons GNU LGPL License.
+
+ Original work:
+
+ License: http://creativecommons.org/licenses/LGPL/2.1/
+ Author: Stefan Goessner/2006
+ Web: http://goessner.net/
+
+ Modifications made:
+
+ Version: 0.9-p5
+ Description: Restructured code, JSLint validated (no strict whitespaces),
+ added handling of empty arrays, empty strings, and int/floats values.
+ Author: Michael Schøler/2008-01-29
+ Web: http://michael.hinnerup.net/blog/2008/01/26/converting-json-to-xml-and-xml-to-json/
+
+ Description: json2xml added support to convert functions as CDATA
+ so it will be easy to write characters that cause some problems when convert
+ Author: Tony Tomov
+*/
+
+/*global alert */
+var xmlJsonClass = {
+ // Param "xml": Element or document DOM node.
+ // Param "tab": Tab or indent string for pretty output formatting omit or use empty string "" to supress.
+ // Returns: JSON string
+ xml2json: function(xml, tab) {
+ if (xml.nodeType === 9) {
+ // document node
+ xml = xml.documentElement;
+ }
+ var nws = this.removeWhite(xml);
+ var obj = this.toObj(nws);
+ var json = this.toJson(obj, xml.nodeName, "\t");
+ return "{\n" + tab + (tab ? json.replace(/\t/g, tab) : json.replace(/\t|\n/g, "")) + "\n}";
+ },
+
+ // Param "o": JavaScript object
+ // Param "tab": tab or indent string for pretty output formatting omit or use empty string "" to supress.
+ // Returns: XML string
+ json2xml: function(o, tab) {
+ var toXml = function(v, name, ind) {
+ var xml = "";
+ var i, n;
+ if (v instanceof Array) {
+ if (v.length === 0) {
+ xml += ind + "<"+name+">__EMPTY_ARRAY_"+name+">\n";
+ }
+ else {
+ for (i = 0, n = v.length; i < n; i += 1) {
+ var sXml = ind + toXml(v[i], name, ind+"\t") + "\n";
+ xml += sXml;
+ }
+ }
+ }
+ else if (typeof(v) === "object") {
+ var hasChild = false;
+ xml += ind + "<" + name;
+ var m;
+ for (m in v) if (v.hasOwnProperty(m)) {
+ if (m.charAt(0) === "@") {
+ xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
+ }
+ else {
+ hasChild = true;
+ }
+ }
+ xml += hasChild ? ">" : "/>";
+ if (hasChild) {
+ for (m in v) if (v.hasOwnProperty(m)) {
+ if (m === "#text") {
+ xml += v[m];
+ }
+ else if (m === "#cdata") {
+ xml += "";
+ }
+ else if (m.charAt(0) !== "@") {
+ xml += toXml(v[m], m, ind+"\t");
+ }
+ }
+ xml += (xml.charAt(xml.length - 1) === "\n" ? ind : "") + "" + name + ">";
+ }
+ }
+ else if (typeof(v) === "function") {
+ xml += ind + "<" + name + ">" + "" + "" + name + ">";
+ }
+ else {
+ if (v === undefined ) { v = ""; }
+ if (v.toString() === "\"\"" || v.toString().length === 0) {
+ xml += ind + "<" + name + ">__EMPTY_STRING_" + name + ">";
+ }
+ else {
+ xml += ind + "<" + name + ">" + v.toString() + "" + name + ">";
+ }
+ }
+ return xml;
+ };
+ var xml = "";
+ var m;
+ for (m in o) if (o.hasOwnProperty(m)) {
+ xml += toXml(o[m], m, "");
+ }
+ return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, "");
+ },
+ // Internal methods
+ toObj: function(xml) {
+ var o = {};
+ var FuncTest = /function/i;
+ if (xml.nodeType === 1) {
+ // element node ..
+ if (xml.attributes.length) {
+ // element with attributes ..
+ var i;
+ for (i = 0; i < xml.attributes.length; i += 1) {
+ o["@" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || "").toString();
+ }
+ }
+ if (xml.firstChild) {
+ // element has child nodes ..
+ var textChild = 0, cdataChild = 0, hasElementChild = false;
+ var n;
+ for (n = xml.firstChild; n; n = n.nextSibling) {
+ if (n.nodeType === 1) {
+ hasElementChild = true;
+ }
+ else if (n.nodeType === 3 && n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
+ // non-whitespace text
+ textChild += 1;
+ }
+ else if (n.nodeType === 4) {
+ // cdata section node
+ cdataChild += 1;
+ }
+ }
+ if (hasElementChild) {
+ if (textChild < 2 && cdataChild < 2) {
+ // structured element with evtl. a single text or/and cdata node ..
+ this.removeWhite(xml);
+ for (n = xml.firstChild; n; n = n.nextSibling) {
+ if (n.nodeType === 3) {
+ // text node
+ o["#text"] = this.escape(n.nodeValue);
+ }
+ else if (n.nodeType === 4) {
+ // cdata node
+ if (FuncTest.test(n.nodeValue)) {
+ o[n.nodeName] = [o[n.nodeName], n.nodeValue];
+ } else {
+ o["#cdata"] = this.escape(n.nodeValue);
+ }
+ }
+ else if (o[n.nodeName]) {
+ // multiple occurence of element ..
+ if (o[n.nodeName] instanceof Array) {
+ o[n.nodeName][o[n.nodeName].length] = this.toObj(n);
+ }
+ else {
+ o[n.nodeName] = [o[n.nodeName], this.toObj(n)];
+ }
+ }
+ else {
+ // first occurence of element ..
+ o[n.nodeName] = this.toObj(n);
+ }
+ }
+ }
+ else {
+ // mixed content
+ if (!xml.attributes.length) {
+ o = this.escape(this.innerXml(xml));
+ }
+ else {
+ o["#text"] = this.escape(this.innerXml(xml));
+ }
+ }
+ }
+ else if (textChild) {
+ // pure text
+ if (!xml.attributes.length) {
+ o = this.escape(this.innerXml(xml));
+ if (o === "__EMPTY_ARRAY_") {
+ o = "[]";
+ } else if (o === "__EMPTY_STRING_") {
+ o = "";
+ }
+ }
+ else {
+ o["#text"] = this.escape(this.innerXml(xml));
+ }
+ }
+ else if (cdataChild) {
+ // cdata
+ if (cdataChild > 1) {
+ o = this.escape(this.innerXml(xml));
+ }
+ else {
+ for (n = xml.firstChild; n; n = n.nextSibling) {
+ if(FuncTest.test(xml.firstChild.nodeValue)) {
+ o = xml.firstChild.nodeValue;
+ break;
+ } else {
+ o["#cdata"] = this.escape(n.nodeValue);
+ }
+ }
+ }
+ }
+ }
+ if (!xml.attributes.length && !xml.firstChild) {
+ o = null;
+ }
+ }
+ else if (xml.nodeType === 9) {
+ // document.node
+ o = this.toObj(xml.documentElement);
+ }
+ else {
+ alert("unhandled node type: " + xml.nodeType);
+ }
+ return o;
+ },
+ toJson: function(o, name, ind, wellform) {
+ if(wellform === undefined) wellform = true;
+ var json = name ? ("\"" + name + "\"") : "", tab = "\t", newline = "\n";
+ if(!wellform) {
+ tab= ""; newline= "";
+ }
+
+ if (o === "[]") {
+ json += (name ? ":[]" : "[]");
+ }
+ else if (o instanceof Array) {
+ var n, i, ar=[];
+ for (i = 0, n = o.length; i < n; i += 1) {
+ ar[i] = this.toJson(o[i], "", ind + tab, wellform);
+ }
+ json += (name ? ":[" : "[") + (ar.length > 1 ? (newline + ind + tab + ar.join(","+newline + ind + tab) + newline + ind) : ar.join("")) + "]";
+ }
+ else if (o === null) {
+ json += (name && ":") + "null";
+ }
+ else if (typeof(o) === "object") {
+ var arr = [], m;
+ for (m in o) {
+ if (o.hasOwnProperty(m)) {
+ arr[arr.length] = this.toJson(o[m], m, ind + tab, wellform);
+ }
+ }
+ json += (name ? ":{" : "{") + (arr.length > 1 ? (newline + ind + tab + arr.join(","+newline + ind + tab) + newline + ind) : arr.join("")) + "}";
+ }
+ else if (typeof(o) === "string") {
+ /*
+ var objRegExp = /(^-?\d+\.?\d*$)/;
+ var FuncTest = /function/i;
+ var os = o.toString();
+ if (objRegExp.test(os) || FuncTest.test(os) || os==="false" || os==="true") {
+ // int or float
+ json += (name && ":") + "\"" +os + "\"";
+ }
+ else {
+ */
+ json += (name && ":") + "\"" + o.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"";
+ //}
+ }
+ else {
+ json += (name && ":") + o.toString();
+ }
+ return json;
+ },
+ innerXml: function(node) {
+ var s = "";
+ if ("innerHTML" in node) {
+ s = node.innerHTML;
+ }
+ else {
+ var asXml = function(n) {
+ var s = "", i;
+ if (n.nodeType === 1) {
+ s += "<" + n.nodeName;
+ for (i = 0; i < n.attributes.length; i += 1) {
+ s += " " + n.attributes[i].nodeName + "=\"" + (n.attributes[i].nodeValue || "").toString() + "\"";
+ }
+ if (n.firstChild) {
+ s += ">";
+ for (var c = n.firstChild; c; c = c.nextSibling) {
+ s += asXml(c);
+ }
+ s += "" + n.nodeName + ">";
+ }
+ else {
+ s += "/>";
+ }
+ }
+ else if (n.nodeType === 3) {
+ s += n.nodeValue;
+ }
+ else if (n.nodeType === 4) {
+ s += "";
+ }
+ return s;
+ };
+ for (var c = node.firstChild; c; c = c.nextSibling) {
+ s += asXml(c);
+ }
+ }
+ return s;
+ },
+ escape: function(txt) {
+ return txt.replace(/[\\]/g, "\\\\").replace(/[\"]/g, '\\"').replace(/[\n]/g, '\\n').replace(/[\r]/g, '\\r');
+ },
+ removeWhite: function(e) {
+ e.normalize();
+ var n;
+ for (n = e.firstChild; n; ) {
+ if (n.nodeType === 3) {
+ // text node
+ if (!n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
+ // pure whitespace text node
+ var nxt = n.nextSibling;
+ e.removeChild(n);
+ n = nxt;
+ }
+ else {
+ n = n.nextSibling;
+ }
+ }
+ else if (n.nodeType === 1) {
+ // element node
+ this.removeWhite(n);
+ n = n.nextSibling;
+ }
+ else {
+ // any other node
+ n = n.nextSibling;
+ }
+ }
+ return e;
+ }
+};/*
+**
+ * formatter for values but most of the values if for jqGrid
+ * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
+ * we are trying to keep it as light as possible
+ * Joshua Burnett josh@9ci.com
+ * http://www.greenbill.com
+ *
+ * Changes from Tony Tomov tony@trirand.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ *
+**/
+/*jshint eqeqeq:false */
+/*global jQuery */
+
+(function($) {
+"use strict";
+ $.fmatter = {};
+ //opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
+ //example {id:1234,}
+ $.extend($.fmatter,{
+ isBoolean : function(o) {
+ return typeof o === 'boolean';
+ },
+ isObject : function(o) {
+ return (o && (typeof o === 'object' || $.isFunction(o))) || false;
+ },
+ isString : function(o) {
+ return typeof o === 'string';
+ },
+ isNumber : function(o) {
+ return typeof o === 'number' && isFinite(o);
+ },
+ isValue : function (o) {
+ return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));
+ },
+ isEmpty : function(o) {
+ if(!this.isString(o) && this.isValue(o)) {
+ return false;
+ }
+ if (!this.isValue(o)){
+ return true;
+ }
+ o = $.trim(o).replace(/\ \;/ig,'').replace(/\ \;/ig,'');
+ return o==="";
+ }
+ });
+ $.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
+ // build main options before element iteration
+ var v=cellval;
+ opts = $.extend({}, $.jgrid.formatter, opts);
+
+ try {
+ v = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);
+ } catch(fe){}
+ return v;
+ };
+ $.fmatter.util = {
+ // Taken from YAHOO utils
+ NumberFormat : function(nData,opts) {
+ if(!$.fmatter.isNumber(nData)) {
+ nData *= 1;
+ }
+ if($.fmatter.isNumber(nData)) {
+ var bNegative = (nData < 0);
+ var sOutput = String(nData);
+ var sDecimalSeparator = opts.decimalSeparator || ".";
+ var nDotIndex;
+ if($.fmatter.isNumber(opts.decimalPlaces)) {
+ // Round to the correct decimal place
+ var nDecimalPlaces = opts.decimalPlaces;
+ var nDecimal = Math.pow(10, nDecimalPlaces);
+ sOutput = String(Math.round(nData*nDecimal)/nDecimal);
+ nDotIndex = sOutput.lastIndexOf(".");
+ if(nDecimalPlaces > 0) {
+ // Add the decimal separator
+ if(nDotIndex < 0) {
+ sOutput += sDecimalSeparator;
+ nDotIndex = sOutput.length-1;
+ }
+ // Replace the "."
+ else if(sDecimalSeparator !== "."){
+ sOutput = sOutput.replace(".",sDecimalSeparator);
+ }
+ // Add missing zeros
+ while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
+ sOutput += "0";
+ }
+ }
+ }
+ if(opts.thousandsSeparator) {
+ var sThousandsSeparator = opts.thousandsSeparator;
+ nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
+ nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
+ var sNewOutput = sOutput.substring(nDotIndex);
+ var nCount = -1, i;
+ for (i=nDotIndex; i>0; i--) {
+ nCount++;
+ if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
+ sNewOutput = sThousandsSeparator + sNewOutput;
+ }
+ sNewOutput = sOutput.charAt(i-1) + sNewOutput;
+ }
+ sOutput = sNewOutput;
+ }
+ // Prepend prefix
+ sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
+ // Append suffix
+ sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
+ return sOutput;
+
+ }
+ return nData;
+ }
+ };
+ $.fn.fmatter.defaultFormat = function(cellval, opts) {
+ return ($.fmatter.isValue(cellval) && cellval!=="" ) ? cellval : opts.defaultValue || " ";
+ };
+ $.fn.fmatter.email = function(cellval, opts) {
+ if(!$.fmatter.isEmpty(cellval)) {
+ return "" + cellval + "";
+ }
+ return $.fn.fmatter.defaultFormat(cellval,opts );
+ };
+ $.fn.fmatter.checkbox =function(cval, opts) {
+ var op = $.extend({},opts.checkbox), ds;
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";}
+ if($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}
+ cval=String(cval);
+ cval=(cval+"").toLowerCase();
+ var bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? " checked='checked' " : "";
+ return "";
+ };
+ $.fn.fmatter.link = function(cellval, opts) {
+ var op = {target:opts.target};
+ var target = "";
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if(op.target) {target = 'target=' + op.target;}
+ if(!$.fmatter.isEmpty(cellval)) {
+ return "" + cellval + "";
+ }
+ return $.fn.fmatter.defaultFormat(cellval,opts);
+ };
+ $.fn.fmatter.showlink = function(cellval, opts) {
+ var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName},
+ target = "", idUrl;
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if(op.target) {target = 'target=' + op.target;}
+ idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
+ if($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) { //add this one even if its blank string
+ return "" + cellval + "";
+ }
+ return $.fn.fmatter.defaultFormat(cellval,opts);
+ };
+ $.fn.fmatter.integer = function(cellval, opts) {
+ var op = $.extend({},opts.integer);
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if($.fmatter.isEmpty(cellval)) {
+ return op.defaultValue;
+ }
+ return $.fmatter.util.NumberFormat(cellval,op);
+ };
+ $.fn.fmatter.number = function (cellval, opts) {
+ var op = $.extend({},opts.number);
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if($.fmatter.isEmpty(cellval)) {
+ return op.defaultValue;
+ }
+ return $.fmatter.util.NumberFormat(cellval,op);
+ };
+ $.fn.fmatter.currency = function (cellval, opts) {
+ var op = $.extend({},opts.currency);
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if($.fmatter.isEmpty(cellval)) {
+ return op.defaultValue;
+ }
+ return $.fmatter.util.NumberFormat(cellval,op);
+ };
+ $.fn.fmatter.date = function (cellval, opts, rwd, act) {
+ var op = $.extend({},opts.date);
+ if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
+ op = $.extend({},op,opts.colModel.formatoptions);
+ }
+ if(!op.reformatAfterEdit && act === 'edit'){
+ return $.fn.fmatter.defaultFormat(cellval, opts);
+ }
+ if(!$.fmatter.isEmpty(cellval)) {
+ return $.jgrid.parseDate(op.srcformat,cellval,op.newformat,op);
+ }
+ return $.fn.fmatter.defaultFormat(cellval, opts);
+ };
+ $.fn.fmatter.select = function (cellval,opts) {
+ // jqGrid specific
+ cellval = String(cellval);
+ var oSelect = false, ret=[], sep, delim;
+ if(opts.colModel.formatoptions !== undefined){
+ oSelect= opts.colModel.formatoptions.value;
+ sep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator;
+ delim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter;
+ } else if(opts.colModel.editoptions !== undefined){
+ oSelect= opts.colModel.editoptions.value;
+ sep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator;
+ delim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter;
+ }
+ if (oSelect) {
+ var msl = opts.colModel.editoptions.multiple === true ? true : false,
+ scell = [], sv;
+ if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
+ if ($.fmatter.isString(oSelect)) {
+ // mybe here we can use some caching with care ????
+ var so = oSelect.split(delim), j=0, i;
+ for(i=0; i 2 ) {
+ sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
+ }
+ if(msl) {
+ if($.inArray(sv[0],scell)>-1) {
+ ret[j] = sv[1];
+ j++;
+ }
+ } else if($.trim(sv[0]) === $.trim(cellval)) {
+ ret[0] = sv[1];
+ break;
+ }
+ }
+ } else if($.fmatter.isObject(oSelect)) {
+ // this is quicker
+ if(msl) {
+ ret = $.map(scell, function(n){
+ return oSelect[n];
+ });
+ } else {
+ ret[0] = oSelect[cellval] || "";
+ }
+ }
+ }
+ cellval = ret.join(", ");
+ return cellval === "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
+ };
+ $.fn.fmatter.rowactions = function(act) {
+ var $tr = $(this).closest("tr.jqgrow"),
+ rid = $tr.attr("id"),
+ $id = $(this).closest("table.ui-jqgrid-btable").attr('id').replace(/_frozen([^_]*)$/,'$1'),
+ $grid = $("#"+$id),
+ $t = $grid[0],
+ p = $t.p,
+ cm = p.colModel[$.jgrid.getCellIndex(this)],
+ $actionsDiv = cm.frozen ? $("tr#"+rid+" td:eq("+$.jgrid.getCellIndex(this)+") > div",$grid) :$(this).parent(),
+ op = {
+ extraparam: {}
+ },
+ saverow = function(rowid, res) {
+ if($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }
+ $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
+ $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
+ },
+ restorerow = function(rowid) {
+ if($.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }
+ $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
+ $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
+ };
+
+ if (cm.formatoptions !== undefined) {
+ op = $.extend(op,cm.formatoptions);
+ }
+ if (p.editOptions !== undefined) {
+ op.editOptions = p.editOptions;
+ }
+ if (p.delOptions !== undefined) {
+ op.delOptions = p.delOptions;
+ }
+ if ($tr.hasClass("jqgrid-new-row")){
+ op.extraparam[p.prmNames.oper] = p.prmNames.addoper;
+ }
+ var actop = {
+ keys: op.keys,
+ oneditfunc: op.onEdit,
+ successfunc: op.onSuccess,
+ url: op.url,
+ extraparam: op.extraparam,
+ aftersavefunc: saverow,
+ errorfunc: op.onError,
+ afterrestorefunc: restorerow,
+ restoreAfterError: op.restoreAfterError,
+ mtype: op.mtype
+ };
+ switch(act)
+ {
+ case 'edit':
+ $grid.jqGrid('editRow', rid, actop);
+ $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").hide();
+ $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").show();
+ $grid.triggerHandler("jqGridAfterGridComplete");
+ break;
+ case 'save':
+ if ($grid.jqGrid('saveRow', rid, actop)) {
+ $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
+ $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
+ $grid.triggerHandler("jqGridAfterGridComplete");
+ }
+ break;
+ case 'cancel' :
+ $grid.jqGrid('restoreRow', rid, restorerow);
+ $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
+ $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
+ $grid.triggerHandler("jqGridAfterGridComplete");
+ break;
+ case 'del':
+ $grid.jqGrid('delGridRow', rid, op.delOptions);
+ break;
+ case 'formedit':
+ $grid.jqGrid('setSelection', rid);
+ $grid.jqGrid('editGridRow', rid, op.editOptions);
+ break;
+ }
+ };
+ $.fn.fmatter.actions = function(cellval,opts) {
+ var op={keys:false, editbutton:true, delbutton:true, editformbutton: false},
+ rowid=opts.rowId, str="",ocl;
+ if(opts.colModel.formatoptions !== undefined) {
+ op = $.extend(op,opts.colModel.formatoptions);
+ }
+ if(rowid === undefined || $.fmatter.isEmpty(rowid)) {return "";}
+ if(op.editformbutton){
+ ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); ";
+ str += "
");
+ table.append(tr);
+ // this header will hold the group operator type and group action buttons for
+ // creating subgroup "+ {}", creating rule "+" or deleting the group "-"
+ var th = $("
");
+ tr.append(th);
+
+ if(this.p.ruleButtons === true) {
+ // dropdown for: choosing group operator type
+ var groupOpSelect = $("");
+ th.append(groupOpSelect);
+ // populate dropdown with all posible group operators: or, and
+ var str= "", selected;
+ for (i = 0; i < p.groupOps.length; i++) {
+ selected = group.groupOp === that.p.groupOps[i].op ? " selected='selected'" :"";
+ str += "";
+ }
+
+ groupOpSelect
+ .append(str)
+ .bind('change',function() {
+ group.groupOp = $(groupOpSelect).val();
+ that.onchange(); // signals that the filter has changed
+ });
+ }
+ // button for adding a new subgroup
+ var inputAddSubgroup ="";
+ if(this.p.groupButton) {
+ inputAddSubgroup = $("");
+ inputAddSubgroup.bind('click',function() {
+ if (group.groups === undefined ) {
+ group.groups = [];
+ }
+
+ group.groups.push({
+ groupOp: p.groupOps[0].op,
+ rules: [],
+ groups: []
+ }); // adding a new group
+
+ that.reDraw(); // the html has changed, force reDraw
+
+ that.onchange(); // signals that the filter has changed
+ return false;
+ });
+ }
+ th.append(inputAddSubgroup);
+ if(this.p.ruleButtons === true) {
+ // button for adding a new rule
+ var inputAddRule = $(""), cm;
+ inputAddRule.bind('click',function() {
+ //if(!group) { group = {};}
+ if (group.rules === undefined) {
+ group.rules = [];
+ }
+ for (i = 0; i < that.p.columns.length; i++) {
+ // but show only serchable and serchhidden = true fields
+ var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,
+ hidden = (that.p.columns[i].hidden === true),
+ ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);
+ if ((ignoreHiding && searchable) || (searchable && !hidden)) {
+ cm = that.p.columns[i];
+ break;
+ }
+ }
+
+ var opr;
+ if( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}
+ else if(that.p.sopt) { opr= that.p.sopt; }
+ else if ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}
+ else {opr = that.p.numopts;}
+
+ group.rules.push({
+ field: cm.name,
+ op: opr[0],
+ data: ""
+ }); // adding a new rule
+
+ that.reDraw(); // the html has changed, force reDraw
+ // for the moment no change have been made to the rule, so
+ // this will not trigger onchange event
+ return false;
+ });
+ th.append(inputAddRule);
+ }
+
+ // button for delete the group
+ if (parentgroup !== null) { // ignore the first group
+ var inputDeleteGroup = $("");
+ th.append(inputDeleteGroup);
+ inputDeleteGroup.bind('click',function() {
+ // remove group from parent
+ for (i = 0; i < parentgroup.groups.length; i++) {
+ if (parentgroup.groups[i] === group) {
+ parentgroup.groups.splice(i, 1);
+ break;
+ }
+ }
+
+ that.reDraw(); // the html has changed, force reDraw
+
+ that.onchange(); // signals that the filter has changed
+ return false;
+ });
+ }
+
+ // append subgroup rows
+ if (group.groups !== undefined) {
+ for (i = 0; i < group.groups.length; i++) {
+ var trHolderForSubgroup = $("
");
+ table.append(trHolderForSubgroup);
+
+ var tdFirstHolderForSubgroup = $("
");
+ trHolderForSubgroup.append(tdFirstHolderForSubgroup);
+
+ var tdMainHolderForSubgroup = $("
");
+ tdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));
+ trHolderForSubgroup.append(tdMainHolderForSubgroup);
+ }
+ }
+ if(group.groupOp === undefined) {
+ group.groupOp = that.p.groupOps[0].op;
+ }
+
+ // append rules rows
+ if (group.rules !== undefined) {
+ for (i = 0; i < group.rules.length; i++) {
+ table.append(
+ this.createTableRowForRule(group.rules[i], group)
+ );
+ }
+ }
+
+ return table;
+ };
+ /*
+ * Create the rule data for the filter
+ */
+ this.createTableRowForRule = function(rule, group ) {
+ // save current entity in a variable so that it could
+ // be referenced in anonimous method calls
+
+ var that=this, $t = getGrid(), tr = $("
"),
+ //document.createElement("tr"),
+
+ // first column used for padding
+ //tdFirstHolderForRule = document.createElement("td"),
+ i, op, trpar, cm, str="", selected;
+ //tdFirstHolderForRule.setAttribute("class", "first");
+ tr.append("
");
+
+
+ // create field container
+ var ruleFieldTd = $("
");
+ tr.append(ruleFieldTd);
+
+
+ // dropdown for: choosing field
+ var ruleFieldSelect = $(""), ina, aoprs = [];
+ ruleFieldTd.append(ruleFieldSelect);
+ ruleFieldSelect.bind('change',function() {
+ rule.field = $(ruleFieldSelect).val();
+
+ trpar = $(this).parents("tr:first");
+ for (i=0;i"+that.p.ops[ina].text+"";
+ so++;
+ }
+ }
+ $(".selectopts",trpar).empty().append( s );
+ $(".selectopts",trpar)[0].selectedIndex = 0;
+ if( $.jgrid.msie && $.jgrid.msiever() < 9) {
+ var sw = parseInt($("select.selectopts",trpar)[0].offsetWidth, 10) + 1;
+ $(".selectopts",trpar).width( sw );
+ $(".selectopts",trpar).css("width","auto");
+ }
+ // data
+ $(".data",trpar).empty().append( elm );
+ $.jgrid.bindEv.call($t, elm, cm.searchoptions);
+ $(".input-elm",trpar).bind('change',function( e ) {
+ var elem = e.target;
+ rule.data = elem.nodeName.toUpperCase() === "SPAN" && cm.searchoptions && $.isFunction(cm.searchoptions.custom_value) ?
+ cm.searchoptions.custom_value.call($t, $(elem).children(".customelement:first"), 'get') : elem.value;
+ that.onchange(); // signals that the filter has changed
+ });
+ setTimeout(function(){ //IE, Opera, Chrome
+ rule.data = $(elm).val();
+ that.onchange(); // signals that the filter has changed
+ }, 0);
+ });
+
+ // populate drop down with user provided column definitions
+ var j=0;
+ for (i = 0; i < that.p.columns.length; i++) {
+ // but show only serchable and serchhidden = true fields
+ var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,
+ hidden = (that.p.columns[i].hidden === true),
+ ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);
+ if ((ignoreHiding && searchable) || (searchable && !hidden)) {
+ selected = "";
+ if(rule.field === that.p.columns[i].name) {
+ selected = " selected='selected'";
+ j=i;
+ }
+ str += "";
+ }
+ }
+ ruleFieldSelect.append( str );
+
+
+ // create operator container
+ var ruleOperatorTd = $("
");
+ tr.append(ruleOperatorTd);
+ cm = p.columns[j];
+ // create it here so it can be referentiated in the onchange event
+ //var RD = that.createElement(rule, rule.data);
+ cm.searchoptions.id = $.jgrid.randId();
+ if(isIE && cm.inputtype === "text") {
+ if(!cm.searchoptions.size) {
+ cm.searchoptions.size = 10;
+ }
+ }
+ var ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);
+ if(rule.op === 'nu' || rule.op === 'nn') {
+ $(ruleDataInput).attr('readonly','true');
+ $(ruleDataInput).attr('disabled','true');
+ } //retain the state of disabled text fields in case of null ops
+ // dropdown for: choosing operator
+ var ruleOperatorSelect = $("");
+ ruleOperatorTd.append(ruleOperatorSelect);
+ ruleOperatorSelect.bind('change',function() {
+ rule.op = $(ruleOperatorSelect).val();
+ trpar = $(this).parents("tr:first");
+ var rd = $(".input-elm",trpar)[0];
+ if (rule.op === "nu" || rule.op === "nn") { // disable for operator "is null" and "is not null"
+ rule.data = "";
+ if(rd.tagName.toUpperCase() !== 'SELECT') rd.value = "";
+ rd.setAttribute("readonly", "true");
+ rd.setAttribute("disabled", "true");
+ } else {
+ if(rd.tagName.toUpperCase() === 'SELECT') rule.data = rd.value;
+ rd.removeAttribute("readonly");
+ rd.removeAttribute("disabled");
+ }
+
+ that.onchange(); // signals that the filter has changed
+ });
+
+ // populate drop down with all available operators
+ if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}
+ else if(that.p.sopt) { op= that.p.sopt; }
+ else if ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}
+ else {op = that.p.numopts;}
+ str="";
+ $.each(that.p.ops, function() { aoprs.push(this.oper); });
+ for ( i = 0; i < op.length; i++) {
+ ina = $.inArray(op[i],aoprs);
+ if(ina !== -1) {
+ selected = rule.op === that.p.ops[ina].oper ? " selected='selected'" : "";
+ str += "";
+ }
+ }
+ ruleOperatorSelect.append( str );
+ // create data container
+ var ruleDataTd = $("
");
+ tr.append(ruleDataTd);
+
+ // textbox for: data
+ // is created previously
+ //ruleDataInput.setAttribute("type", "text");
+ ruleDataTd.append(ruleDataInput);
+ $.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);
+ $(ruleDataInput)
+ .addClass("input-elm")
+ .bind('change', function() {
+ rule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(this).children(".customelement:first"),'get') : $(this).val();
+ that.onchange(); // signals that the filter has changed
+ });
+
+ // create action container
+ var ruleDeleteTd = $("
");
+ tr.append(ruleDeleteTd);
+
+ // create button for: delete rule
+ if(this.p.ruleButtons === true) {
+ var ruleDeleteInput = $("");
+ ruleDeleteTd.append(ruleDeleteInput);
+ //$(ruleDeleteInput).html("").height(20).width(30).button({icons: { primary: "ui-icon-minus", text:false}});
+ ruleDeleteInput.bind('click',function() {
+ // remove rule from group
+ for (i = 0; i < group.rules.length; i++) {
+ if (group.rules[i] === rule) {
+ group.rules.splice(i, 1);
+ break;
+ }
+ }
+
+ that.reDraw(); // the html has changed, force reDraw
+
+ that.onchange(); // signals that the filter has changed
+ return false;
+ });
+ }
+ return tr;
+ };
+
+ this.getStringForGroup = function(group) {
+ var s = "(", index;
+ if (group.groups !== undefined) {
+ for (index = 0; index < group.groups.length; index++) {
+ if (s.length > 1) {
+ s += " " + group.groupOp + " ";
+ }
+ try {
+ s += this.getStringForGroup(group.groups[index]);
+ } catch (eg) {alert(eg);}
+ }
+ }
+
+ if (group.rules !== undefined) {
+ try{
+ for (index = 0; index < group.rules.length; index++) {
+ if (s.length > 1) {
+ s += " " + group.groupOp + " ";
+ }
+ s += this.getStringForRule(group.rules[index]);
+ }
+ } catch (e) {alert(e);}
+ }
+
+ s += ")";
+
+ if (s === "()") {
+ return ""; // ignore groups that don't have rules
+ }
+ return s;
+ };
+ this.getStringForRule = function(rule) {
+ var opUF = "",opC="", i, cm, ret, val,
+ numtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid
+ for (i = 0; i < this.p.ops.length; i++) {
+ if (this.p.ops[i].oper === rule.op) {
+ opUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : "";
+ opC = this.p.ops[i].oper;
+ break;
+ }
+ }
+ for (i=0; i 1) {
+ if (group.groupOp === "OR") {
+ s += " || ";
+ }
+ else {
+ s += " && ";
+ }
+ }
+ s += getStringForGroup(group.groups[index]);
+ }
+ }
+
+ if (group.rules !== undefined) {
+ for (index = 0; index < group.rules.length; index++) {
+ if (s.length > 1) {
+ if (group.groupOp === "OR") {
+ s += " || ";
+ }
+ else {
+ s += " && ";
+ }
+ }
+ s += getStringRule(group.rules[index]);
+ }
+ }
+
+ s += ")";
+
+ if (s === "()") {
+ return ""; // ignore groups that don't have rules
+ }
+ return s;
+ }
+
+ return getStringForGroup(this.p.filter);
+ };
+
+ // Here we init the filter
+ this.reDraw();
+
+ if(this.p.showQuery) {
+ this.onchange();
+ }
+ // mark is as created so that it will not be created twice on this element
+ this.filter = true;
+ });
+};
+$.extend($.fn.jqFilter,{
+ /*
+ * Return SQL like string. Can be used directly
+ */
+ toSQLString : function()
+ {
+ var s ="";
+ this.each(function(){
+ s = this.toUserFriendlyString();
+ });
+ return s;
+ },
+ /*
+ * Return filter data as object.
+ */
+ filterData : function()
+ {
+ var s;
+ this.each(function(){
+ s = this.p.filter;
+ });
+ return s;
+
+ },
+ getParameter : function (param) {
+ if(param !== undefined) {
+ if (this.p.hasOwnProperty(param) ) {
+ return this.p[param];
+ }
+ }
+ return this.p;
+ },
+ resetFilter: function() {
+ return this.each(function(){
+ this.resetFilter();
+ });
+ },
+ addFilter: function (pfilter) {
+ if (typeof pfilter === "string") {
+ pfilter = $.jgrid.parse( pfilter );
+ }
+ this.each(function(){
+ this.p.filter = pfilter;
+ this.reDraw();
+ this.onchange();
+ });
+ }
+
+});
+})(jQuery);
+/*jshint eqeqeq:false, eqnull:true, devel:true */
+/*global xmlJsonClass, jQuery */
+(function($){
+/**
+ * jqGrid extension for form editing Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+"use strict";
+var rp_ge = {};
+$.jgrid.extend({
+ searchGrid : function (p) {
+ p = $.extend(true, {
+ recreateFilter: false,
+ drag: true,
+ sField:'searchField',
+ sValue:'searchString',
+ sOper: 'searchOper',
+ sFilter: 'filters',
+ loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
+ beforeShowSearch: null,
+ afterShowSearch : null,
+ onInitializeSearch: null,
+ afterRedraw : null,
+ afterChange: null,
+ closeAfterSearch : false,
+ closeAfterReset: false,
+ closeOnEscape : false,
+ searchOnEnter : false,
+ multipleSearch : false,
+ multipleGroup : false,
+ //cloneSearchRowOnAdd: true,
+ top : 0,
+ left: 0,
+ jqModal : true,
+ modal: false,
+ resize : true,
+ width: 450,
+ height: 'auto',
+ dataheight: 'auto',
+ showQuery: false,
+ errorcheck : true,
+ sopt: null,
+ stringResult: undefined,
+ onClose : null,
+ onSearch : null,
+ onReset : null,
+ toTop : true,
+ overlay : 30,
+ columns : [],
+ tmplNames : null,
+ tmplFilters : null,
+ tmplLabel : ' Template: ',
+ showOnLoad: false,
+ layer: null,
+ operands : { "eq" :"=", "ne":"<>","lt":"<","le":"<=","gt":">","ge":">=","bw":"LIKE","bn":"NOT LIKE","in":"IN","ni":"NOT IN","ew":"LIKE","en":"NOT LIKE","cn":"LIKE","nc":"NOT LIKE","nu":"IS NULL","nn":"ISNOT NULL"}
+ }, $.jgrid.search, p || {});
+ return this.each(function() {
+ var $t = this;
+ if(!$t.grid) {return;}
+ var fid = "fbox_"+$t.p.id,
+ showFrm = true,
+ mustReload = true,
+ IDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},
+ defaultFilters = $t.p.postData[p.sFilter];
+ if(typeof defaultFilters === "string") {
+ defaultFilters = $.jgrid.parse( defaultFilters );
+ }
+ if(p.recreateFilter === true) {
+ $("#"+$.jgrid.jqID(IDs.themodal)).remove();
+ }
+ function showFilter(_filter) {
+ showFrm = $($t).triggerHandler("jqGridFilterBeforeShow", [_filter]);
+ if(showFrm === undefined) {
+ showFrm = true;
+ }
+ if(showFrm && $.isFunction(p.beforeShowSearch)) {
+ showFrm = p.beforeShowSearch.call($t,_filter);
+ }
+ if(showFrm) {
+ $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(fid),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});
+ $($t).triggerHandler("jqGridFilterAfterShow", [_filter]);
+ if($.isFunction(p.afterShowSearch)) {
+ p.afterShowSearch.call($t, _filter);
+ }
+ }
+ }
+ if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {
+ showFilter($("#fbox_"+$.jgrid.jqID(+$t.p.id)));
+ } else {
+ var fil = $("