← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-client-web/web-piratepad into lp:openobject-client-web

 

cpa(OpenERP) has proposed merging lp:~openerp-dev/openobject-client-web/web-piratepad into lp:openobject-client-web.

Requested reviews:
  OpenERP SA's Web Client R&D (openerp-dev-web)

-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/web-piratepad/+merge/38399
Your team OpenERP SA's Web Client R&D is requested to review the proposed merge of lp:~openerp-dev/openobject-client-web/web-piratepad into lp:openobject-client-web.
=== modified file 'addons/openerp/controllers/attachment.py'
--- addons/openerp/controllers/attachment.py	2010-09-20 06:22:44 +0000
+++ addons/openerp/controllers/attachment.py	2010-10-14 09:24:48 +0000
@@ -86,7 +86,22 @@
             'datas': base64.encodestring(datas.file.read()),
         }, ctx)
         return {'id': attachment_id, 'name': datas.filename}
-
+    
+    @expose('json', methods=('POST',))
+    def save_pad(self, **kwargs):
+        params, data = TinyDict.split(cherrypy.session['params'])
+        pad_name=kwargs.get('pad_name')
+        ctx = dict(rpc.session.context,
+                   default_res_model=params.model, default_res_id=params.id,
+                   active_id=False, active_ids=[])
+        
+        pad_link = "http://piratepad.net/"+'-'.join(pad_name.split())
+        attachment_id = rpc.RPCProxy('ir.attachment').create({
+            'name': pad_name,
+            'url': pad_link,
+            }, ctx)
+        return {'id': attachment_id, 'name': pad_name, 'url': pad_link}
+    
     @expose('json', methods=('POST',))
     def remove(self, id=False, **kw):
         proxy = rpc.RPCProxy('ir.attachment')

=== modified file 'addons/openerp/static/css/screen.css'
--- addons/openerp/static/css/screen.css	2010-10-13 16:02:00 +0000
+++ addons/openerp/static/css/screen.css	2010-10-14 09:24:48 +0000
@@ -2182,10 +2182,15 @@
 button {
 }
 
-#sidebar #add-attachment {
+#sidebar #add-attachment,
+#sidebar #add-pad {
     position: absolute;
     top: 3px;
     right: 1px;
+    padding:1px 6px; 
+	line-height:14px; 
+	-moz-box-shadow: 0 0 0 transparent;
+	-webkit-box-shadow:0 0 0 transparent;
 }
 
 .attachments-a li {

=== modified file 'addons/openerp/static/javascript/form.js'
--- addons/openerp/static/javascript/form.js	2010-10-13 13:03:05 +0000
+++ addons/openerp/static/javascript/form.js	2010-10-14 09:24:48 +0000
@@ -1139,7 +1139,7 @@
  * Creates a new line in #attachments if the creation succeeds.
  */
 function createAttachment(){
-    if (!jQuery('#sidebar_attachments_datas').val()) {
+    if (!jQuery('#sidebar_pad_datas').val() && !jQuery('#sidebar_attachments_datas').val()) {
         return false;
     }
     var form = jQuery(this);
@@ -1148,18 +1148,23 @@
         success: function(data){
             var attachment_line = jQuery('<li>', {
                 'id': 'attachment_item_' + data['id'],
-                'data-id': data['id']
+                'data-id': data['id'],             
             });
-
+            
+            var url = data['url'] ? data['url'] : openobject.http.getURL('/openerp/attachment/get', {'record': data['id']});
+            
             jQuery([jQuery('<a>', {
                 'rel': 'external',
-                'href': openobject.http.getURL('/openerp/attachment/get', {
-                    'record': data['id']
-                }),
+                'href': url,
                 'class': 'attachment-file'
             }).text(data['name']), jQuery('<span>|</span>'), jQuery("<a href='#' class='close'>Close</a>")]).appendTo(attachment_line);
-
+					
             jQuery('#attachments').append(attachment_line);
+            
+            // For piratepad Links
+			if(data['url']) {
+				jQuery('#attachments [id="'+'attachment_item_'+data['id']+'"] a').attr('target', '_blank');
+			}
             form.resetForm();
             form.hide();
         }
@@ -1182,6 +1187,20 @@
     });
 }
 
+function setupPads(){
+	var padForm = jQuery('#pad-box').hide();
+	jQuery('#sidebar_pad_ok').bind('click', function(){
+		padForm.submit();
+	});
+	jQuery('#add-pad').click(function(e){
+		padForm.show();
+		e.preventDefault();
+	});
+	padForm.bind({
+		submit: createAttachment
+	});
+}
+
 function error_popup(obj){
     try {
         var error_window = window.open("", "error", "status=1, scrollbars=yes, width=550, height=400");

=== modified file 'addons/openerp/widgets/templates/sidebar.mako'
--- addons/openerp/widgets/templates/sidebar.mako	2010-10-13 12:26:08 +0000
+++ addons/openerp/widgets/templates/sidebar.mako	2010-10-14 09:24:48 +0000
@@ -43,14 +43,15 @@
     % endif
     % if view_type == 'form':
     <div class="sideheader-a">
-        <a href="#" id="add-attachment" class="button-a" style="line-height: 13px;">${_("Add")}</a>
+        <a href="#" id="add-attachment" class="button-a" style="right:40px;">${_("Add")}</a>
+        <a href="#" id="add-pad" class="button-a" >${_("Pad")}</a>
         <h2>${_("Attachments")}</h2>
     </div>
     <ul id="attachments" class="attachments-a">
         % for attachment in attachments:
             <!-- don't forget to also change jquery template in form.js/createAttachment -->
             <li id="attachment_item_${attachment['id']}" data-id="${attachment['id']}">
-                <a class="attachment-file" rel="external"
+                <a class="attachment-file" rel="external"  target="_blank"
                    href="${attachment['url'] or py.url('/openerp/attachment/get', record=attachment['id'])}">
                     ${attachment['name']}
                 </a>
@@ -66,6 +67,21 @@
         <input type="file" id="sidebar_attachments_datas" class="binary"
                name="datas" kind="binary" size="5"/>
     </form>
+    <form id="pad-box" action="/openerp/attachment/save_pad" method="post">
+        <label for="sidebar_pad_datas">${_("Name")}:</label>
+        <table width="100%">
+        	<tr>
+       			<td width=60% style="padding-right:8px;">
+        			<input type="text" id="sidebar_pad_datas" class="binary"
+               		name="pad_name" kind="url" size="5" />
+               	</td>
+            	<td>
+            		<a href="#" id="sidebar_pad_ok" class="button-a">${_("Ok")}</a>
+            	</td>
+            </tr>
+       	</table>
+	</form>
+    
     % endif
 
     <div class="sideheader-a">
@@ -116,6 +132,7 @@
 <script type="text/javascript">
     jQuery(document).ready(function() {
     	setupAttachments();
+    	setupPads();
     	jQuery('#sidebar_view_log').fancybox();
    	});
 </script>


Follow ups