foreman_datacenter 0.1.46 → 0.1.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/foreman_datacenter/datacenter.css +10 -0
- data/app/controllers/foreman_datacenter/comments_controller.rb +3 -3
- data/app/controllers/foreman_datacenter/devices_controller.rb +12 -1
- data/app/models/foreman_datacenter/device.rb +18 -0
- data/app/views/foreman_datacenter/comments/_comments.html.erb +1 -1
- data/app/views/foreman_datacenter/comments/_form.html.erb +1 -1
- data/app/views/foreman_datacenter/device_roles/show.html.erb +4 -2
- data/app/views/foreman_datacenter/device_types/show.html.erb +11 -9
- data/app/views/foreman_datacenter/devices/index.html.erb +4 -2
- data/app/views/foreman_datacenter/devices/show.html.erb +14 -5
- data/app/views/foreman_datacenter/manufacturers/show.html.erb +4 -2
- data/app/views/foreman_datacenter/platforms/show.html.erb +4 -2
- data/app/views/foreman_datacenter/rack_groups/show.html.erb +4 -2
- data/app/views/foreman_datacenter/racks/_device_position.html.erb +1 -1
- data/app/views/foreman_datacenter/racks/_unpositioned_devices.html.erb +1 -1
- data/app/views/foreman_datacenter/racks/show.html.erb +2 -1
- data/app/views/foreman_datacenter/sites/show.html.erb +5 -3
- data/config/routes.rb +1 -0
- data/lib/foreman_datacenter/version.rb +1 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8d756ec7f3c2b8d5857f2b0c9c707f600bdbafd0
         | 
| 4 | 
            +
              data.tar.gz: 81020401067611e0e976048b54210dc8e4a223c2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c2c056dc878faf80fc08592f7e909a7c0823e5b99d710c1296179f358eedeb0677c4c2d6c06f7610bb413f64fae8c373e8fac1ebe549c7855ee9071c09db7399
         | 
| 7 | 
            +
              data.tar.gz: c5d63932206c2fe0fc7cfefa06fcdb3acabe492d05e48217197bde6cdf0e235c585ad7b3dee4d4b1ea5e7e1bf4c18f0ee367603a33e2692fd9191f3028ef5708
         | 
| @@ -16,7 +16,7 @@ module ForemanDatacenter | |
| 16 16 | 
             
                def create
         | 
| 17 17 | 
             
                  @comment = @commentable.comments.new(comment_params.merge(user_id: User.current.id))
         | 
| 18 18 | 
             
                  if @comment.save
         | 
| 19 | 
            -
                    process_success :success_redirect => "/datacenter/#{@resource}/#{@id}#comment-#{@comment.id}"
         | 
| 19 | 
            +
                    process_success :success_redirect => "/datacenter/#{@resource}/#{@id}#comment-#{@comment.id}", success_msg: "Comment successfully created."
         | 
| 20 20 | 
             
                  else
         | 
| 21 21 | 
             
                    process_error :redirect => "/datacenter/#{@resource}/#{@id}", :error_msg => _("Failed: %s") % (e)
         | 
| 22 22 | 
             
                  end
         | 
| @@ -28,7 +28,7 @@ module ForemanDatacenter | |
| 28 28 | 
             
                  @submodule = parse_submodule(@comment)
         | 
| 29 29 | 
             
                  if @comment.user == @current_user or @comment.user.nil?
         | 
| 30 30 | 
             
                    if @comment.update(comment_params)
         | 
| 31 | 
            -
                      process_success :success_redirect => "/datacenter/#{@submodule}/#{@comment.commentable_id}#comment-#{@comment.id}"
         | 
| 31 | 
            +
                      process_success :success_redirect => "/datacenter/#{@submodule}/#{@comment.commentable_id}#comment-#{@comment.id}", success_msg: "Comment successfully updated."
         | 
| 32 32 | 
             
                    else
         | 
| 33 33 | 
             
                      process_error :redirect => "/datacenter/#{@submodule}/#{@comment.commentable_id}#comment-#{@comment.id}", :error_msg => _("Failed: %s") % (e)
         | 
| 34 34 | 
             
                    end
         | 
