changeset 3752:1e5bb8ed77d6 beta

index: always use lightweight - there shouldn't be any reason not to
author Mads Kiilerich <madski@unity3d.com>
date Mon, 08 Apr 2013 17:57:58 +0200
parents 78c7e8efe658
children 7b5bf8e01325
files rhodecode/controllers/admin/repos_groups.py rhodecode/controllers/admin/settings.py rhodecode/controllers/home.py rhodecode/lib/base.py rhodecode/model/forms.py rhodecode/templates/admin/settings/settings.html rhodecode/templates/index_base.html rhodecode/tests/functional/test_home.py
diffstat 8 files changed, 35 insertions(+), 232 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos_groups.py	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/controllers/admin/repos_groups.py	Mon Apr 08 17:57:58 2013 +0200
@@ -360,19 +360,15 @@
             .filter(RepoGroup.group_parent_id == c.group.group_id).all()
         c.groups = self.scm_model.get_repos_groups(groups)
 
-        if not c.visual.lightweight_dashboard:
-            c.repos_list = self.scm_model.get_repos(all_repos=gr_filter)
-        ## lightweight version of dashboard
-        else:
-            c.repos_list = Repository.query()\
-                            .filter(Repository.group_id == c.group.group_id)\
-                            .order_by(func.lower(Repository.repo_name))\
-                            .all()
+        c.repos_list = Repository.query()\
+                        .filter(Repository.group_id == c.group.group_id)\
+                        .order_by(func.lower(Repository.repo_name))\
+                        .all()
 
-            repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
-                                                       admin=False)
-            #json used to render the grid
-            c.data = json.dumps(repos_data)
+        repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
+                                                   admin=False)
+        #json used to render the grid
+        c.data = json.dumps(repos_data)
 
         return render('admin/repos_groups/repos_groups.html')
 
--- a/rhodecode/controllers/admin/settings.py	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/controllers/admin/settings.py	Mon Apr 08 17:57:58 2013 +0200
@@ -198,11 +198,6 @@
                     form_result['rhodecode_stylify_metatags']
                 Session().add(sett3)
 
-                sett4 = RhodeCodeSetting.get_by_name_or_create('lightweight_dashboard')
-                sett4.app_settings_value = \
-                    form_result['rhodecode_lightweight_dashboard']
-                Session().add(sett4)
-
                 sett4 = RhodeCodeSetting.get_by_name_or_create('repository_fields')
                 sett4.app_settings_value = \
                     form_result['rhodecode_repository_fields']
--- a/rhodecode/controllers/home.py	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/controllers/home.py	Mon Apr 08 17:57:58 2013 +0200
@@ -52,19 +52,15 @@
         c.groups = self.scm_model.get_repos_groups()
         c.group = None
 
-        if not c.visual.lightweight_dashboard:
-            c.repos_list = self.scm_model.get_repos()
-        ## lightweight version of dashboard
-        else:
-            c.repos_list = Repository.query()\
-                            .filter(Repository.group_id == None)\
-                            .order_by(func.lower(Repository.repo_name))\
-                            .all()
+        c.repos_list = Repository.query()\
+                        .filter(Repository.group_id == None)\
+                        .order_by(func.lower(Repository.repo_name))\
+                        .all()
 
-            repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
-                                                       admin=False)
-            #json used to render the grid
-            c.data = json.dumps(repos_data)
+        repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
+                                                   admin=False)
+        #json used to render the grid
+        c.data = json.dumps(repos_data)
 
         return render('/index.html')
 
--- a/rhodecode/lib/base.py	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/lib/base.py	Mon Apr 08 17:57:58 2013 +0200
@@ -271,8 +271,7 @@
         c.visual.show_public_icon = str2bool(rc_config.get('rhodecode_show_public_icon'))
         c.visual.show_private_icon = str2bool(rc_config.get('rhodecode_show_private_icon'))
         c.visual.stylify_metatags = str2bool(rc_config.get('rhodecode_stylify_metatags'))
