[ckan-changes] commit/ckan: 3 new changesets

Bitbucket commits-noreply at bitbucket.org
Tue Sep 20 17:29:15 UTC 2011


3 new changesets in ckan:

http://bitbucket.org/okfn/ckan/changeset/d23bb93dafd3/
changeset:   d23bb93dafd3
branch:      feature-1351-user-preview
user:        zephod
date:        2011-09-20 19:26:03
summary:     [ux,user/edit][l]: Fixed the user edit form; stripped preview functionality from front- and back-end.
affected #:  9 files (-1 bytes)

--- a/ckan/controllers/user.py	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/controllers/user.py	Tue Sep 20 18:26:03 2011 +0100
@@ -169,7 +169,6 @@
     def edit(self, id=None, data=None, errors=None, error_summary=None):
         context = {'model': model, 'session': model.Session,
                    'user': c.user or c.author,
-                   'preview': 'preview' in request.params,
                    'save': 'save' in request.params,
                    'schema': self._edit_form_to_db_schema(),
                    }
@@ -180,7 +179,7 @@
                 abort(400, _('No user specified'))
         data_dict = {'id': id}
 
-        if (context['save'] or context['preview']) and not data:
+        if (context['save']) and not data:
             return self._save_edit(id, context)
 
         try:
@@ -223,15 +222,6 @@
             data_dict['id'] = id
             user = get_action('user_update')(context, data_dict)
 
-            if context['preview']:
-                about = request.params.getone('about')
-                c.preview = self._format_about(about)
-                c.user_about = about
-                c.full_name = request.params.get('fullname','')
-                c.email = request.params.getone('email')
-
-                return self.edit(id, data_dict)
-
             h.redirect_to(controller='user', action='read', id=user['id'])
         except NotAuthorized:
             abort(401, _('Unauthorized to edit user %s') % id)


--- a/ckan/logic/action/update.py	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/logic/action/update.py	Tue Sep 20 18:26:03 2011 +0100
@@ -339,7 +339,6 @@
 
     model = context['model']
     user = context['user']
-    preview = context.get('preview', False)
     schema = context.get('schema') or default_update_user_schema() 
     id = data_dict['id']
 
@@ -357,11 +356,8 @@
 
     user = user_dict_save(data, context)
     
-    if not preview:
-        model.repo.commit()        
-        return user_dictize(user, context)
-
-    return data
+    model.repo.commit()        
+    return user_dictize(user, context)
 
 ## Modifications for rest api
 


--- a/ckan/public/css/style.css	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/public/css/style.css	Tue Sep 20 18:26:03 2011 +0100
@@ -789,6 +789,7 @@
   -moz-border-radius: 5px;
   border: 1px solid #CCC;
   padding: 0 5px 5px 10px;
