fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [10036] common


From: Sigurd Nes
Subject: [Fmsystem-commits] [10036] common
Date: Thu, 27 Sep 2012 07:40:42 +0000

Revision: 10036
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=10036
Author:   sigurdne
Date:     2012-09-27 07:40:41 +0000 (Thu, 27 Sep 2012)
Log Message:
-----------
common

Modified Paths:
--------------
    trunk/phpgwapi/js/yahoo/datatable.js
    trunk/phpgwapi/templates/base/datatable_common.xsl

Modified: trunk/phpgwapi/js/yahoo/datatable.js
===================================================================
--- trunk/phpgwapi/js/yahoo/datatable.js        2012-09-27 07:37:25 UTC (rev 
10035)
+++ trunk/phpgwapi/js/yahoo/datatable.js        2012-09-27 07:40:41 UTC (rev 
10036)
@@ -98,6 +98,118 @@
     };
     myDataTable.sortColumn = handleSorting;
 
+       /* Inline editor from 'rental'*/
+
+
+       myDataTable.editor_action = YAHOO.portico.editor_action;
+
+               // Handle mouseover and click events for inline editing
+               myDataTable.subscribe("cellMouseoverEvent", 
highlightEditableCell);
+               myDataTable.subscribe("cellMouseoutEvent", 
myDataTable.onEventUnhighlightCell);
+               myDataTable.subscribe("cellClickEvent", 
myDataTable.onEventShowCellEditor);
+
+               myDataTable.subscribe("editorSaveEvent", function(oArgs) {
+                       var field = oArgs.editor.getColumn().field;
+                       var value = oArgs.newData;
+                       var id = oArgs.editor.getRecord().getData().id;
+console.log(oArgs.editor.getRecord());
+                       var action = oArgs.editor.getDataTable().editor_action;
+
+                       // Translate to unix time if the editor is a calendar.
+                       if (oArgs.editor._sType == 'date') {
+                               var selectedDate = 
oArgs.editor.calendar.getSelectedDates()[0];
+                               //alert("selDate1: " + selectedDate);
+                               // Make sure we're at midnight GMT
+                               selectedDate = selectedDate.toString().split(" 
");
+                               //for(var e=0;e<selectedDate.length;e++){
+                               //      alert("element " + e + ": " + 
selectedDate[e]);
+                               //}
+                               if(selectedDate[3] == "00:00:00"){
+                               //      alert("seldate skal byttes!");
+                                       selectedDate = 
selectedDate.slice(0,3).join(" ") + " " + selectedDate[5] + " 00:00:00 GMT"; 
+                               }
+                               else{
+                                       selectedDate = 
selectedDate.slice(0,4).join(" ") + " 00:00:00 GMT";
+                               }
+                               //selectedDate = 
selectedDate.toString().split(" ").slice(0, 4).join(" ") + " 00:00:00 GMT";
+                               //alert("selDate2: " + selectedDate);
+                               var value = Math.round(Date.parse(selectedDate) 
/ 1000);
+                               //alert("selDate3 value: " + value);
+                       }
+
+                       var oArgs_edit = 
{menuaction:action,field:field,value:value,id:id};
+                       var edit_Url = phpGWLink('index.php', oArgs_edit,true);
+
+alert(edit_Url);
+
+                       var request = YAHOO.util.Connect.asyncRequest(
+                                       'GET',
+                                       'index.php?menuaction=' + action + 
"&amp;field=" + field + "&amp;value=" + value + "&amp;id=" + id,
+                                       {
+                                               success: ajaxResponseSuccess,
+                                               failure: ajaxResponseFailure,
+                                               args:oArgs.editor.getDataTable()
+                                       }
+                               );
+               });
+
+/*
+               // Don't set the row to be left-clickable if the table is 
editable by inline editors.
+               // In that case we use cellClickEvents instead
+               var table_should_be_clickable = true;
+               for (i in YAHOO.portico.columnDefs) {
+                       if (YAHOO.portico.columnDefs[i].editor) {
+                               //table_should_be_clickable = false;
+                       }
+               }
+
+               if (table_should_be_clickable && 
!YAHOO.portico.disable_left_click) {
+                       //... create a handler for regular clicks on a table row
+                       myDataTable.subscribe("rowClickEvent", function(e,obj) {
+                               YAHOO.util.Event.stopEvent(e);
+
+                               var target = e.target;
+                               var record = this.getRecord(target);
+                               var row = this.getRow(target);
+                               //once you get here you can access values like 
..
+                               //record.getData("ColumnName") or row.rowIndex
+
+                               //... trigger first action on row click
+                       //      var row = obj.table.getTrEl(e.target);
+                               if(row)
+                               {
+                       //              var record = obj.table.getRecord(row);
+                                       //... check whether this action should 
be an AJAX call
+                                       if(record.getData().ajax[0]) {
+                                               var request = 
YAHOO.util.Connect.asyncRequest(
+                                                       'GET',
+                                                       //... execute first 
action
+                                                       
record.getData().actions[0],
+                                                       {
+                                                               success: 
ajaxResponseSuccess,
+                                                               failure: 
ajaxResponseFailure,
+                                                               args:obj.table
+                                                       }
+                                               );
+                                       } else {
+                                               //... execute first action
+                                               window.location = 
record.getData().actions[0];
+                                       }
+                               }
+                       },this);
+
+                       //... highlight rows on mouseover.  This too only 
happens if the table is
+                       // not editable.
+                       myDataTable.subscribe("rowMouseoverEvent", 
myDataTable.onEventHighlightRow);
+                       myDataTable.subscribe("rowMouseoutEvent", 
myDataTable.onEventUnhighlightRow);
+               }
+
+*/
+
+
+       /*  Inline editor from 'rental'*/
+
+
        /* Start from Property*/
 
   