| @@ -41,7 +41,7 @@ module ForemanDatacenter | |
| 41 41 | 
             
                  @comment = Comment.find(params[:id])
         | 
| 42 42 | 
             
                  if @comment.user == @current_user or @comment.user.nil?
         | 
| 43 43 | 
             
                    if @comment.destroy
         | 
| 44 | 
            -
                      process_success :success_redirect => "/datacenter/#{@resource}/#{@id}#comment-#{@comment.id}"
         | 
| 44 | 
            +
                      process_success :success_redirect => "/datacenter/#{@resource}/#{@id}#comment-#{@comment.id}", success_msg: "Comment successfully deleted."
         | 
| 45 45 | 
             
                    else
         | 
| 46 46 | 
             
                      process_error :redirect => "/datacenter/#{@resource}/#{@id}", :error_msg => _("Failed: %s") % (e)
         | 
| 47 47 | 
             
                    end
         | 
| @@ -7,7 +7,8 @@ module ForemanDatacenter | |
| 7 7 | 
             
                include Foreman::Controller::AutoCompleteSearch
         | 
| 8 8 |  | 
| 9 9 | 
             
                before_action :set_device, only: [:update, :destroy, :inventory,
         | 
| 10 | 
            -
                                                  :destroy_interfaces, :qr_code | 
| 10 | 
            +
                                                  :destroy_interfaces, :qr_code,
         | 
| 11 | 
            +
                                                  :sync_interfaces_with_host]
         | 
| 11 12 |  | 
| 12 13 | 
             
                before_action :load_resource
         | 
| 13 14 |  | 
| @@ -107,6 +108,16 @@ module ForemanDatacenter | |
| 107 108 | 
             
                            type: 'application/pdf')
         | 
| 108 109 | 
             
                end
         | 
| 109 110 |  | 
| 111 | 
            +
                def sync_interfaces_with_host
         | 
| 112 | 
            +
                  if @device.sync_interfaces_with_host
         | 
| 113 | 
            +
                    notice("Device successfully synchronized.")
         | 
| 114 | 
            +
                    redirect_to device_url(@device)
         | 
| 115 | 
            +
                  else
         | 
| 116 | 
            +
                    error("Unsuccessful synchronization.")
         | 
| 117 | 
            +
                    redirect_to device_url(@device)
         | 
| 118 | 
            +
                  end
         | 
| 119 | 
            +
                end
         | 
| 120 | 
            +
             | 
| 110 121 | 
             
                private
         | 
| 111 122 |  | 
| 112 123 | 
             
                def set_device
         | 
| @@ -149,6 +149,24 @@ module ForemanDatacenter | |
| 149 149 | 
             
                  end
         | 
| 150 150 | 
             
                end
         | 
| 151 151 |  | 
| 152 | 
            +
                def sync_interfaces_with_host
         | 
| 153 | 
            +
                  if host
         | 
| 154 | 
            +
                    existed_names = interfaces.map(&:name)
         | 
| 155 | 
            +
                    # abort interfaces.map(&:identifier).inspect
         | 
| 156 | 
            +
                    host.interfaces.each do |interface|
         | 
| 157 | 
            +
                      unless existed_names.include?(interface.identifier)
         | 
| 158 | 
            +
                        interfaces.create(
         | 
| 159 | 
            +
                          name: interface.identifier,
         | 
| 160 | 
            +
                          form_factor: ForemanDatacenter::DeviceInterface::DEFAULT_FORM_FACTOR,
         | 
| 161 | 
            +
                          mac_address: interface.mac,
         | 
| 162 | 
            +
                          ip_address: interface.ip,
         | 
| 163 | 
            +
                          mgmt_only: interface.identifier == 'ipmi'
         | 
| 164 | 
            +
                        )
         | 
| 165 | 
            +
                      end
         | 
| 166 | 
            +
                    end
         | 
| 167 | 
            +
                  end
         | 
| 168 | 
            +
                end
         | 
| 169 | 
            +
             | 
| 152 170 | 
             
                def create_console_ports
         | 
| 153 171 | 
             
                  device_type.console_port_templates.each do |template|
         | 