+  width: 32em;
 }
 
 div.markdown-preview {
@@ -1081,21 +1082,21 @@
 /* = Twitter.Bootstrap Form Buttons = */
 /* ================================== */
 div.form-submit {
-    background: #eee;
-    padding: 20px;
-    margin-bottom: 8px;
-    border: 1px solid #ccc;
-    border-left: none;
-    border-right: none;
-    height: 60px;
+  background: #eee;
+  padding: 20px;
+  margin-bottom: 8px;
+  border: 1px solid #ccc;
+  border-left: none;
+  border-right: none;
 }
-
 div.form-submit p.hints {
-    display: block;
-    width: 50%;
-    float: right;
+  width: 50%;
+  float: right;
+  margin: 0;
 }
-
+div.clear {
+  clear: both;
+}
 
 .pretty-button {
   cursor: pointer;


--- a/ckan/public/scripts/application.js	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/public/scripts/application.js	Tue Sep 20 18:26:03 2011 +0100
@@ -23,16 +23,14 @@
       $('#save').val("Add Dataset");
     }
 
+    // Buttons with href-action should navigate when clicked
+    $('input.href-action').click(function(e) {
+      e.preventDefault();
+      window.location = ($(e.target).attr('action'));
+    });
+    
     var isDatasetEdit = $('body.package.edit').length > 0;
     if (isDatasetEdit) {
-      // Set up the cancel button
-      $('input#cancel').show();
-      $('input#cancel').click(function(e) {
-        e.preventDefault();
-        window.location = ($(e.target).attr('action'));
-      });
-
-
       // Selectively enable the upload button
       var storageEnabled = $.inArray('storage',CKAN.plugins)>=0;
       if (storageEnabled) {


--- a/ckan/templates/package/edit_form.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/package/edit_form.html	Tue Sep 20 18:26:03 2011 +0100
@@ -25,7 +25,6 @@
       </div><div class="submit">
-        <input name="preview" type="submit" value="Preview" />
         ${h.submit('save', _('Save'))}
       </div>
 


--- a/ckan/templates/package/new_package_form.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/package/new_package_form.html	Tue Sep 20 18:26:03 2011 +0100
@@ -257,14 +257,15 @@
 </div><div class="form-submit">
+  <input id="save" tabindex="99" class="pretty-button primary" name="save" type="submit" value="Save Changes" />
+  <py:if test="c.pkg">
+    <input id="cancel" tabindex="100" class="pretty-button href-action" name="cancel" type="reset" value="Cancel" action="${h.url_for(controller='package', action='read', id=c.pkg.name)}" />
+  </py:if><p class="hints"><strong>Important:</strong> By submitting content, you agree to release your contributions
     under the <a href="http://opendatacommons.org/licenses/odbl/1.0/">Open Database License</a>. Please <strong>refrain</strong> from editing this page if you are <strong>not</strong> happy to do this.
   </p>
-  <input id="save" tabindex="99" class="pretty-button primary" name="save" type="submit" value="Save Changes" />
-  <py:if test="c.pkg">
-    <input id="cancel" tabindex="100" class="pretty-button" name="cancel" type="reset" value="Cancel" action="${h.url_for(controller='package', action='read', id=c.pkg.name)}" />
-  </py:if>
+  <div class="clear"></div></div>
 
 


--- a/ckan/templates/user/edit.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/user/edit.html	Tue Sep 20 18:26:03 2011 +0100
@@ -9,49 +9,6 @@
   </py:def><div py:match="content">
-    <a href="#preview" py:if="c.preview">(skip to preview)</a>
-
-    <form id="user-edit" action="" method="post" class="simple-form" 
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude"
-      >
-      <fieldset>
-        <legend>Base details</legend>
-        <label for="fullname">Full name:</label>
-        <input name="fullname" value="${c.user_fullname}" /><br/>
-         
-        <label for="email">E-Mail:</label>
-        <input name="email" value="${c.user_email}" /><br/>
-      </fieldset>
-      <fieldset>
-        <legend>Change your password</legend>
-        <label for="password1">Password:</label>
-        <input type="password" name="password1" value="" />
-        <br/>
-        <label for="password2">Password (repeat):</label>
-        <input type="password" name="password2" value="" />
-        <br/>
-      </fieldset>
-      <label for="about">About user:</label>
-      <textarea id="about" rows="5" name="about" cols="60">${c.user_about}</textarea>
-      <p class="small" i18n:msg="">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</p>
-
-      <div>
-        <input name="preview" type="submit" value="Preview" />
-        ${h.submit('save', _('Save'))}
-      </div>
-    </form>
-
-
-    <div id="preview" style="margin-left: 20px;" py:if="c.preview">
-      <hr />
-      <h2>Preview</h2>
-      <h4>Full name: ${c.full_name}</h4>
-      <div style="border: 2px dashed red; padding: 5px;"> 
-        ${c.preview}
-      </div>
-    </div>
-
     ${Markup(c.form)}
   </div>
 


--- a/ckan/templates/user/edit_user_form.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/user/edit_user_form.html	Tue Sep 20 18:26:03 2011 +0100
@@ -19,6 +19,19 @@
      
     <dt><label for="email">E-Mail:</label></dt><dd><input type="text" name="email" value="${data.get('email','')}" /></dd>
+    
+    <dt><label for="about">About:</label></dt>
+    <dd class="description-field">
+      <div class="markdown-editor">
+        <ul class="tabs">
+          <li><a href="#" action="write" class="selected">Write</a></li>
+          <li><a href="#" action="preview">Preview</a></li>
+        </ul>
+        <textarea class="markdown-input" tabindex="3" name="about" id="about" placeholder="A little about you...">${data.get('about','')}</textarea>
+        <div class="markdown-preview" style="display: none;"></div>
+        <span class="hints">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</span>
+      </div>
+    </dd></dl></fieldset><fieldset>
@@ -30,13 +43,9 @@
     <dd><input type="password" name="password2" value="" /></dd></dl></fieldset>
-  <label for="about">About user:</label>
-  <textarea id="about" rows="5" name="about" cols="60">${data.get('about','')}</textarea>
-  <p class="small" i18n:msg="">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</p>
-
-  <div>
-    <input name="preview" type="submit" value="Preview" />
-    ${h.submit('save', _('Save'))}
+  <div class="form-submit">
+    <input id="save" class="pretty-button primary" name="save" type="submit" value="Save Changes" />
+    <input id="cancel" class="pretty-button href-action" name="cancel" type="reset" value="Cancel" action="${h.url_for(controller='user', action='read')}" /></div></form>
 


--- a/ckan/tests/functional/test_user.py	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/tests/functional/test_user.py	Tue Sep 20 18:26:03 2011 +0100
@@ -482,13 +482,6 @@
         fv['about'] = new_about
         fv['password1'] = new_password
         fv['password2'] = new_password
-        res = fv.submit('preview', extra_environ={'REMOTE_USER':username})
-        
-        # preview
-        main_res = self.main_div(res)
-        assert 'Edit User: testedit' in main_res, main_res
-        in_preview = main_res[main_res.find('Preview'):]
-        assert new_about in in_preview, in_preview
 
         # commit
         res = fv.submit('save', extra_environ={'REMOTE_USER':username})      
@@ -533,14 +526,6 @@
         fv['password1'] = ''
         fv['password2'] = ''
 
-        res = fv.submit('preview', extra_environ={'REMOTE_USER':username})
-        
-        # preview
-        main_res = self.main_div(res)
-        assert 'Edit User: testedit2' in main_res, main_res
-        in_preview = main_res[main_res.find('Preview'):]
-        assert new_about in in_preview, in_preview
-
         # commit
         res = fv.submit('save', extra_environ={'REMOTE_USER':username})      
         assert res.status == 302, self.main_div(res).encode('utf8')
@@ -603,7 +588,6 @@
         assert 'Edit User: ' in main_res, main_res
         assert 'Test About <a href="http://spamsite.net">spamsite</a>' in main_res, main_res
         fv = res.forms['user-edit']
-        res = fv.submit('preview', extra_environ={'REMOTE_USER':username})
         # commit
         res = fv.submit('save', extra_environ={'REMOTE_USER':username})      
         assert res.status == 200, res.status


http://bitbucket.org/okfn/ckan/changeset/ce41c8958c66/
changeset:   ce41c8958c66
branch:      feature-1351-user-preview
user:        zephod
date:        2011-09-20 19:26:20
summary:     [close-branch]:
affected #:  0 files (-1 bytes)

http://bitbucket.org/okfn/ckan/changeset/4eebcb118b09/
changeset:   4eebcb118b09
user:        zephod
date:        2011-09-20 19:27:43
summary:     [merge,from-branch]: Pulling in tkt 1351; fixes to user page
affected #:  9 files (-1 bytes)

--- a/ckan/controllers/user.py	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/controllers/user.py	Tue Sep 20 18:27:43 2011 +0100
@@ -169,7 +169,6 @@
     def edit(self, id=None, data=None, errors=None, error_summary=None):
         context = {'model': model, 'session': model.Session,
                    'user': c.user or c.author,
-                   'preview': 'preview' in request.params,
                    'save': 'save' in request.params,
                    'schema': self._edit_form_to_db_schema(),
                    }
@@ -180,7 +179,7 @@
                 abort(400, _('No user specified'))
         data_dict = {'id': id}
 
-        if (context['save'] or context['preview']) and not data:
+        if (context['save']) and not data:
             return self._save_edit(id, context)
 
         try:
@@ -223,15 +222,6 @@
             data_dict['id'] = id
             user = get_action('user_update')(context, data_dict)
 
-            if context['preview']:
-                about = request.params.getone('about')
-                c.preview = self._format_about(about)
-                c.user_about = about
-                c.full_name = request.params.get('fullname','')
-                c.email = request.params.getone('email')
-
-                return self.edit(id, data_dict)
-
             h.redirect_to(controller='user', action='read', id=user['id'])
         except NotAuthorized:
             abort(401, _('Unauthorized to edit user %s') % id)


--- a/ckan/logic/action/update.py	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/logic/action/update.py	Tue Sep 20 18:27:43 2011 +0100
@@ -339,7 +339,6 @@
 
     model = context['model']
     user = context['user']
-    preview = context.get('preview', False)
     schema = context.get('schema') or default_update_user_schema() 
     id = data_dict['id']
 
@@ -357,11 +356,8 @@
 
     user = user_dict_save(data, context)
     
-    if not preview:
-        model.repo.commit()        
-        return user_dictize(user, context)
-
-    return data
+    model.repo.commit()        
+    return user_dictize(user, context)
 
 ## Modifications for rest api
 


--- a/ckan/public/css/style.css	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/public/css/style.css	Tue Sep 20 18:27:43 2011 +0100
@@ -789,6 +789,7 @@
   -moz-border-radius: 5px;
   border: 1px solid #CCC;
   padding: 0 5px 5px 10px;
+  width: 32em;
 }
 
 div.markdown-preview {
@@ -1081,21 +1082,21 @@
 /* = Twitter.Bootstrap Form Buttons = */
 /* ================================== */
 div.form-submit {
-    background: #eee;
-    padding: 20px;
-    margin-bottom: 8px;
-    border: 1px solid #ccc;
-    border-left: none;
-    border-right: none;
-    height: 60px;
+  background: #eee;
+  padding: 20px;
+  margin-bottom: 8px;
+  border: 1px solid #ccc;
+  border-left: none;
+  border-right: none;
 }
-
 div.form-submit p.hints {
-    display: block;
-    width: 50%;
-    float: right;
+  width: 50%;
+  float: right;
+  margin: 0;
 }
-
+div.clear {
+  clear: both;
+}
 
 .pretty-button {
   cursor: pointer;


--- a/ckan/public/scripts/application.js	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/public/scripts/application.js	Tue Sep 20 18:27:43 2011 +0100
@@ -23,16 +23,14 @@
       $('#save').val("Add Dataset");
     }
 
+    // Buttons with href-action should navigate when clicked
+    $('input.href-action').click(function(e) {
+      e.preventDefault();
+      window.location = ($(e.target).attr('action'));
+    });
+    
     var isDatasetEdit = $('body.package.edit').length > 0;
     if (isDatasetEdit) {
-      // Set up the cancel button
-      $('input#cancel').show();
-      $('input#cancel').click(function(e) {
-        e.preventDefault();
-        window.location = ($(e.target).attr('action'));
-      });
-
-
       // Selectively enable the upload button
       var storageEnabled = $.inArray('storage',CKAN.plugins)>=0;
       if (storageEnabled) {


--- a/ckan/templates/package/edit_form.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/package/edit_form.html	Tue Sep 20 18:27:43 2011 +0100
@@ -25,7 +25,6 @@
       </div><div class="submit">
-        <input name="preview" type="submit" value="Preview" />
         ${h.submit('save', _('Save'))}
       </div>
 


--- a/ckan/templates/package/new_package_form.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/package/new_package_form.html	Tue Sep 20 18:27:43 2011 +0100
@@ -257,14 +257,15 @@
 </div><div class="form-submit">
+  <input id="save" tabindex="99" class="pretty-button primary" name="save" type="submit" value="Save Changes" />
+  <py:if test="c.pkg">
+    <input id="cancel" tabindex="100" class="pretty-button href-action" name="cancel" type="reset" value="Cancel" action="${h.url_for(controller='package', action='read', id=c.pkg.name)}" />
+  </py:if><p class="hints"><strong>Important:</strong> By submitting content, you agree to release your contributions
     under the <a href="http://opendatacommons.org/licenses/odbl/1.0/">Open Database License</a>. Please <strong>refrain</strong> from editing this page if you are <strong>not</strong> happy to do this.
   </p>
-  <input id="save" tabindex="99" class="pretty-button primary" name="save" type="submit" value="Save Changes" />
-  <py:if test="c.pkg">
-    <input id="cancel" tabindex="100" class="pretty-button" name="cancel" type="reset" value="Cancel" action="${h.url_for(controller='package', action='read', id=c.pkg.name)}" />
-  </py:if>
+  <div class="clear"></div></div>
 
 


--- a/ckan/templates/user/edit.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/user/edit.html	Tue Sep 20 18:27:43 2011 +0100
@@ -9,49 +9,6 @@
   </py:def><div py:match="content">
-    <a href="#preview" py:if="c.preview">(skip to preview)</a>
-
-    <form id="user-edit" action="" method="post" class="simple-form" 
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude"
-      >
-      <fieldset>
-        <legend>Base details</legend>
-        <label for="fullname">Full name:</label>
-        <input name="fullname" value="${c.user_fullname}" /><br/>
-         
-        <label for="email">E-Mail:</label>
-        <input name="email" value="${c.user_email}" /><br/>
-      </fieldset>
-      <fieldset>
-        <legend>Change your password</legend>
-        <label for="password1">Password:</label>
-        <input type="password" name="password1" value="" />
-        <br/>
-        <label for="password2">Password (repeat):</label>
-        <input type="password" name="password2" value="" />
-        <br/>
-      </fieldset>
-      <label for="about">About user:</label>
-      <textarea id="about" rows="5" name="about" cols="60">${c.user_about}</textarea>
-      <p class="small" i18n:msg="">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</p>
-
-      <div>
-        <input name="preview" type="submit" value="Preview" />
-        ${h.submit('save', _('Save'))}
-      </div>
-    </form>
-
-
-    <div id="preview" style="margin-left: 20px;" py:if="c.preview">
-      <hr />
-      <h2>Preview</h2>
-      <h4>Full name: ${c.full_name}</h4>
-      <div style="border: 2px dashed red; padding: 5px;"> 
-        ${c.preview}
-      </div>
-    </div>
-
     ${Markup(c.form)}
   </div>
 


--- a/ckan/templates/user/edit_user_form.html	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/templates/user/edit_user_form.html	Tue Sep 20 18:27:43 2011 +0100
@@ -19,6 +19,19 @@
      
     <dt><label for="email">E-Mail:</label></dt><dd><input type="text" name="email" value="${data.get('email','')}" /></dd>
+    
+    <dt><label for="about">About:</label></dt>
+    <dd class="description-field">
+      <div class="markdown-editor">
+        <ul class="tabs">
+          <li><a href="#" action="write" class="selected">Write</a></li>
+          <li><a href="#" action="preview">Preview</a></li>
+        </ul>
+        <textarea class="markdown-input" tabindex="3" name="about" id="about" placeholder="A little about you...">${data.get('about','')}</textarea>
+        <div class="markdown-preview" style="display: none;"></div>
+        <span class="hints">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</span>
+      </div>
+    </dd></dl></fieldset><fieldset>
@@ -30,13 +43,9 @@
     <dd><input type="password" name="password2" value="" /></dd></dl></fieldset>
-  <label for="about">About user:</label>
-  <textarea id="about" rows="5" name="about" cols="60">${data.get('about','')}</textarea>
-  <p class="small" i18n:msg="">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</p>
-
-  <div>
-    <input name="preview" type="submit" value="Preview" />
-    ${h.submit('save', _('Save'))}
+  <div class="form-submit">
+    <input id="save" class="pretty-button primary" name="save" type="submit" value="Save Changes" />
+    <input id="cancel" class="pretty-button href-action" name="cancel" type="reset" value="Cancel" action="${h.url_for(controller='user', action='read')}" /></div></form>
 


--- a/ckan/tests/functional/test_user.py	Tue Sep 20 16:47:40 2011 +0100
+++ b/ckan/tests/functional/test_user.py	Tue Sep 20 18:27:43 2011 +0100
@@ -482,13 +482,6 @@
         fv['about'] = new_about
         fv['password1'] = new_password
         fv['password2'] = new_password
-        res = fv.submit('preview', extra_environ={'REMOTE_USER':username})
-        
-        # preview
-        main_res = self.main_div(res)
-        assert 'Edit User: testedit' in main_res, main_res
-        in_preview = main_res[main_res.find('Preview'):]
-        assert new_about in in_preview, in_preview
 
         # commit
         res = fv.submit('save', extra_environ={'REMOTE_USER':username})      
@@ -533,14 +526,6 @@
         fv['password1'] = ''
         fv['password2'] = ''
 
-        res = fv.submit('preview', extra_environ={'REMOTE_USER':username})
-        
-        # preview
-        main_res = self.main_div(res)
-        assert 'Edit User: testedit2' in main_res, main_res
-        in_preview = main_res[main_res.find('Preview'):]
-        assert new_about in in_preview, in_preview
-
         # commit
         res = fv.submit('save', extra_environ={'REMOTE_USER':username})      
         assert res.status == 302, self.main_div(res).encode('utf8')
@@ -603,7 +588,6 @@
         assert 'Edit User: ' in main_res, main_res
         assert 'Test About <a href="http://spamsite.net">spamsite</a>' in main_res, main_res
         fv = res.forms['user-edit']
-        res = fv.submit('preview', extra_environ={'REMOTE_USER':username})
         # commit
         res = fv.submit('save', extra_environ={'REMOTE_USER':username})      
         assert res.status == 200, res.status

Repository URL: https://bitbucket.org/okfn/ckan/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.




More information about the ckan-changes mailing list