-        c.visual.lightweight_dashboard = str2bool(rc_config.get('rhodecode_lightweight_dashboard'))
-        c.visual.lightweight_dashboard_items = safe_int(config.get('dashboard_items', 100))
+        c.visual.dashboard_items = safe_int(config.get('dashboard_items', 100))
         c.visual.repository_fields = str2bool(rc_config.get('rhodecode_repository_fields'))
         c.repo_name = get_repo_slug(request)  # can be empty
         c.backends = BACKENDS.keys()
--- a/rhodecode/model/forms.py	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/model/forms.py	Mon Apr 08 17:57:58 2013 +0200
@@ -282,7 +282,6 @@
         rhodecode_show_private_icon = v.StringBoolean(if_missing=False)
         rhodecode_stylify_metatags = v.StringBoolean(if_missing=False)
 
-        rhodecode_lightweight_dashboard = v.StringBoolean(if_missing=False)
         rhodecode_repository_fields = v.StringBoolean(if_missing=False)
         rhodecode_lightweight_journal = v.StringBoolean(if_missing=False)
 
--- a/rhodecode/templates/admin/settings/settings.html	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/templates/admin/settings/settings.html	Mon Apr 08 17:57:58 2013 +0200
@@ -130,12 +130,6 @@
                 </div>
                 <div class="checkboxes">
                     <div class="checkbox">
-                        ${h.checkbox('rhodecode_lightweight_dashboard','True')}
-                        <label for="rhodecode_lightweight_dashboard">${_('Use lightweight dashboard')}</label>
-                    </div>
-                </div>
-                <div class="checkboxes">
-                    <div class="checkbox">
                         ${h.checkbox('rhodecode_repository_fields','True')}
                         <label for="rhodecode_repository_fields">${_('Use repository extra fields')}</label>
                     </div>
--- a/rhodecode/templates/index_base.html	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/templates/index_base.html	Mon Apr 08 17:57:58 2013 +0200
@@ -70,160 +70,13 @@
             <div id="welcome" style="display:none;text-align:center">
                 <h1><a href="${h.url('home')}">${c.rhodecode_name} ${c.rhodecode_version}</a></h1>
             </div>
-             <%cnt=0%>
-             <%namespace name="dt" file="/data_table/_dt_elements.html"/>
-            % if not c.visual.lightweight_dashboard:
-              ## old full detailed version
-            <div id='repos_list_wrap' class="yui-skin-sam">
-            <table id="repos_list">
-            <thead>
-                <tr>
-                    <th class="left"></th>
-                    <th class="left">${_('Name')}</th>
-                    <th class="left">${_('Description')}</th>
-                    <th class="left">${_('Last change')}</th>
-                    <th class="left">${_('Tip')}</th>
-                    <th class="left">${_('Owner')}</th>
-                    <th class="left">${_('Atom')}</th>
-                </tr>
-            </thead>
-            <tbody>
-            %for cnt,repo in enumerate(c.repos_list):
-                <tr class="parity${(cnt+1)%2}">
-                    ##QUICK MENU
-                    <td class="quick_repo_menu">
-                      ${dt.quick_menu(repo['name'])}
-                    </td>
-                    ##REPO NAME AND ICONS
-                    <td class="reponame">
-                      ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],h.AttributeDict(repo['dbrepo_fork']),pageargs.get('short_repo_names'))}
-                    </td>
-                    ##DESCRIPTION
-                    <td><span class="tooltip" title="${h.tooltip(repo['description'])}">
-                       %if c.visual.stylify_metatags:
-                       ${h.urlify_text(h.desc_stylize(h.truncate(repo['description'],60)))}</span>
-                       %else:
-                       ${h.truncate(repo['description'],60)}</span>
-                       %endif
-                    </td>
-                    ##LAST CHANGE DATE
-                    <td>
-                      ${dt.last_change(repo['last_change'])}
-                    </td>
-                    ##LAST REVISION
-                    <td>
-                        ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])}
-                    </td>
-                    ##
-                    <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
-                    <td>
-                      ${dt.atom(repo['name'])}
-                    </td>
-                </tr>
-            %endfor
-            </tbody>
-            </table>
-            </div>
-            % else:
-              ## lightweight version
-                <div class="yui-skin-sam" id="repos_list_wrap"></div>
-                <div id="user-paginator" style="padding: 0px 0px 0px 0px"></div>
-            % endif
+            <%cnt=0%>
+            <%namespace name="dt" file="/data_table/_dt_elements.html"/>
+            <div class="yui-skin-sam" id="repos_list_wrap"></div>
+            <div id="user-paginator" style="padding: 0px 0px 0px 0px"></div>
         </div>
     </div>