| 154 172 | 
             
                    console_ports.create(template.attrs_to_copy)
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            <% stylesheet 'foreman_datacenter/comments' %>
         | 
| 2 2 |  | 
| 3 | 
            -
            <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 3 | 
            +
            <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 4 4 | 
             
              <% if comments == [] %>
         | 
| 5 5 | 
             
                <div class="col-md-2">
         | 
| 6 6 | 
             
                  <small>No comments yet...</small>
         | 
| @@ -42,7 +42,7 @@ | |
| 42 42 | 
             
                </div>
         | 
| 43 43 | 
             
              <% end %>
         | 
| 44 44 | 
             
            <% else %>
         | 
| 45 | 
            -
              <%= form_for [@commentable, @comment], url: "/datacenter/devices/#{@commentable.id}/comments" do |f| %>
         | 
| 45 | 
            +
              <%= form_for [@commentable, @comment], url: "/datacenter/devices/#{@commentable.id}/comments", html: {class: "form-horizontal well nonborder"} do |f| %>
         | 
| 46 46 | 
             
                <div class="clearfix">
         | 
| 47 47 | 
             
                  <div class="form-group">
         | 
| 48 48 | 
             
                    <div class="col-md-5">
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            <% title h(@device_role.name) %>
         | 
| 2 4 |  | 
| 3 5 | 
             
            <% title_actions display_link_if_authorized(
         | 
| @@ -20,7 +22,7 @@ | |
| 20 22 | 
             
                  <div class="panel-heading">
         | 
| 21 23 | 
             
                    <strong>Device role</strong>
         | 
| 22 24 | 
             
                  </div>
         | 
| 23 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 25 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 24 26 | 
             
                    <tbody>
         | 
| 25 27 | 
             
                    <tr>
         | 
| 26 28 | 
             
                      <td>Name</td>
         | 
| @@ -47,7 +49,7 @@ | |
| 47 49 | 
             
                <!-- Stats -->
         | 
| 48 50 | 
             
                <div class="panel panel-default">
         | 
| 49 51 | 
             
                  <div class="panel-heading"><strong>Stats</strong></div>
         | 
| 50 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 52 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 51 53 | 
             
                    <tr>
         | 
| 52 54 | 
             
                      <td>Devices</td>
         | 
| 53 55 | 
             
                      <td><%= @device_role.devices.length %></td>
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            <% title h(@device_type.model) %>
         | 
| 2 4 |  | 
| 3 5 | 
             
            <% title_actions display_link_if_authorized(
         | 
| @@ -20,7 +22,7 @@ | |
| 20 22 | 
             
                  <div class="panel-heading">
         | 
| 21 23 | 
             
                    <strong>Chassis</strong>
         | 
| 22 24 | 
             
                  </div>
         | 
| 23 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 25 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 24 26 | 
             
                    <tbody>
         | 
| 25 27 | 
             
                    <tr>
         | 
| 26 28 | 
             
                      <td>Manufacturer</td>
         | 
| @@ -47,7 +49,7 @@ | |
| 47 49 | 
             
                  <div class="panel-heading">
         | 
| 48 50 | 
             
                    <strong>Function</strong>
         | 
| 49 51 | 
             
                  </div>
         | 
| 50 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 52 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 51 53 | 
             
                    <tbody>
         | 
| 52 54 | 
             
                    <tr>
         | 
| 53 55 | 
             
                      <td class="col-sm-3 text-right">
         | 
| @@ -139,7 +141,7 @@ | |
| 139 141 | 
             
                  <% if @device_type.console_port_templates.empty? %>
         | 
| 140 142 | 
             
                      <div class="panel-body">None</div>
         | 
| 141 143 | 
             
                  <% else %>
         | 
| 142 | 
            -
                      <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 144 | 
            +
                      <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 143 145 | 
             
                        <tbody>
         | 
| 144 146 | 
             
                        <% @device_type.console_port_templates.each do |console_port| %>
         | 
| 145 147 | 
             
                            <tr>
         | 
| @@ -170,7 +172,7 @@ | |
| 170 172 | 
             
                  <% if @device_type.power_port_templates.empty? %>
         | 
| 171 173 | 
             
                      <div class="panel-body">None</div>
         | 
| 172 174 | 
             
                  <% else %>
         | 
| 173 | 
            -
                      <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 175 | 
            +
                      <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 174 176 | 
             
                        <tbody>
         | 
| 175 177 | 
             
                        <% @device_type.power_port_templates.each do |power_port| %>
         | 
| 176 178 | 
             
                            <tr>
         | 
| @@ -201,7 +203,7 @@ | |
| 201 203 | 
             
                  <% if @device_type.management_interfaces.empty? %>
         | 
| 202 204 | 
             
                      <div class="panel-body">None</div>
         | 
| 203 205 | 
             
                  <% else %>
         | 
| 204 | 
            -
                      <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 206 | 
            +
                      <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 205 207 | 
             
                        <tbody>
         | 
| 206 208 | 
             
                        <% @device_type.management_interfaces.each do |management_interface| %>
         | 
| 207 209 | 
             
                            <tr>
         | 
| @@ -235,7 +237,7 @@ | |
| 235 237 | 
             
                      <% if @device_type.device_bay_templates.empty? %>
         | 
| 236 238 | 
             
                          <div class="panel-body">None</div>
         | 
| 237 239 | 
             
                      <% else %>
         | 
| 238 | 
            -
                          <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 240 | 
            +
                          <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 239 241 | 
             
                            <tbody>
         | 
| 240 242 | 
             
                            <% @device_type.device_bay_templates.each do |device_bay| %>
         | 
| 241 243 | 
             
                                <tr>
         | 
| @@ -268,7 +270,7 @@ | |
| 268 270 | 
             
                      <% if @device_type.network_interfaces.empty? %>
         | 
| 269 271 | 
             
                          <div class="panel-body">None</div>
         | 
| 270 272 | 
             
                      <% else %>
         | 
| 271 | 
            -
                          <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 273 | 
            +
                          <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 272 274 | 
             
                            <tbody>
         | 
| 273 275 | 
             
                            <% @device_type.network_interfaces.each do |interface| %>
         | 
| 274 276 | 
             
                                <tr>
         | 
| @@ -301,7 +303,7 @@ | |
| 301 303 | 
             
                      <% if @device_type.console_server_port_templates.empty? %>
         | 
| 302 304 | 
             
                          <div class="panel-body">None</div>
         | 
| 303 305 | 
             
                      <% else %>
         | 
| 304 | 
            -
                          <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 306 | 
            +
                          <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 305 307 | 
             
                            <tbody>
         | 
| 306 308 | 
             
                            <% @device_type.console_server_port_templates.each do |console_server_port| %>
         | 
| 307 309 | 
             
                                <tr>
         | 
| @@ -334,7 +336,7 @@ | |
| 334 336 | 
             
                      <% if @device_type.power_outlet_templates.empty? %>
         | 
| 335 337 | 
             
                          <div class="panel-body">None</div>
         | 
| 336 338 | 
             
                      <% else %>
         | 
| 337 | 
            -
                          <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 339 | 
            +
                          <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 338 340 | 
             
                            <tbody>
         | 
| 339 341 | 
             
                            <% @device_type.power_outlet_templates.each do |power_outlet| %>
         | 
| 340 342 | 
             
                                <tr>
         | 
| @@ -2,8 +2,10 @@ | |
| 2 2 | 
             
            <% stylesheet 'foreman_datacenter/comments' %>
         | 
| 3 3 |  | 
| 4 4 | 
             
            <% title _('Devices') %>
         | 
| 5 | 
            -
            <% title_actions display_link_if_authorized(_(' | 
| 6 | 
            -
             | 
| 5 | 
            +
            <% title_actions display_link_if_authorized(_('Create device'), hash_for_new_device_path, class: 'btn btn-primary'),
         | 
| 6 | 
            +
              display_link_if_authorized(_('Import from host'), hash_for_import_to_device_path, class: 'btn btn-success'),
         | 
| 7 | 
            +
              help_button
         | 
| 8 | 
            +
            %>
         | 
| 7 9 |  | 
| 8 10 | 
             
            <table class="<%= table_css_classes 'table-two-pane' %>">
         | 
| 9 11 | 
             
              <thead>
         | 
| @@ -1,5 +1,8 @@ | |
| 1 1 | 
             
            <% javascript 'foreman_datacenter/ajax' %>
         | 
| 2 2 | 
             
            <% javascript 'foreman_datacenter/management_devices' %>
         | 
| 3 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            <% content_for(:title, @device.name) %>
         | 
| 3 6 |  | 
| 4 7 | 
             
            <div class="row">
         | 
| 5 8 | 
             
              <div class="col-md-8">
         | 
| @@ -42,7 +45,8 @@ | |
| 42 45 | 
             
                  <div class="panel-heading">
         | 
| 43 46 | 
             
                    <strong>Device</strong>
         | 
| 44 47 | 
             
                  </div>
         | 
| 45 | 
            -
                   | 
| 48 | 
            +
                  <!-- table_css_classes removed purposely -->
         | 
| 49 | 
            +
                  <table class="table table-hover panel-body nonmarginbotton">
         | 
| 46 50 | 
             
                    <tbody>
         | 
| 47 51 | 
             
                    <tr>
         | 
| 48 52 | 
             
                      <td>Site</td>
         | 
| @@ -81,7 +85,8 @@ | |
| 81 85 | 
             
                  <div class="panel-heading">
         | 
| 82 86 | 
             
                    <strong>Critical Connections</strong>
         | 
| 83 87 | 
             
                  </div>
         | 
| 84 | 
            -
                   | 
| 88 | 
            +
                  <!-- table_css_classes removed purposely -->
         | 
| 89 | 
            +
                  <table class="table table-hover panel-body">
         | 
| 85 90 | 
             
                    <tbody>
         | 
| 86 91 | 
             
                    <% if @device.management_interfaces.empty? %>
         | 
| 87 92 | 
             
                        <tr class="alert-warning">
         | 
| @@ -143,7 +148,7 @@ | |
| 143 148 | 
             
                    <% end %>
         | 
| 144 149 | 
             
                    </tbody>
         | 
| 145 150 | 
             
                  </table>
         | 
| 146 | 
            -
                  <div class="panel-footer text-right">
         | 
| 151 | 
            +
                  <div class="panel-footer text-right" id="pagination">
         | 
| 147 152 | 
             
                    <%= link_to new_management_device_device_interfaces_path(@device),
         | 
| 148 153 | 
             
                                class: 'btn btn-primary btn-xs' do %>
         | 
| 149 154 | 
             
                        <span class="glyphicon glyphicon-plus"></span>
         | 
| @@ -169,7 +174,8 @@ | |
| 169 174 | 
             
                  <div class="panel-heading">
         | 
| 170 175 | 
             
                    <strong>Management</strong>
         | 
| 171 176 | 
             
                  </div>
         | 
| 172 | 
            -
                   | 
| 177 | 
            +
                  <!-- table_css_classes removed purposely -->
         | 
| 178 | 
            +
                  <table class="table table-hover panel-body nonmarginbotton">
         | 
| 173 179 | 
             
                    <tbody>
         | 
| 174 180 | 
             
                    <tr>
         | 
| 175 181 | 
             
                      <td>Role</td>
         | 
| @@ -322,13 +328,16 @@ | |
| 322 328 | 
             
                          <% if @device.non_management_interfaces.empty? %>
         | 
| 323 329 | 
             
                              <div class="panel-body">None</div>
         | 
| 324 330 | 
             
                          <% else %>
         | 
| 325 | 
            -
                               | 
| 331 | 
            +
                              <!-- table_css_classes removed purposely -->
         | 
| 332 | 
            +
                              <table class="table table-hover panel-body nonmarginbotton">
         | 
| 326 333 | 
             
                                <tbody>
         | 
| 327 334 | 
             
                                <%= render partial: 'interface', collection: @device.non_management_interfaces %>
         | 
| 328 335 | 
             
                                </tbody>
         | 
| 329 336 | 
             
                              </table>
         | 
| 330 337 | 
             
                          <% end %>
         | 
| 331 338 | 
             
                          <div class="panel-footer text-right">
         | 
| 339 | 
            +
            		<%= link_to 'Sync', sync_interfaces_with_host_device_path(@device),
         | 
| 340 | 
            +
                                        class: 'btn btn-primary btn-xs' %>
         | 
| 332 341 | 
             
                            <%= link_to 'Add an interface', new_device_device_interface_path(@device),
         | 
| 333 342 | 
             
                                        class: 'btn btn-primary btn-xs' %>
         | 
| 334 343 | 
             
                            <%= button_tag 'Destroy selected interfaces',
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            <% title h(@manufacturer.name) %>
         | 
| 2 4 |  | 
| 3 5 | 
             
            <% title_actions display_link_if_authorized(
         | 
| @@ -20,7 +22,7 @@ | |
| 20 22 | 
             
                  <div class="panel-heading">
         | 
| 21 23 | 
             
                    <strong>Manufacturer</strong>
         | 
| 22 24 | 
             
                  </div>
         | 
| 23 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 25 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 24 26 | 
             
                    <tbody>
         | 
| 25 27 | 
             
                    <tr>
         | 
| 26 28 | 
             
                      <td>Name</td>
         | 
| @@ -43,7 +45,7 @@ | |
| 43 45 | 
             
                <!-- Stats -->
         | 
| 44 46 | 
             
                <div class="panel panel-default">
         | 
| 45 47 | 
             
                  <div class="panel-heading"><strong>Stats</strong></div>
         | 
| 46 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 48 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 47 49 | 
             
                    <tr>
         | 
| 48 50 | 
             
                      <td>Devices types</td>
         | 
| 49 51 | 
             
                      <td><%= @manufacturer.device_types.length %></td>
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            <% title h(@platform.name) %>
         | 
| 2 4 |  | 
| 3 5 | 
             
            <% title_actions display_link_if_authorized(
         | 
| @@ -20,7 +22,7 @@ | |
| 20 22 | 
             
                  <div class="panel-heading">
         | 
| 21 23 | 
             
                    <strong>Platform</strong>
         | 
| 22 24 | 
             
                  </div>
         | 
| 23 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 25 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 24 26 | 
             
                    <tbody>
         | 
| 25 27 | 
             
                    <tr>
         | 
| 26 28 | 
             
                      <td>Name</td>
         | 
| @@ -47,7 +49,7 @@ | |
| 47 49 | 
             
                <!-- Stats -->
         | 
| 48 50 | 
             
                <div class="panel panel-default">
         | 
| 49 51 | 
             
                  <div class="panel-heading"><strong>Stats</strong></div>
         | 
| 50 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 52 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 51 53 | 
             
                    <tr>
         | 
| 52 54 | 
             
                      <td>Devices</td>
         | 
| 53 55 | 
             
                      <td><%= @platform.devices.length %></td>
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            <% title h(@rack_group.name) %>
         | 
| 2 4 |  | 
| 3 5 | 
             
            <% title_actions display_link_if_authorized(
         | 
| @@ -19,7 +21,7 @@ | |
| 19 21 | 
             
                <div class="panel-heading">
         | 
| 20 22 | 
             
                  <strong>Rack Group</strong>
         | 
| 21 23 | 
             
                </div>
         | 
| 22 | 
            -
                <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 24 | 
            +
                <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 23 25 | 
             
                  <tbody>
         | 
| 24 26 | 
             
                  <tr>
         | 
| 25 27 | 
             
                    <td>Name</td>
         | 
| @@ -46,7 +48,7 @@ | |
| 46 48 | 
             
              <!-- Stats -->
         | 
| 47 49 | 
             
              <div class="panel panel-default">
         | 
| 48 50 | 
             
                <div class="panel-heading"><strong>Stats</strong></div>
         | 
| 49 | 
            -
                <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 51 | 
            +
                <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 50 52 | 
             
                  <tr>
         | 
| 51 53 | 
             
                    <td>Racks</td>
         | 
| 52 54 | 
             
                    <td><%= @rack_group.racks.length %></td>
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            <div class="panel panel-default">
         | 
| 2 2 | 
             
              <div class="panel-heading"><strong>Devices</strong></div>
         | 
| 3 | 
            -
              <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 3 | 
            +
              <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 4 4 | 
             
                <tbody>
         | 
| 5 5 | 
             
                  <% @rack.positioned_devices.each do |positions, devices| %>
         | 
| 6 6 | 
             
                    <tr>
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            <div class="panel panel-default">
         | 
| 2 2 | 
             
              <div class="panel-heading"><strong>Unpositioned Devices</strong></div>
         | 
| 3 | 
            -
              <table class="table table-hover panel-body">
         | 
| 3 | 
            +
              <table class="table table-hover panel-body nonmarginbottom">
         | 
| 4 4 | 
             
                <tbody>
         | 
| 5 5 | 
             
                  <% @rack.unpositioned_devices.each do |d| %>
         | 
| 6 6 | 
             
                    <tr>
         | 
| @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            <% stylesheet 'foreman_datacenter/device_roles' %>
         | 
| 2 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 3 |  | 
| 3 4 | 
             
            <% title h("Rack #{@rack.name}") %>
         | 
| 4 5 |  | 
| @@ -22,7 +23,7 @@ | |
| 22 23 | 
             
                  <div class="panel-heading">
         | 
| 23 24 | 
             
                    <strong>Rack</strong>
         | 
| 24 25 | 
             
                  </div>
         | 
| 25 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 26 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 26 27 | 
             
                    <tbody>
         | 
| 27 28 | 
             
                    <tr>
         | 
| 28 29 | 
             
                      <td>Site</td>
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            <% stylesheet 'foreman_datacenter/datacenter' %>
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            <% title h(@site.name) %>
         | 
| 2 4 |  | 
| 3 5 | 
             
            <% title_actions display_link_if_authorized(
         | 
| @@ -20,7 +22,7 @@ | |
| 20 22 | 
             
                  <div class="panel-heading">
         | 
| 21 23 | 
             
                    <strong>Site</strong>
         | 
| 22 24 | 
             
                  </div>
         | 
| 23 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 25 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 24 26 | 
             
                    <tbody>
         | 
| 25 27 | 
             
                    <tr>
         | 
| 26 28 | 
             
                      <td>Facility</td>
         | 
| @@ -56,7 +58,7 @@ | |
| 56 58 | 
             
                  <div class="panel-heading">
         | 
| 57 59 | 
             
                    <strong>Stats</strong>
         | 
| 58 60 | 
             
                  </div>
         | 
| 59 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 61 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 60 62 | 
             
                    <tbody>
         | 
| 61 63 | 
             
                    <tr>
         | 
| 62 64 | 
             
                      <td>Racks</td>
         | 
| @@ -75,7 +77,7 @@ | |
| 75 77 | 
             
                  <div class="panel-heading">
         | 
| 76 78 | 
             
                    <strong>Rack Groups</strong>
         | 
| 77 79 | 
             
                  </div>
         | 
| 78 | 
            -
                  <table class="<%= table_css_classes 'table-hover panel-body' %>">
         | 
| 80 | 
            +
                  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
         | 
| 79 81 | 
             
                    <tbody>
         | 
| 80 82 | 
             
                    <% @site.rack_groups.each do |rack_group| %>
         | 
| 81 83 | 
             
                        <tr>
         | 
    
        data/config/routes.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: foreman_datacenter
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.47
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Pavel Ivanov
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2018-02- | 
| 12 | 
            +
            date: 2018-02-23 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: deface
         | 
| @@ -113,6 +113,7 @@ files: | |
| 113 113 | 
             
            - app/assets/javascripts/foreman_datacenter/racks.js
         | 
| 114 114 | 
             
            - app/assets/javascripts/foreman_datacenter/shared.js
         | 
| 115 115 | 
             
            - app/assets/stylesheets/foreman_datacenter/comments.css
         | 
| 116 | 
            +
            - app/assets/stylesheets/foreman_datacenter/datacenter.css
         | 
| 116 117 | 
             
            - app/assets/stylesheets/foreman_datacenter/device_interface_connections.css
         | 
| 117 118 | 
             
            - app/assets/stylesheets/foreman_datacenter/device_roles.css
         | 
| 118 119 | 
             
            - app/controllers/concerns/foreman_datacenter/hosts_controller_extensions.rb
         |