浏览代码

[search] Added drag to new row

Enrico Berti 11 年之前
父节点
当前提交
dfe7d63
共有 2 个文件被更改,包括 26 次插入3 次删除
  1. 23 2
      apps/search/src/search/templates/search2.mako
  2. 3 1
      apps/search/static/js/search.ko.js

+ 23 - 2
apps/search/src/search/templates/search2.mako

@@ -227,8 +227,8 @@ ${ commonheader(_('Search'), "search", user, "80px") | n,unicode }
   <div data-bind="css: klass">
   <div data-bind="css: klass">
     <div data-bind="template: { name: 'row-template', foreach: rows}">
     <div data-bind="template: { name: 'row-template', foreach: rows}">
     </div>
     </div>
-    <div style="height: 50px; padding-left: 6px" data-bind="visible: $root.isEditing">
-      <a href="javascript:void(0)" class="btn" style="margin: 4px; margin-right: 10px" data-bind="click: addEmptyRow"><i class="fa fa-plus"></i> ${_('Row')}</a>
+    <div class="container-fluid" data-bind="visible: $root.isEditing">
+      <div data-bind="css: {'add-row': true, 'is-editing': $root.isEditing}, sortable: { data: drops, isEnabled: $root.isEditing, options: {'placeholder': 'row-highlight', 'greedy': true, 'stop': function(event, ui){$('.card-body').slideDown('fast', function(){$(window).scrollTop(lastWindowScrollPosition)});}}, dragged: function(widget){var _r = $data.addEmptyRow(); _r.addWidget(widget);$('.card-body').slideDown('fast', function(){$(window).scrollTop(lastWindowScrollPosition)});showAddFacetDemiModal(widget);viewModel.search()}}"></div>
     </div>
     </div>
   </div>
   </div>
 </script>
 </script>
@@ -1197,6 +1197,27 @@ ${ commonheader(_('Search'), "search", user, "80px") | n,unicode }
     border-bottom: 1px solid #338bb8;
     border-bottom: 1px solid #338bb8;
   }
   }
 
 
+  .add-row {
+    background-color: #EEE;
+    min-height: 40px;
+    border: 2px dashed #CCC;
+    text-align: center;
+    padding: 4px;
+  }
+
+  .add-row:before {
+    color:#CCC;
+    display: inline-block;
+    font-family: FontAwesome;
+    font-style: normal;
+    font-weight: normal;
+    font-size: 48px;
+    line-height: 1;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    content: "\f055";
+  }
+
 </style>
 </style>
 
 
 <script type="text/javascript" charset="utf-8">
 <script type="text/javascript" charset="utf-8">

+ 3 - 1
apps/search/static/js/search.ko.js

@@ -21,17 +21,19 @@ var Column = function (size, rows) {
   var self = this;
   var self = this;
   self.size = ko.observable(size);
   self.size = ko.observable(size);
   self.rows = ko.observableArray(rows);
   self.rows = ko.observableArray(rows);
+  self.drops = ko.observableArray(["temp"]);
   self.klass = ko.computed(function () {
   self.klass = ko.computed(function () {
     return "card card-home card-column span" + self.size();
     return "card card-home card-column span" + self.size();
   });
   });
   self.addEmptyRow = function () {
   self.addEmptyRow = function () {
-    self.addRow();
+    return self.addRow();
   };
   };
   self.addRow = function (row) {
   self.addRow = function (row) {
     if (typeof row == "undefined" || row == null) {
     if (typeof row == "undefined" || row == null) {
       row = new Row([]);
       row = new Row([]);
     }
     }
     self.rows.push(row);
     self.rows.push(row);
+    return row;
   };
   };
 }
 }