-    % if not c.visual.lightweight_dashboard:
-    <script>
-      YUD.get('repo_count').innerHTML = ${cnt+1 if cnt else 0};
 
-      // groups table sorting
-      var myColumnDefs = [
-          {key:"name",label:"${_('Group name')}",sortable:true,
-              sortOptions: { sortFunction: groupNameSort }},
-          {key:"desc",label:"${_('Description')}",sortable:true},
-      ];
-
-      var myDataSource = new YAHOO.util.DataSource(YUD.get("groups_list"));
-
-      myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
-      myDataSource.responseSchema = {
-          fields: [
-              {key:"name"},
-              {key:"desc"},
-          ]
-      };
-
-      var myDataTable = new YAHOO.widget.DataTable("groups_list_wrap", myColumnDefs, myDataSource,{
-          sortedBy:{key:"name",dir:"asc"},
-          paginator: new YAHOO.widget.Paginator({
-              rowsPerPage: 50,
-              alwaysVisible: false,
-              template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
-              pageLinks: 5,
-              containerClass: 'pagination-wh',
-              currentPageClass: 'pager_curpage',
-              pageLinkClass: 'pager_link',
-              nextPageLinkLabel: '&gt;',
-              previousPageLinkLabel: '&lt;',
-              firstPageLinkLabel: '&lt;&lt;',
-              lastPageLinkLabel: '&gt;&gt;',
-              containers:['group-user-paginator']
-          }),
-          MSG_SORTASC:"${_('Click to sort ascending')}",
-          MSG_SORTDESC:"${_('Click to sort descending')}"
-      });
-
-      // main table sorting
-      var myColumnDefs = [
-          {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
-          {key:"name",label:"${_('Name')}",sortable:true,
-              sortOptions: { sortFunction: nameSort }},
-          {key:"desc",label:"${_('Description')}",sortable:true},
-          {key:"last_change",label:"${_('Last Change')}",sortable:true,
-              sortOptions: { sortFunction: ageSort }},
-          {key:"tip",label:"${_('Tip')}",sortable:true,
-              sortOptions: { sortFunction: revisionSort }},
-          {key:"owner",label:"${_('Owner')}",sortable:true},
-          {key:"atom",label:"",sortable:false},
-      ];
-
-      var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list"));
-
-      myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
-
-      myDataSource.responseSchema = {
-          fields: [
-              {key:"menu"},
-              //{key:"raw_name"},
-              {key:"name"},
-              {key:"desc"},
-              {key:"last_change"},
-              {key:"tip"},
-              {key:"owner"},
-              {key:"atom"},
-          ]
-      };
-
-      var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,
-              {
-               sortedBy:{key:"name",dir:"asc"},
-               MSG_SORTASC:"${_('Click to sort ascending')}",
-               MSG_SORTDESC:"${_('Click to sort descending')}",
-               MSG_EMPTY:"${_('No records found.')}",
-               MSG_ERROR:"${_('Data error.')}",
-               MSG_LOADING:"${_('Loading...')}",
-              }
-      );
-      myDataTable.subscribe('postRenderEvent',function(oArgs) {
-          tooltip_activate();
-          quick_repo_menu();
-          var func = function(node){
-              return node.parentNode.parentNode.parentNode.parentNode;
-          }
-          q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func);
-      });
-
-    </script>
-    % else:
       <script>
         var data = ${c.data|n};
         var myDataSource = new YAHOO.util.DataSource(data);