/********************************************************************************
@@ -252,6 +364,32 @@
        }
 
 
+               //... calback methods for handling ajax calls
+               var ajaxResponseSuccess = function(o){
+                       message_delete = 
o.responseText.toString().replace("\"","").replace("\"","");
+                       delete_content_div("message",1);
+                       if(message_delete != "")
+                       {
+                               oDiv=document.createElement("DIV");
+                               txtNode = 
document.createTextNode(message_delete);
+                               oDiv.appendChild(txtNode);
+                               oDiv.style.color = '#009900';
+                               oDiv.style.fontWeight = 'bold';
+                               div_message.appendChild(oDiv);
+                       alert(message_delete);
+                               message_delete = "";
+                       }
+
+                       var state = YAHOO.util.History.getCurrentState('state');
+                       handleHistoryNavigation(state);
+               };
+
+               var ajaxResponseFailure = function(o)
+               {
+                       alert('feil');
+               };
+
+
        var delete_record = function(sUrl)
        {
                var callback =  {       success: function(o){
@@ -399,7 +537,15 @@
 
 };
 
+       var highlightEditableCell = function(oArgs) {
+               var elCell = oArgs.target;
+               if(YAHOO.util.Dom.hasClass(elCell, "yui-dt-editable")) {
+                       myDataTable.highlightCell(elCell);
+               }
+       };
 
+
+
        onDownloadClick = function()
        {
                var state = YAHOO.util.History.getCurrentState('state');

Modified: trunk/phpgwapi/templates/base/datatable_common.xsl
===================================================================
--- trunk/phpgwapi/templates/base/datatable_common.xsl  2012-09-27 07:37:25 UTC 
(rev 10035)
+++ trunk/phpgwapi/templates/base/datatable_common.xsl  2012-09-27 07:40:41 UTC 
(rev 10036)
@@ -232,13 +232,27 @@
 
                        <xsl:choose>
                                <xsl:when test="//datatable/actions">
-                               YAHOO.portico.actions = <xsl:value-of 
select="//datatable/actions"/>;
+                                       YAHOO.portico.actions = [
+                                               <xsl:for-each 
select="//datatable/actions">
+                                                       {
+                                                               my_name: 
"<xsl:value-of select="my_name"/>",
+                                                               text: 
"<xsl:value-of select="text"/>",
+                                                               <xsl:if 
test="parameters">
+                                                                       
parameters: <xsl:value-of select="parameters"/>,
+                                                           </xsl:if>
+                                                               action: 
"<xsl:value-of select="action"/>"
+                                                       }<xsl:value-of 
select="phpgw:conditional(not(position() = last()), ',', '')"/>
+                                               </xsl:for-each>
+                                       ];
                                </xsl:when>
                                <xsl:otherwise>
                                        YAHOO.portico.actions = [];
                                </xsl:otherwise>
                        </xsl:choose>
 
+                       YAHOO.portico.editor_action = "<xsl:value-of 
select="//datatable/editor_action"/>";
+                       YAHOO.portico.disable_left_click = "<xsl:value-of 
select="//datatable/disable_left_click"/>";
+
                        YAHOO.portico.columnDefs = [
                                <xsl:for-each select="//datatable/field">
                                        {
@@ -254,6 +268,9 @@
                                                <xsl:if test="formatter">
                                                formatter: <xsl:value-of 
select="formatter"/>,
                                            </xsl:if>
+                                               <xsl:if test="editor">
+                                               editor: <xsl:value-of 
select="editor"/>,
+                                           </xsl:if>
                                                className: "<xsl:value-of 
select="className"/>"
                                        }<xsl:value-of 
select="phpgw:conditional(not(position() = last()), ',', '')"/>
                                </xsl:for-each>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]