@@ -279,7 +132,7 @@
         var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
           sortedBy:{key:"name",dir:"asc"},
           paginator: new YAHOO.widget.Paginator({
-              rowsPerPage: ${c.visual.lightweight_dashboard_items},
+              rowsPerPage: ${c.visual.dashboard_items},
               alwaysVisible: false,
               template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
               pageLinks: 5,
@@ -336,4 +189,3 @@
             filterTimeout = setTimeout(updateFilter,600);
         });
       </script>
-    % endif
--- a/rhodecode/tests/functional/test_home.py	Mon Apr 15 01:46:32 2013 +0200
+++ b/rhodecode/tests/functional/test_home.py	Mon Apr 08 17:57:58 2013 +0200
@@ -17,19 +17,22 @@
         response = self.app.get(url(controller='home', action='index'))
         #if global permission is set
         response.mustcontain('Add repository')
-        response.mustcontain('href="/%s"' % HG_REPO)
+        # html in javascript variable:
+        response.mustcontain("""var data = {"totalRecords": %s"""
+                             % len(Repository.getAll()))
+        response.mustcontain(r'href=\"/%s\"' % HG_REPO)
 
-        response.mustcontain("""<img class="icon" title="Mercurial repository" """
-                        """alt="Mercurial repository" src="/images/icons/hg"""
-                        """icon.png"/>""")
-        response.mustcontain("""<img class="icon" title="Public repository" """
-                        """alt="Public repository" src="/images/icons/lock_"""
-                        """open.png"/>""")
+        response.mustcontain(r"""<img class=\"icon\" title=\"Mercurial repository\" """
+                        r"""alt=\"Mercurial repository\" src=\"/images/icons/hg"""
+                        r"""icon.png\"/>""")
+        response.mustcontain(r"""<img class=\"icon\" title=\"Public repository\" """
+                        r"""alt=\"Public repository\" src=\"/images/icons/lock_"""
+                        r"""open.png\"/>""")
 
         response.mustcontain(
-"""<a title="Marcin Kuzminski &amp;lt;marcin@python-works.com&amp;gt;:\n
-merge" class="tooltip" href="/vcs_test_hg/changeset/27cd5cce30c96924232"""
-"""dffcd24178a07ffeb5dfc">r173:27cd5cce30c9</a>"""
+r"""<a title=\"Marcin Kuzminski &amp;lt;marcin@python-works.com&amp;gt;:\n\n"""
+r"""merge\" class=\"tooltip\" href=\"/vcs_test_hg/changeset/27cd5cce30c96924232"""
+r"""dffcd24178a07ffeb5dfc\">r173:27cd5cce30c9</a>"""
 )
 
     def test_repo_summary_with_anonymous_access_disabled(self):
@@ -66,22 +69,6 @@
             Session().add(anon)
             Session().commit()
 
-    def _set_l_dash(self, set_to):
-        self.app.post(url('admin_setting', setting_id='visual'),
-                      params=dict(_method='put',
-                                  rhodecode_lightweight_dashboard=set_to,))
-
-    def test_index_with_lightweight_dashboard(self):
-        self.log_user()
-        self._set_l_dash(True)
-
-        try:
-            response = self.app.get(url(controller='home', action='index'))
-            response.mustcontain("""var data = {"totalRecords": %s"""
-                                 % len(Repository.getAll()))
-        finally:
-            self._set_l_dash(False)
-
     def test_index_page_on_groups(self):
         self.log_user()
         gr = fixture.create_group('gr1')
@@ -94,18 +81,3 @@
             RepoModel().delete('gr1/repo_in_group')
             ReposGroupModel().delete(repos_group='gr1', force_delete=True)
             Session().commit()
-
-    def test_index_page_on_groups_with_lightweight_dashboard(self):
-        self.log_user()
-        self._set_l_dash(True)
-        fixture.create_repo(name='gr1/repo_in_group',
-                            repos_group=fixture.create_group('gr1'))
-        response = self.app.get(url('repos_group_home', group_name='gr1'))
-
-        try:
-            response.mustcontain("""gr1/repo_in_group""")
-        finally:
-            self._set_l_dash(False)
-            RepoModel().delete('gr1/repo_in_group')
-            ReposGroupModel().delete(repos_group='gr1', force_delete=True)
-            Session().commit()